RE: udev unter Linux (was: Probleme mit einen Diskless-Client)

Autor: Joerg W Mittag <Joerg.Mittag_at_Web.De>
Datum: 07.09.2005
Marc Haber wrote:
> On Wed, Sep 07, 2005 at 11:35:26AM +0200, Joerg W Mittag wrote:
>> Die offizielle Lösung für dynamische Gerätedateiverwaltung und 
>> -bennenung ist udev von Greg Kroah-Hartmann, welches inzwischen 
>> Standard in den meisten der großen Distributionen und zumindest 
>> optional auch in Debian verfügbar ist.
> Klingt danach, als ob Du Dich mit der Thematik schon 
> beschäftigt hättest.

Nur oberflächlich (d.h. ich verfolge grob die Entwicklung) und passiv
(d.h. ich lese nur und nutze udev selber nicht). Wie man am Header
sieht, bin ich clientseitig immer noch auf Windows, und auf Server
(Debian) und Router (fli4l) wiederum ist Hotplugging eher selten, daher
habe ich dort ein statisches /dev. 

> Darf ich deswegen fragen, ob es irgendwo 
> ein HOWTO oder Dokumenation darüber gibt, wie udev eigentlich 
> arbeiten, welche Voraussetzungen man erfüllen muss damit man 
> es einsetzen kann und wie der Umstellungsprozess von 
> klassischem /dev auf udev ausschaut?

Schwierig. Derzeit befindet sich udev in einer Art Umbruchsphase, daher
ist alles außer der Dokumentation im Tarball
(http://www.kernel.org/git/?p=linux/hotplug/udev.git;a=tree) selber
vermutlich veraltet. Die Basiskonzepte bleiben gleich, aber die derzeit
etwas fragile Interaktion mit dem Hotplug-System wird komplett
überarbeitet, indem schlicht das Hotplug-System komplett abgeschafft
wird und die Funktionalität in udev integriert wird (wo sie teilweise
sowieso schon redundant vorhanden ist). Gentoo gilt so ein bisschen als
Referenz-Implementierung, da die Pakete von Greg Kroah-Hartmann betreut
werden. Der Gentoo udev Guide wurde AFAIK zumindest von Greg
mitredigiert und enthält auch ein paar Links. The complete Gentoo Linux
2.6 migration guide enthält wohl auch ein paar Informationen. Ansonsten
am besten einfach mal die linux-hotplug-devel-Archive durchforsten oder
dort nachfragen.

udev lässt sich allerdings recht leicht ausprobieren, da das
/dev-Verzeichnis einfach in der Konfigurationsdatei festgelegt wird und
du anfangs also erstmal mit /home/zugschlus/udev (oder was auch immer)
experimentieren kannst, bevor du udev tatsächlich auf /dev loslässt.

> Sehe ich richtig, dass - wenn man einmal auf udev umgestiegen 
> ist - kein schmerzfreier Rückweg mehr zu einem 2.4-Kernel möglich ist?

Nicht mit udev. udev setzt sysfs voraus. Genauer: udev setzt das neue
Linux 2.6 Unified Device/Driver Model voraus (ab Linux
2.6.13-rcirgendwas und udev-060+x ist sysfs gar nicht mehr nötig, weil
alle nötigen Informationen auch per Netlink zur Verfügung stehen);
tatsächlich ist udev einer der Gründe (neben Powermanagement), warum das
UDM überhaupt geschaffen wurde.

Allerdings könnte man natürlich "unter" dem dynamischen /dev (meist ein
tmpfs oder ramfs) noch ein statisches behalten, falls man ständig hin-
und herbooten möchte. Falls es um einen einmaligen Umstieg geht, kann
man auch einfach das dynamische /dev-Verzeichnis tar'en und dann auf der
Platte wieder auspacken -- dynamische Gerätenummern sind ja derzeit noch
die Ausnahme (USB benutzt AFAIK optional dynamische Minors, aber die
werden ja AFAIK eh nicht über /dev, sondern usbfs (/proc/bus/usb) bzw.
libusb angesprochen), die sollten also unter 2.4 und 2.6 gleich sein.

Derzeit ist die beste Strategie aber wohl, auf Linux 2.6.14/15 und
udev-075 oder so zu warten, weil einige Umbrüche anstehen und
insbesondere die Integration von hotplug in udev und die Integration von
klibc in das Kernel-Buildsystem einiges vereinfachen dürfte. Wie schon
erwähnt, soll udev auch die Aufgaben von /sbin/hotplug und den
/etc/hotplug.d/-Skripten übernehmen. Das Coldplugging, bisher mehr ein
übler Hack, wird neu designt. Außerdem soll in naher Zukunft (der
Zeitrahmen für 2.6.14 ist wohl nach der neuen 14-Tage-Regel nicht mehr
zu schaffen, aber 2.6.15 ist realistisch) klibc in den Kernel integriert
werden. Als Folge daraus wird man vermutlich ein initramfs mit udev
zusammen mit dem Kernel backen können. Die Kommunikation zwischen Kernel
und udev wird von Environment-Variablen und sysfs-Dateien auf
Netlink-Nachrichten umgestellt. Und einige Dinge habe ich sicherlich
vergessen bzw. nicht mitgekriegt.

jwm

P.S.: Aus der Kategorie "Cool things you can do in udev" (so bereits
implementiert in mindestens Debian, Gentoo und OpenSUSE):
<http://www.kroah.com/log/2005/08/18/#2005_08_18-persistent>.
Received on Wed Sep 7 14:05:44 2005

Dieses Archiv wurde generiert von hypermail 2.1.8.
Zurück zur UUGRN-Homepage.