18.4. Automatisches Laden von Modulen

Konnte ein Gerät nicht mit /sbin/hwup initialisiert werden, durchsucht der Agent so genannte „Module Maps“ nach einem passenden Treiber. Die erste Wahl sind dabei die Maps in /etc/hotplug/*.handmap, wird er nicht fündig, sucht er auch in /lib/modules/<kernelversion>/modules.*map. Wollen Sie einen anderen als den Standard-Treiber des Kernels verwenden, tragen Sie diesen in /etc/hotplug/*.handmap ein, da diese Datei zuerst eingelesen wird.

Der USB-Agent sucht zusätzlich auch noch in den Dateien /etc/hotplug/usb.usermap und /etc/hotplug/usb/*.usermap nach Usermode-Treibern. Usermode-Treiber sind Programme, die anstelle eines Kernel-Moduls den Zugriff auf das Gerät regeln. Auf diese Weise kann man auch andere ausführbare Programme für bestimmte Geräte aufrufen.

Bei PCI-Geräten fragt pci.agent zunächst bei hwinfo nach Treiber-Modulen an. Nur wenn hwinfo keinen Treiber kennt, sieht der Agent in der pci.handmap und der Kernel-Map nach, was allerdings vor ihm schon hwinfo getan hat und deshalb ebenfalls scheitern muss. hwinfo verfügt über eine zusätzliche Datenbank für Treiberzuordnungen. Es liest jedoch auch pci.handmap ein, womit sichergestellt ist, dass eine individuelle Zuordnung in dieser Datei wirklich Verwendung findet.

Der Agent pci.agent kann auf Geräte eines bestimmten Typs oder auf Treiber-Module aus einem bestimmten Unterverzeichnis von /lib/modules/<kernelversion>/kernel/drivers eingeschränkt werden. Im ersten Fall können PCI-Geräteklassen, wie man sie am Ende der Datei /usr/share/pci.ids findet, in der Datei /etc/sysconfig/hotplug in die Variablen HOTPLUG_PCI_CLASSES_WHITELIST und HOTPLUG_PCI_CLASSES_BLACKLIST eingetragen werden. Für den zweiten Fall spezifizieren Sie ein oder mehrere Verzeichnisse in den Variable HOTPLUG_PCI_DRIVERTYPE_WHITELIST und HOTPLUG_PCI_DRIVERTYPE_BLACKLIST. Module aus den ausgeschlossenen Verzeichnissen werden niemals geladen. In beiden Fällen bedeutet eine vollständig leere Whitelist, dass alle Möglichkeiten außer den in der Blacklist ausgeschlossenen, zulässig sind. Sie können auch individuelle Module vom Laden ausschließen. Tragen Sie also in der Datei /etc/hotplug/blacklist Module ein, die niemals von einem Agenten geladen werden dürfen. Schreiben Sie jeden Modulnamen in eine eigene Zeile.

Werden mehrere passende Module in einer Mapdatei gefunden, wird nur das erste Modul geladen. Wünschen Sie, dass alle Module geladen werden, setzen Sie die Variable HOTPLUG_LOAD_MULTIPLE_MODULES=yes. Noch besser ist es allerdings eine eigene Gerätekonfiguration /etc/sysconfig/hardware/hwcfg-* für dieses Gerät zu erstellen.

Module, die mit hwup geladen werden, betrifft dies nicht. Automatisches Laden von Modulen tritt nur in Ausnahmefällen ein und wird in zukünftigen Ausgaben von SUSE LINUX noch weiter eingeschränkt werden. Wird ein passendes Modul gefunden, so erstellt der Agent eine hwup-Konfigurationsdatei, die beim nächsten Mal benutzt wird. Dies beschleunigt die Initialisierung der Geräte.


SUSE LINUX Administrationshandbuch 9.3