# Nachladbare Funktionalität - Module

Damit die gesamte im System installierte Hardware unterstützt wurde, musste der Kernel früher mit den entsprechenden Treibern konfiguriert und kompiliert werden. Seit Kernelversion 2.0 ist es möglich, fast alle Treiber auch als dynamisch ladbar bereitzustellen. In den meisten Fällen ist die Verwendung von Modulen sogar zwingend notwendig, um die Größe des Kernels soweit zu beschränken, dass er während des Hochfahrens in den konventionellen Speicher geladen werden kann. Diese dynamisch ladbaren Treiber nennt man Module. Die Module können von `root` mit Hilfe des Kommandos `insmod` geladen und mit dem Kommando `rmmod` wieder aus dem Kernel entfernt werden. Das erheblich komfortablere Kommando, das neben anderem beide Funktionalitäten enthält, ist `modprobe`.

Dieses Kommando lädt Module und erlaubt diesen das automatische Erkennen spezifischer Hardwareeinstellungen wie Interrupt oder Portadresse. Schlägt dieses "Autoprobing" fehl, kann der Administrator die Werte dem Modul fest in der Datei `/etc/conf.modules` zuordnen, die ebenfalls von `modprobe` durchsucht wird. Außerdem beachtet `modprobe` so genannte module-dependency, wenn diese mit dem Kommando `depmod -a` erzeugt wurden. Dieses Kommando erstellt eine Datei, die die Zusammenhänge zwischen den Modulen enthält. Das folgende Beispiel zeigt das Laden des Modules für eine DECchip-Tulip-(dc21x4x)-PCI Netzwerkkarte, die hier auf den Interrupt 11 und dem Port 300 konfiguriert wurde. Das Modul heißt "tulip.o".

Beispiel

`root@sonne> modprobe tulip`

lädt das Module `tulip.o` und alle vom ihm benötigten weiteren Module mit den Parametern aus der Datei `/etc/conf.modules`, wenn diese konfiguriert sind, bzw. mit der "Autoprobing"-Funktion.

`root@sonne> modprobe tulip io=0x300 irq=11`

lädt das Module `tulip.o` und alle vom ihm benötigten weiteren Module mit den angegebenen Parametern: Portadresse 300 (io=0x300), Interrupt 11 (irq=11)

Die geladenen Module können mit dem Kommando `lsmod` angezeigt werden.

`root@sonne> lsmod Module Size Used by tulip 14588 1 (autoclean) serial 42932 0 (autoclean) memstat 1604 0 (unused)`

Um das Laden von Modulen vom Nutzer fernzuhalten und damit die Arbeit mit dem System zu vereinfachen, wurde der `kerneld`-Dämon eingeführt. Dieser lädt die benötigten Module automatisch nach. Der `kerneld`-Dämon arbeitet wie `modprobe` auf der Datei `/etc/conf.modules` und der "Autoprobing"-Funktion der Module. Das folgende Beispiel zeigt die Einstellung für die schon erwähnte Netzwerkkarte.

Beispiel

`# /etc/conf.modules on master # # Alias, unter dem die Funktionalität des Modules verlangt wird. alias eth0 tulip # Optionen zum Modul options tulip io=0x300 irq=11`