[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


Marc Haber wrote:
> On Wed, Sep 07, 2005 at 11:35:26AM +0200, Joerg W Mittag wrote:
>> Die offizielle Loesung fuer dynamische Geraetedateiverwaltung und 
>> -bennenung ist udev von Greg Kroah-Hartmann, welches inzwischen 
>> Standard in den meisten der grossen Distributionen und zumindest 
>> optional auch in Debian verfuegbar ist.
> Klingt danach, als ob Du Dich mit der Thematik schon 
> beschaeftigt haettest.

Nur oberflaechlich (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 darueber gibt, wie udev eigentlich 
> arbeiten, welche Voraussetzungen man erfuellen 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 ausser 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
ueberarbeitet, indem schlicht das Hotplug-System komplett abgeschafft
wird und die Funktionalitaet 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 enthaelt auch ein paar Links. The complete Gentoo Linux
2.6 migration guide enthaelt wohl auch ein paar Informationen. Ansonsten
am besten einfach mal die linux-hotplug-devel-Archive durchforsten oder
dort nachfragen.

udev laesst 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 tatsaechlich auf /dev loslaesst.

> Sehe ich richtig, dass - wenn man einmal auf udev umgestiegen 
> ist - kein schmerzfreier Rueckweg mehr zu einem 2.4-Kernel moeglich 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 noetig, weil
alle noetigen Informationen auch per Netlink zur Verfuegung stehen);
tatsaechlich ist udev einer der Gruende (neben Powermanagement), warum das
UDM ueberhaupt geschaffen wurde.

Allerdings koennte man natuerlich "unter" dem dynamischen /dev (meist ein
tmpfs oder ramfs) noch ein statisches behalten, falls man staendig hin-
und herbooten moechte. 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 Geraetenummern sind ja derzeit noch
die Ausnahme (USB benutzt AFAIK optional dynamische Minors, aber die
werden ja AFAIK eh nicht ueber /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 Umbrueche anstehen und
insbesondere die Integration von hotplug in udev und die Integration von
klibc in das Kernel-Buildsystem einiges vereinfachen duerfte. Wie schon
erwaehnt, soll udev auch die Aufgaben von /sbin/hotplug und den
/etc/hotplug.d/-Skripten uebernehmen. Das Coldplugging, bisher mehr ein
uebler Hack, wird neu designt. Ausserdem soll in naher Zukunft (der
Zeitrahmen fuer 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 koennen. 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>.