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
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ä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.
  • Butter bei dat Dateisystem
    Den Titel können Sie nur schätzen, wenn Ihnen der Ausspruch "Butter bei die Fisch!" geläufig ist. Der bedeutet, man soll endlich zum Kern der Sache kommen, und darum verraten wir in diesem Artikel ohne Umschweife, was es mit dem neuen Dateisystem BtrFS (Butter-Ef-Es; englisch ausgesprochen) auf sich hat.
  • Pimp my SSD
    Nichts beschleunigt einen PC so nachhaltig wie der Umstieg auf eine SSD. Damit diese ihr volles Potenzial erreicht und möglichst lange lebt, gilt es, das Linux-System an einigen kritischen Stellen anzupassen.
  • 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.
Kommentare

Infos zur Publikation

LU 02/2016: Alt-PCs flott machen

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!       

Der Tipp der Woche

Schon gewußt?

14.11.2015

Auch unter Ubuntu 15.10 kann man wieder mit dem Startmedienersteller (alias Startup Disk Creator) ein Live-System auf einem USB-Stick einrichten. ...

Fehler des Startmedienerstellers von Ubuntu 15.10 umgehen

Aktuelle Fragen

Leap 42.1 und LibreOffice
Heinz Kolbe, 09.02.2016 21:54, 0 Antworten
Moin moin, auf meinem Notebook habe ich Leap 42.1 und Win 10 installiert. Alles läuft rund nur...
Tails Update
Val Lerie, 11.01.2016 10:51, 0 Antworten
Hallo zusammen, updaten > update Speichern unter > Persistent nicht möglich, mit der Meldung;...
Recoll
Jürgen Heck, 20.12.2015 18:13, 4 Antworten
Wie kann man mit Recoll nach bestimmten Zeichen/Satzzeichen bzw. Zeichenkombinationen suchen, z....
Wings Platinum 4 auf Linux?
Bodo Steguweit, 18.12.2015 11:37, 4 Antworten
Hallo in die Runde ich nutze für meine Diashows Wings Platinum 4 als Diareferent. Arbeite jetzt...
Bandbreite regulieren
Georg Armani, 25.11.2015 16:50, 1 Antworten
Hallo, ich bin ein Neuling in Sachen Linux und hoffe auf Hilfe. Ich habe zwei Windows Rechner...