udev ist ein Device-Filesystem, das als Ersatz zu devfs im Userspace läuft (es werden nur Einträge in /dev für Geräte gezeigt, die tatsächlich an das System angeschlossen sind).
Dadurch werden neue Eigenschaften möglich:
- Persistente Namensgebung für Geräte
- Benachrichtigung externer Systeme über Änderungen
- Flexible Namensgebung für Geräte
- Erlaubt dem Kernel dynamische Haupt- und Nebenzahlen (major/minor numbers) zu verwenden
- Entfernt alle Namensgebungsregeln aus dem Kernel
Probleme:
- automatisches Laden von Gerätetreibern beim Zugriff auf das Gerät wird unmöglich
- Sollte hotplug nicht genau das bewerkstelligen?
hotplug läd Treiber sobald das Gerät zur Verfügung steht. Der Treiber ist also beim Zugriff meist schon geladen. Ist der Treiber noch nicht geladen, existiert keine Gerätedatei und das zugreifende Programm wird einen Fehler anzeigen. -- HelmutGrohne 2004-08-20 22:01:59
Es ist einfacher und sicherer die benötigten Module beim Rechnerstart zu laden. -- RonnyBuchmann 2004-08-22 10:29:26
- Sollte hotplug nicht genau das bewerkstelligen?
Homepage: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev-FAQ
Ausführliche Beschreibung: http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-Kroah-Hartman-OLS2003.pdf
Lizenz: GPL
Tipps & Tricks
wer auf Debian Sarge udev und einen selbstgemachten aktuellen Kernel verwendet, muss udev auf eine aktuellere Version updaten. Kernel 2.6.15 erfordert mindestens udev 071, Sarge enthält aber eine ältere Version. Bei der älteren Version funktionierte bei meinen Versuchen die feste Zuordnung von Gerätenamen/Links auf USB-Devices per Seriennummer nicht. udevinfo hat auch die entsprechenden Attribute vor dem Upgrade von udev nicht angezeigt.
Konfiguration
/etc/hotplug.d /etc/udev/rules.d
Beispiele
Rechte, Besitzer und Gruppe von Device-Nodes festlegen
/etc/udev/permissions.rules
z.B.
# sound devices SUBSYSTEM=="sound", GROUP="audio"
usb/lp*:root:lp:0660
Device für RAID erzeugen
/etc/udev/links.conf
z.B.
M md0 b 9 0 M md1 b 9 1
Mini-Howto
Gentoo hat den Umstieg auf udev unter http://www.gentoo.org/doc/en/udev-guide.xml beschrieben
s.a. udev
s.a. Linux Magazin 04/05, Seite 73ff
Netzwerk
udev hat Probleme wenn plötzlich eine andere Hardwarekarte in der Kiste steckt, oder sich deren MAC-Adresse ändert. Dazu muss man dann die Dateien die unterhalb von /etc/udev/rules.d/persistent-net.rules_z25 und z25_persistent-net.rules entsprechend anpassen, sonst wird zumindest unter Debian Etch die Firewireschnittstelle eth0, Netzwerk über USB eth1, und erst dann kommen die Netzwerkkarten. Das kann zu einem gewaltigen Durcheinander führen, und es kann Sicherheitslücken aufreissen, falls man Firewalls etc. direkt auf die Netzwerkschnittstellen bindet, und deren Vorhandensein stumpf vorraussetzt. Meiner Meinung nach sind da die Voreinstellungen von Debian etwas "unglücklich". Ich kenne z.b. keinen, der ein Netzwerk über Firewire aufgebaut hat.