Ein Hotplug-Agent ist ein ausführbares Programm, das die geeigneten Aktionen
für ein Event ausführt. Für Geräte-Events befinden sich die Agenten in
/etc/hotplug.d/Event-Name und
/etc/hotplug.d/default. Alle Programme
in diesen Verzeichnissen, die auf .hotplug
enden, werden in alphabetischer Reihenfolge ausgeführt.
Um gewisse Events auszulassen, entfernen Sie die
Executable-Bits von den entsprechenden Hotplug-Agenten.
Sie können auch die Endung .hotplug
auf etwas anderes ändern.
Geräte-Agenten laden überwiegend Kernel-Module, müssen
allerdings gelegentlich auch zusätzliche Befehle aufrufen.
Unter SUSE LINUX kümmert sich darum /sbin/hwup
beziehungsweise /sbin/hwdown. Diese Programme suchen im
Verzeichnis /etc/sysconfig/hardware nach einer
Konfiguration, die zum Gerät passt, und wenden diese an. Soll ein bestimmtes
Gerät nicht initialisiert werden, muss eine passende Konfigurationsdatei mit
dem Startmodus manual oder off
erstellt werden. Findet /sbin/hwup keine Konfiguration,
werden vom Agenten automatisch Module geladen.
In diesem Fall generieren manche Agenten
automatisch Konfigurationsdateien für hwup.
Dadurch wird der Agent beim nächsten Start
schneller. Mehr dazu erfahren Sie in
Abschnitt 18.4, „Automatisches Laden von Modulen“. Informationen zu
/sbin/hwup finden Sie in der Datei
/usr/share/doc/packages/sysconfig/README und in der
Manualpage man hwup.
Bevor Schnittstellen-Agenten aufgerufen werden, erzeugt udev normalerweise einen Device Node, auf den das System zugreifen kann. Mit udev besteht die Möglichkeit, den Schnittstellen persistente Namen zu geben. Details hierzu finden Sie in Kapitel 19, Dynamische Device Nodes mit udev. Die einzelnen Agenten richten die Schnittstellen schließlich ein. Die Vorgänge für einige Schnittstellen werden im Folgenden beschrieben.
Netzwerk-Schnittstellen werden mit
/sbin/ifup initialisiert und mit
/sbin/ifdown deaktiviert. Details dazu finden Sie in
der Datei /usr/share/doc/packages/sysconfig/README
und in der Manualpage man ifup.
Verfügt ein Rechner über mehrere Netzwerkgeräte mit unterschiedlichen
Treibern, kann es passieren, dass sich während des Bootens die
Schnittstellenbezeichnungen ändern, falls dieses Mal ein anderer Treiber
schneller geladen wurde. Aus diesem Grund werden in SUSE LINUX Events für
PCI-Netzwerkgeräte über eine Warteschlange verwaltet. Dieses Verhalten
können Sie in der Datei /etc/sysconfig/hotplug über
die Variable HOTPLUG_PCI_QUEUE_NIC_EVENTS=no
abstellen.
Die beste Lösung besteht allerdings darin,
dauerhafte Schnittstellenbezeichnungen zu benutzen.
Dazu können Sie in den Konfigurationsdateien der
einzelnen Schnittstellen den gewünschten Namen anzugeben. Details zu dieser Methode finden Sie in
der Datei /usr/share/doc/packages/sysconfig/README.
Seit SUSE LINUX 9.3 geht udev auch mit Netzwerkschnittstellen
um, obwohl es sich hierbei nicht um Device Nodes handelt.
Dies ermöglicht in standardmäßigerer Weise die
Verwendung von dauerhafte Schnittstellenbezeichnungen.
Schnittstellen zu Speichergeräten müssen in den Verzeichnisbaum
des Systems eingebunden werden, damit darauf zugegriffen werden kann. Dies
kann entweder vollautomatisch oder vorkonfiguriert geschehen. Die
Konfiguration findet in /etc/sysconfig/hotplug über
die Variablen HOTPLUG_DO_MOUNT,
HOTPLUG_MOUNT_TYPE,
HOTPLUG_MOUNT_SYNC und in der Datei
/etc/fstab statt.
Der vollautomatische Betrieb wird durch das Setzen der Variable
HOTPLUG_DO_MOUNT=yes aktiviert und
durch Setzen der Variable auf no
deaktiviert.
Benutzen Sie die Variable HOTPLUG_MOUNT_TYPE
zum Umschalten zwischen zwei Modi: subfs oder fstab.
Im Modus HOTPLUG_MOUNT_TYPE=subfs wird im
Verzeichnis /media ein Unterverzeichnis angelegt,
dessen Name aus den Eigenschaften des Gerätes abgeleitet wird. Dort wird
der Datenträger bei Zugriff durch den submountd
automatisch ein- und wieder ausgehängt. Bei diesem Modus können Geräte ohne
weiteres wieder entfernt werden, wenn kein Zugriff mehr erfolgt.
Im Modus HOTPLUG_MOUNT_TYPE=fstab werden
Speichergeräte auf herkömmliche Art und Weise gemäß dem passenden
Eintrag in der Datei /etc/fstab eingehängt.
Über die Variable HOTPLUG_MOUNT_SYNC lässt
sich auswählen, ob der Zugriff im synchronen oder asynchronen Modus
erfolgt. Im asynchronen Betrieb ist der Schreibzugriff schneller,
da die Ergebnisse zwischengespeichert werden; es ist allerdings
möglich, dass Daten nicht vollständig geschrieben werden können,
wenn der Datenträger unachtsam entfernt wird. Im synchronen Betrieb
werden immer alle Daten sofort geschrieben, der Zugriff dauert
dadurch allerdings länger. Das Aushängen des Geräts muss manuell per
umount erfolgen.
Die Verwendung von dauerhaften Gerätenamen wird empfohlen, da sich die traditionellen Gerätenamen je nach Reihenfolge der Initialisierung ändern können. Details zu persistenten Gerätenamen lesen Sie in Kapitel 19, Dynamische Device Nodes mit udev nach.