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

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

War doch klar...
(243 Punkte bei 15 Stimmen)
Re: War doch klar...
(179 Punkte bei 5 Stimmen)
Re: Skype für 64-Bit-Prozessor u. Suse 12.1
(161 Punkte bei 4 Stimmen)
Kubuntu verliert Finanzierung
(130 Punkte bei 4 Stimmen)
Offen fürs Geschäft
(80 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

822 Hits
Wertung: 0 Punkte (0 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 03/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

Duden Korrektor unter 64-Bit
Duden Korrektor unter 64-Bit
Tim Schürmann, 06.02.2012 10:36, 0 Kommentare

Der Duden Korrektor bietet eine äußerst nützliche Rechtschreib- und Grammatikkorrektur für LibreOffice und bringt in der aktuellen Version 8 e...

Aktuelle Fragen

N24 Stick (Huawei E173) und Ubuntu 11.04
Patrick Obenauer, 11.02.2012 11:54, 1 Antworten
Hallo zusammen! Ich benutze einen alten Laptop, der mit Ubuntu 11.04 flott und problemlos läuft....
Wie kann man beim Einsatz von Compiz die Fenster-Dekoration einstellen?
GoaSkin , 10.02.2012 20:12, 0 Antworten
Hallo, ich nutze Linux Mint mit dem Gnome-Derivat Mate. Da die Distribution Compiz nicht autom...
rndc reload zone - failed bad zone
Ludwig jun. B., 06.02.2012 16:08, 2 Antworten
Schönen guten Tag, ich habe folgendes Problem. Immer wenn ich folgendes Kommando ausführen bek...
Skype für 64-Bit-Prozessor u. Suse 12.1
Klaus Sigerist, 05.02.2012 11:39, 3 Antworten
Hallo Gemeinde! Ich bin nur ein einfacher Nutzer und habe Probleme mit der Installation von Skyp...
8! Anfängerfrage :) Wie finde ich in Ubuntu die Datenträger (Bild, Text)
samuel leusam, 04.02.2012 15:53, 2 Antworten
Ich habe neu Ubuntu. Wenn ich die SD Karte im Laptop einstecke, erkennt er sie und gibt ihr den N...