33.4. Tipps zur Auswahl geeigneter Schlüssel

Ein guter Schlüssel ist Voraussetzung für jede funktionierende udev-Regel. Standardschlüssel sind beispielsweise:

BUS

Bustyp des Geräts

KERNEL

Gerätename, den der Kernel benutzt

ID

Gerätenummer auf dem Bus (z.B. PCI-Bus ID)

PLACE

Physikalische Stelle an der das Gerät angeschlossen ist (z.B. bei USB)

SYSFS{...}

sysfs-Geräteattribute wie Label, Hersteller, Seriennummer usw.

Die Schlüssel ID und Place können sich als nützlich erweisen, allerdings werden meist die Schlüssel BUS und KERNEL sowie SYSFS{...} benutzt. Darüber hinaus stellt udev Schlüssel bereit, die externe Skripte aufrufen und deren Ergebnis auswerten. Ausführliche Informationen dazu finden Sie in der Manualpage man udev.

sysfs legt kleine Dateien mit Hardware-Informationen in einem Verzeichnisbaum ab. Dabei enthält jede Datei in der Regel nur eine Information wie den Gerätenamen, den Hersteller oder die Seriennummer. Jede dieser Dateien kann als Schlüsselwert verwendet werden. Wollen Sie mehrere SYSFS{...} Schlüssel in einer Regel verwenden, dürfen Sie allerdings nur Dateien im selben Verzeichnis als Schlüsselwerte verwenden. Das Programm udevinfo kann Ihnen dabei helfen, sinnvolle Schlüsselwerte zu ermitteln.

udevinfo erweist sich hier als nützliches Werkzeug. Sie müssen unter /sys nur ein Verzeichnis finden, das sich auf das entsprechende Gerät bezieht und eine Datei dev enthält. Diese Verzeichnisse finden sich alle unter /sys/block oder /sys/class. Falls bereits ein Device Node für das Gerät existiert, kann udevinfo das richtige Unterverzeichnis für Sie finden. Der Befehl udevinfo -q path -n /dev/sda gibt /block/sda aus. Das bedeutet, das gesuchte Verzeichnis ist /sys/block/sda. Rufen Sie anschließend udevinfo mit folgendem Befehl udevinfo -a -p /sys/block/sda auf. Die beiden Befehle können auch kombiniert werden: udevinfo -a -p `udevinfo -q path -n /dev/sda`. Ein Ausschnitt der Ausgabe sieht etwa so aus:

BUS="scsi"
ID="0:0:0:0"
SYSFS{detach_state}="0"
SYSFS{type}="0"
SYSFS{max_sectors}="240"
SYSFS{device_blocked}="0"
SYSFS{queue_depth}="1"
SYSFS{scsi_level}="3"
SYSFS{vendor}="        "
SYSFS{model}="USB 2.0M DSC    "
SYSFS{rev}="1.00"
SYSFS{online}="1"

Suchen Sie sich aus der gesamten Ausgabe und Fülle von Informationen passende Schlüssel aus, die sich nicht ändern werden. Denken Sie daran, dass Sie Schlüssel aus verschiedenen Verzeichnissen nicht in einer Regel verwenden dürfen.