Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2005  »  04  »  Knoten knüpfen  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

Newcomer: Udev

Udev[2] ist nach den Vorstellungen der Kernelentwickler[3] der designierte DevFS-Nachfolger. Es verwendet den schon länger im Kernel vorhandenen Hotplug-Mechanismus (siehe Kasten "Hotplug im Detail"), um im Userspace Gerätedateien anzulegen. Der Kernel ruft bei Veränderungen an Geräten das in »/proc/sys/kernel/hotplug« eingetragene Programm auf, standardmäßig »/sbin/hotplug«. Dies kann je nach Art des Geräts Module laden, Zugriffsrechte ändern, Netzwerkgeräte konfigurieren oder eben im Fall von Udev, Device Nodes verwalten.

Udev benötigt Informationen über den Gerätetyp (Char oder Block) und die Major- und Minor-Nummer. Beides erhält Udev über den in Kernel 2.6 eingeführten globalen Namensraum für Kernelkomponenten. Jeder Gerätetreiber soll nun ein Kobject implementieren, um Attribute abzubilden. Diese Informationen macht der Kernel dann über das SysFS verfügbar, das in diesem Punkt das alte Proc-Dateisystem ablöst[5]. Üblicherweise mounten Distributionen SysFS nach »/sys«, was von Hand folgender Befehl erledigt:

mount -t sysfs none /sys

Das SysFS bildet die Blockgeräte in »/sys/block« und die Zeichengeräte in »/sys/class« ab, wobei die Major- und Minor-Nummern jeweils in einer Pseudodatei namens »dev« enthalten sind, zum Beispiel:

cat /sys/block/hda/dev
3:0

Udev findet über SysFS alle Informationen wie Geräteklasse, Name und Nummern, um die passenden Device Nodes zu erzeugen.

Udev einrichten

Für stabile Namen führt Udev im Userspace beliebig komplexe Operationen aus, um beispielsweise die Seriennummer des Druckers zu erfahren und so zu entscheiden, ob der soeben eingeschaltete Drucker »/dev/usb/lp0« oder doch »/dev/usb/lp1« ist. Es besteht sogar die Möglichkeit, beliebige Namen zu verwenden und die Gerätedateien etwa »/dev/lp-epson« oder »/dev/lp-kyocera« zu benennen.

Hotplug im Detail

Wenn ein Kobject hinzugefügt oder entfernt wird, ruft der Kernel in der Funktion »kset_hotplug« in der Datei »lib/kobject.c« für jedes Object »/sbin/hotplug« auf. Als Argument dient die Klasse des Subsystems, also zum Beispiel »ieee1394«, »net«, »pci« oder »usb«. Weitere Informationen stecken in Umgebungsvariablen. Hierbei besitzt »ACTION« den Wert »add« oder »remove«.

Die Variable »SEQNUM« wird bei jedem Aufruf inkrementiert. »DEVPATH« spezifiziert, wo im SysFS die Geräte-Informationen zu finden sind, zum Beispiel:

/devices/pci0001:01/0001:01:19.0/usb2/2-1/2-1:1.0

Je nach Objekttyp exportiert Hotplug weitere Variablen: für physikalische Hardware die Vendor- und Produkt-IDs oder für USB in »DEVICE« den entsprechenden Eintrag im USB-FS, passend zum obigen Beispiel wäre dies »/proc/ bus/usb/002/010«.

Die Hotplug-Skripte ordnen daraufhin anhand der Hardware-IDs das passende Kernelmodul mit Hilfe der Listen in »/lib/modules/$ver« zu und laden es.

Für weitere Aktionen führt »/sbin/hotplug« alle Programme in »/etc/hotplug.d/« aus. In diese installiert auch Udev einen symbolischen Link »default/10-udev.hotplug« auf »/sbin/ udevsend« - ein Programm, das die Serialisierung der Hotplug-Events übernimmt und anschließend »/sbin/udev« aufruft.

Für Udev ist ein Kernel 2.6 mit SysFS- und Hotplug- Unterstützung erforderlich. Bei manueller Kernelkonfiguration entsprechen diese beiden Features den folgenden Konfigurationsvariablen:

CONFIG_SYSFS=y
CONFIG_HOTPLUG=y

In der Konfigurationsdatei »/etc/udev/udev.conf« finden sich die wichtigsten Variablen, um Udev einzustellen, zum Beispiel das Wurzelverzeichnis und der Ort der Udev-Datenbank:

udev_root="/udev/"
udev_db="/udev/.udev.tdb"

Das Hotplug-System ruft im Auftrag des Kernels für jedes neu erkannte Gerät »/sbin/udev« auf. Udev führt die in »/etc/udev/« konfigurierten Aktionen aus und legt so für alle neu registrierten Geräte in »/udev« passende Dateien an. Diese Aktionen zeigt Abbildung 1 für den Fall einer USB-Maus und eines Druckers. Das Hotplug-Paket[4] lädt automatisch Treiber und Firmware. Dabei bleibt »/sbin/hotplug« der Hotplug-Manager, er ruft nach getaner Arbeit als Multiplexer alle in »/etc/hotplug.d« eingetragenen Programme auf. Nach einer Standardinstallation der neusten Hotplug- und Udev-Pakete sollten sie bereits korrekt zusammenspielen (siehe Kasten "Hotplug im Detail").




Abbildung 2: Initialisiertes Udev-Verzeichnis: Dynamische Gerätedateien und die Datenbank ».udev.tdb«.

Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Klimaforschung Perl-Skript misst und bewertet Temperaturen
Geräteverwalter Wie dynamisches Gerätemanagement mit Udev funktioniert
Kernel-Hüter Interview mit dem Maintainer des Linux-Kernels 2.4
Crème de la Linux Die 15 einflussreichsten Linux-Personen
Mobil und synchron Palms und Pocket-PCs über Kabel und USB abgleichen
Teile und herrsche Virtuelle Serverkontexte in der Praxis
Whitepaper
Daten Migration - Eine Publikation von Bloor Research

Datenmigrationsprojekte überschreiten häufig das Budget, neigen zu Verzögerung und werden unter Umständen komplett abgebrochen. Bloor Research ist eines der weltweit führenden IT-Forschungs-, Analyse- und Beratungsunternehmen und wird in dem vorliegenden White Paper die wichtigsten Aspekte dieser Problematik näher beleuchten. Ferner werden praktische Empfehlungen für erfolgreiche Migrationsprojekte gegeben, die Sie auf Ihr nächstes Projekt übertragen können.

Download PDF (Registrierung erforderlich)
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele

Über die letzten Jahre hinweg haben sich Open Source Lösungen als fester Bestandteil des gesamten Datenintegrationsmarktes etabliert. Viele Unternehmen haben bereits das Open Source Modell für Ihre Datenintegrationsprojekte aufgegriffen. Das vorliegende White Paper illustriert anhand ausgewählter Fallstudien und Anwendungsbeispiele die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.

Download PDF (Registrierung erforderlich)
Kommentare (0)