Start Systemverwaltung Module verwalten
Module verwalten E-Mail
Geschrieben von: tpm   

Eine große Stärke des Linux Kernels ist, dass sich viele Elemente von ihm modularisieren lassen. Dies betrifft vornehmlich die Treiber für die Hardware und Dateisysteme, welche im System nur dann geladen werden, wenn sie auch benötigt werden.

 

Das Konzept der Modularisierung bringt einige wesentliche Vorteile mit sich:

  • Optimierter Speicherverbrauch
  • Austauch von Treibern im laufenden System
  • Aktuallisierung von Treibern im laufenden System

Zugegeben, nicht alle Treiber lassen sich so einfach im laufenden System austauschen, ohne dass es nicht doch zumindest zu einem kurzzeitigen Ausfall diverser Systembereiche kommen wird. Aber dieser Zeitraum beträgt in der Regel nur Sekunden und im Vergleich zum Neustart des Rechners ein doch hinnehmbares Manko.

Die Kernel-Module selbst befinden sich unterhalb des Verzeichnispfads /lib/modules/ und sind an der Dateiendung .ko zu erkennen. Des Weiteren findet man dort u.a. noch die Datei modules.dep. Diese wird beim Booten von dem Programm depmod erstellt und legt dort evtl. Abhängigkeiten von Modulen untereinander fest.

Im Betrieb stehen dem Benutzer mehrere Programme zur manuellen Verwalten der Module zur Verfügung.

  • insmod
  • rmmod
  • modprobe

Allerdings sollte sich der Benutzer auf modprobe beschränken, da dies das elegantere und sicherere Programm ist. Im Gegensatz zu den anderen beiden ist dieses nämlich auch in der Lage Abhängigkeiten zu anderen Modulen zu erkennen und diese bei Bedarf mit zu laden, bzw. aus dem Speicher zu entfernen.

Die Benutzung von modprobe könnte einfacher nicht sein. Zum laden eines Moduls samt evtl. Abhängigkeiten genügt der Befehl gefolgt vom Modulnamen:

 

example
modprobe Modulname

 

Durch die Verwendung der Option -r wird das Modul samt weiterer abhängigen und nicht mehr benötigten Modulen wieder aus dem Speicher entfernt:

 

example
modprobe -r Modulname

 

Anmerkung: Der Modulname ist in der Regel der Dateiname ohne die Dateiendung.

Welche Module bereits geladen sind, kann man mit dem Befehl lsmod überprüfen:

 

example
Module            Size      Used  by    Not tainted
uhci 24284 0 (unused)
usbcore 59148 1 [uhci]
hisax_fcpcipnp 5120 0 (unused)
hisax_isac 4824 0 [hisax_fcpcipnp]
hisax 501264 0 [hisax_fcpcipnp hisax_isac]
isdn 115820 0 [hisax]
slhc 4592 0 [isdn]
isa-pnp 29968 0 [hisax_fcpcipnp hisax]
8139too 13928 1
mii 2272 0 [8139too]
crc32 2880 0 [8139too]
ide-scsi 9392 0
agpgart 45508 0 (unused)

 

Erst kommt der Modulname, gefolgt vom Speicherverbrauch. Dahinter stehen weitere Module, die wegen Abhängigkeiten geladen werden mussten.

 

Das automatische Laden der richtigen Module beim Systemstart funktioniert unter Linux mittlerweile sehr gut.  Dennoch kommt es vor, dass Module geladen werden, die man evtl. zum jetzigen Zeitpunkt noch nicht benötig. Genau so kann es vorkommen, dass Module Kernel-Fehler verursachen. Hier gibt es auch Möglichkeiten das Verhalten des Systems zu beeinflussen.

Die Informationen zu den Modulen entnimmt das System der Datei /etc/modprobe.conf und den Dateien im Verzeichnis /etc/modules.d/. Um nun das Laden bestimmter Module zu verhindern, gibt es abhängig von der Distribution zwei verbreitete  Möglichkeiten.

 

Für RedHead, Fedora, CentOS:

Die Datei /etc/modprobe.conf öffnen und dort durch die Änderung

alias Modulname off

das automatische Laden beim Systemstart unterbinden.

 

Für Debian und Ubuntu:

Die Datei /etc/modules.d/blacklist editieren und durch die Angabe von

blacklist Modulname

das automatische Laden beim Systemstart unterbinden.

 

Zuletzt aktualisiert am Donnerstag, den 15. April 2010 um 09:06 Uhr