Reaktion vorprogrammiert

Wechselmedien einbinden mit Ivman

01.05.2005
Auf eingelegte Datenträger reagiert das Desktop-unabhängige Werkzeug Ivman flexibel.

Viele reine Desktop-Nutzer betrachteten das umständliche manuelle Einbinden neu eingelegter oder angeschlossener Wechselmedien lange als entscheidenden Nachteil von Linux. Inzwischen erledigen die meisten Distributionen solche Aufgaben automatisch. Wer eine CD einlegt oder einen USB-Stick anschließt, sieht gewöhnlich kurz danach ein entsprechendes Icon oder Fenster auf dem Desktop.

Dazu legen sich die Distributionen auf eines von mehreren Systemen fest. Suse beispielsweise verwendet seit Version 9.1 Submount [1], das neue Datenträger erkennt, einbindet und den Benutzer benachrichtigt (Abbildung 1). Submount ergänzt bei neuer Hardware kurzerhand die Datei /etc/fstab um passende Einträge (Abbildung 2).

Abbildung 1: Suse erkennt Daten-CDs mittels Submount.
Abbildung 2: Die Datei "/etc/fstab" verzeichnet die Dateisysteme.

Andere setzen auf den "Hardware Abstraction Layer" (HAL) [3], der neue Hardware aber auch Ereignisse wie das Öffnen und Schließen des CD-Laufwerksschachts erkennt und eine entsprechende Nachricht ans System schickt. Mit Hilfe dieser Information kann dann ein weiteres Programm neue Dateisysteme einbinden und über die Oberfläche zugänglich machen. Gnome erledigt dies beispielsweise über den Gnome Volume Manager.

Dieser gehört jedoch zur Gnome-Oberfläche, die Kooperation mit anderen Desktop-Umgebungen sieht er nicht vor. Unter KDE greifen Sie auf von HAL gemeldete Wechselmedien beispielsweise mit dem Dateimanager Konqueror über die Eingabe von media:/ in der Adresszeile zu. Wer weder Gnome noch KDE nutzt, sondern beispielsweise Xfce oder FVWM, braucht ein Desktop-unabhängiges Werkzeug: Ivman, "Ikke's Volume Manager" [2], verwendet ebenfalls den Hardware Abstraction Layer und lässt sich flexibel konfigurieren, so dass es auf eingelegte Datenträger abhängig von deren Inhalt oder Namen reagiert. Damit überbietet es auch die Möglichkeiten der von KDE und Gnome vorgesehenen Werkzeuge.

Installation

Ivman benötigt also das Paket HAL, das zur Kommunikation mit dem System wiederum D-BUS [4] voraussetzt. Als fertiges Paket enthält Gentoo als einzige der großen Distributionen Ivman, da die anderen auf andere Systeme setzen. Gentoo-Nutzer erhalten alle drei Pakete automatisch über

emerge ivman

Ivman läuft als Daemon im Hintergrund und muss dafür beim Systemstart als Service gestartet werden. Unter Gentoo bewerkstelligt das der Befehl

rc-update add ivman boot

Auch hier erkennt Gentoo die Notwendigkeit von HAL- und D-BUS und startet beide beim nächsten Booten ebenfalls automatisch.

Einen festen Eintrag in der Datei /etc/fstab benötigt auch Ivman. Diesen generiert das Werkzeug fstab-sync automatisch. Solche Einträge sehen typischerweise etwa so aus:

/dev/hdc /media/cdrecorder ↩
auto exec,user,noauto,managed 0 0

Auch die Mount-Verzeichnisse unter /media legt HAL an. Damit ist die Installation von Ivman abgeschlossen. Von nun an bindet es Wechselmedien automatisch ins System ein.

Alles ist möglich

Der Hardware Abstraction Layer liefert eine große Zahl von Detailinformationen über Wechselmedien, die sich durch Ivman auswerten lassen. Das Werkzeug lshal bringt diese im Rohformat auf die Konsole (Listing 1). So lässt sich aus dem Eintrag volume.label der Name einer eingelegten CD oder DVD ablesen, in Listing 1 beispielsweise eine Windows-XP-CD des Namens wxp_pro. Die Ivman-Konfiguration legt fest, welche der Einträge Änderungen der Ivman-Daemon berücksichtigt.

Listing 1

Ausgabe von "lshal"

Dumping 43 device(s) from the Global Device List:
————————————————-
udi = '/org/freedesktop/Hal/devices/block_wxp_pro'
  info.udi = '/org/freedesktop/Hal/devices/block_wxp_pro'  (string)
  volume.disc.is_rewritable = false  (bool)
  volume.disc.is_appendable = false  (bool)
  volume.disc.is_blank = false  (bool)
  volume.disc.has_data = true  (bool)
  volume.disc.has_audio = false  (bool)
  volume.disc.type = 'cd_r'  (string)
  volume.size = 3434496  (0x346800)  (uint64)
  volume.block_size = 2048  (0x800)  (int)
  volume.num_blocks = 1210968  (0x127a58)  (int)
  volume.is_disc = true  (bool)
  volume.is_mounted = false  (bool)
  volume.mount_point = ''  (string)
  volume.label = 'wxp_pro'  (string)
  volume.uuid = ''  (string)
  volume.fsversion = ''  (string)
  volume.fsusage = 'filesystem'  (string)
  volume.fstype = 'iso9660'  (string)
  info.product = 'wxp_pro'  (string)
  info.parent = '/org/freedesktop/Hal/devices/block_22_0'  (string)
  info.category = 'volume'  (string)
  info.capabilities = 'block volume'  (string)
  info.bus = 'block'  (string)
  block.no_partitions = true  (bool)
  block.have_scanned = false  (bool)
  block.is_volume = true  (bool)
  block.device = '/dev/hdc'  (string)
  block.major = 22  (0x16)  (int)
  block.minor = 0  (0x0)  (int)
  block.storage_device = '/org/freedesktop/Hal/devices/block_22_0'  (string)

