18.3. Hotplug-Agenten

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.

18.3.1. Aktivierung von Netzwerk-Schnittstellen

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.

18.3.2. Aktivierung von Speichergeräten

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.


SUSE LINUX Administrationshandbuch 9.3