Der Kernel Der Kernel Ein eigener Kernel Inhalt Index


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


Der Kernel Der Kernel Ein eigener Kernel Inhalt Index