Im Folgenden wird das Laden und Entladen von Kernel-Modulen zur Laufzeit behandelt und welche Befehle hierfür verwendet werden, diese Dateien halten üblicherweise den Treibercode bereit.

Inhaltsübersicht

Kernel-Modul laden

Mit dem Befehl insmod wird das Modul in den laufenden Kernel geladen, darüber hinaus können bei Bedarf benötigte Optionen an das Programm übergeben werden. Zu Beginn der Ladezeit werden Abhängigkeiten von anderen Modulen geprüft, aber nicht aufgelöst. Fehlermeldungen werden ausgegeben, jedoch nicht Erfolgsmeldungen. Im Falle einer Fehlerausgabe müssten zuerst die benötigten Module und anschließend das gewünschte Modul installiert werden.

Erläuterung der Ausgabe
  • Zeile 1 – Mit cd (engl. change directory) und der Pfadangabe wird in das Verzeichnis gewechselt.
  • Zeile 3 – Der Befehl ls (engl. list) gibt den Inhalt des Verzeichnisses aus.
  • Zeilen 4 und 5 – Diese zeigen die mit MODULE_COMPRESS_XZ komprimierten Moduldateien an.
  • Zeile 7lsmod gibt die geladenen Kernel-Module aus, das Modul cpufreq_stats.ko.xz ist noch nicht geladen.
  • Zeile 15 – insmod mit der Angabe des Moduls lädt das Modul in den Systemkern.
  • Zeile 18 – Hinweis: insmod mit Pfadangabe lädt das Modul in den Systemkern, wenn man sich in einem anderen Verzeichnis befindet und von dort aus das Modul laden möchte.
  • Zeile 22 – Das Modul cpufreq_stats ist in den Systemkern geladen.

Kernel-Modul entfernen

Das Entfernen eines Moduls erfolgt mit dem Befehl rmmod und der Bezeichnung des Modulnamens. Erfolgsmeldungen werden nicht angezeigt, jedoch werden Fehlermeldungen ausgegeben.

Erläuterung der Ausgabe
  • Zeile 1 – lsmod gibt die geladenen Kernel-Module aus.
  • Zeile 3 – Das Modul cpufreq_stats ist geladen.
  • Zeile 11 – rmmod mit der Angabe des Moduls entfernt das Modul aus dem Systemkern, eine Pfadangabe ist beim Entfernen eines Moduls nicht nötig.
  • Zeile 13 – lsmod zeigt die geladenen Kernel-Module noch mal an und das Modul cpufreq_stats ist nicht aufgeführt.
  • Zeile 19 – snd ist ein Modul, welches von anderen Modulen genutzt wird.
  • Zeile 22 – Mit rmmod snd soll das Modul entfernt werden.
  • Zeile 23 – Eine Fehlermeldung wird ausgegeben, da es von anderen Modulen genutzt wird.

Schweizer Messer für Modulverwaltung

Das Programm modprobe bietet mehr Funktionen als insmod und rmmod. Es berücksichtigt beim Laden und Entfernen von Modulen, die in der Datei /usr/lib/modules/KERNEL-VERSION/modules.dep definierten Modulabhängigkeiten. Das Programm lädt zusätzlich die erforderlichen Module, die von einem bestimmten Modul benötigt werden. Des Weiteren beachtet es die Modulparameter, die im Verzeichnis /etc/modprobe.d/* aufgeführt sind. Die Pfadangabe wie bei insmod ist bei dem modprobe-Befehl nicht nötig. Mit dem Befehl modprobe -r Modulname wird das gewünschte Modul entfernt.

Auszug aus der modules.dep-Datei
Aufbau der Definition

In der /usr/lib/modules/KERNEL-VERSION/modules.dep-Datei werden die Module inklusive der Pfadangaben definiert. Hinter dem Doppelpunkt sind die benötigten Module mit den Pfadangaben aneinandergereiht, als Trenner dient ein Leerzeichen.