Home / LinuxUser / 2005 / 05 / Wechselmedien einbinden mit Ivman

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

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.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

967 Hits
Wertung: 0 Punkte (0 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...