Den Kern der Ivman-Konfiguration bilden die Dateien im XML-Format unter /etc/ivman/ (Kasten 1). Die mitgelieferten Files enthalten bereits zahlreiche Beispieleinträge, die einen ersten Eindruck zur korrekten Anwendung verschaffen.

Kasten 1: Die Konfigurationsdateien von Ivman

  • IvmConfigBase.xml: Enthält nur wenige Optionen, die das allgemeine Verhalten von Ivman steuern. In aller Regel reichen die Standardeinträge.
  • IvmConfigActions.xml: Legt fest, welche Aktionen ausgeführt werden, wenn ein Medium eingelegt oder ein Gerät angeschlossen wird.
  • IvmConfigMappings.xml: Teilt Ivman mit, welche Einträge in /etc/fstab lediglich einen symbolischen Link zu einem Gerät unterhalb von /dev enthalten. Das ist wichtig, da Ivman von HAL den echten Geräte-Namen wie /dev/hdc, aber keine Links wie /dev/cdrecorder erhält.
  • IvmConfigProperties.xml: Soll Ivman auf eine Geräte-Eigenschaft reagieren, beispielsweise das Entriegeln oder Verriegeln eines Laufwerks, beschreibt das diese Datei.

Der Ivman-Entwickler selbst regt als Beispiel an, eine Windows-XP-CD direkt nach dem Einlegen wieder auswerfen zu lassen. Folgender Eintrag in der Datei /etc/ivman/IvmConfigActions.xml erledigt diese Aufgabe:

<ivm:Match name="hal.volume.↩
label" value="wxp_pro">
    <ivm:Option name="exec" value↩
="/usr/bin/eject $hal.block.↩
device$" />
</ivm:Match>

Legt jemand eine CD ein, überprüft Ivman daraufhin die Variable hal.volume.label. Sie entspricht der Variable volume.label, die lshal liefert. Enthält sie den Wert wxp_pro, führt Ivman den Befehl /usr/bin/eject aus, der die CD auswirft. Die Variable $hal.block.device$ steht dabei für das Gerät, das den Datenträger enthält.

Ivman kennt zwei Gruppen von Variablen: Diejenigen, die es von HAL erhält, werden durch ein vorangestelltes hal. gekennzeichnet. Daneben gibt es Ivman-eigene Variablen wie ivm.mountable.

In jeder Konfigurationsdatei arbeitet Ivman die einzelnen Einträge in der Reihenfolge ab, in der sie in der Datei stehen. In /etc/ivman/IvmConfigActions.xml stehen in der Voreinstellung bereits folgende Zeilen:

<ivm:Match name="ivm.mountable" ↩
value="true">
    <ivm:Option name="mount" ↩
value="true" />
</ivm:Match>

Dieser Eintrag sorgt dafür, dass Ivman bei jedem Medium versucht, es einzubinden. Steht die oben beschriebene Anweisung zum Auswerfen einer Windows-CD vor diesen Zeilen, wird Ivman nach dem Auswerfen der CD zusätzlich den Datenträger einbinden. Üblicherweise führt diese Aktion dazu, dass sich die Laufwerksschublade wieder schließt und dann die CD eingebunden wird. Deshalb sollte der Mount-Befehl vor dem Auswerfen stehen, wenn Sie ihn nicht löschen möchten.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • LVM – Logical Volume Management
    Wer regelmäßig Plattenpartionen rangieren, vergrößern und verkleinern muss, findet im Logical Volume Manager eine hilfreiche Technologie.
  • Arduino-Programmierung
    Der Arduino lockt mit Offenheit und Portabilität: Die Schaltung des Minirechners ist ebenso frei lizenziert wie die zugehörige Entwicklungsumgebung. Grund genug, sich näher mit der Programmierung zu beschäftigen.
  • Sauber verzahnt
    Einstecken, loslegen: Linux reagiert vollautomatisch auf neue Hardware, sogar im laufenden Betrieb. Doch was steckt dahinter?
  • Verriegelt und verrammelt
    Egal ob privat oder geschäftlich: Sensible Daten gehören in sichere Verwahrung. Das kostenlose Programm Truecrypt verwandelt Ihre Festplatte in einen Datensafe.
  • Verborgene Talente
    Das Verschlüsselungsprogramm Truecrypt erweist sich als flexibles Multitalent, das ungeahnte Möglichkeiten eröffnet.
Kommentare

Infos zur Publikation

title_2014_10

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 4 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...