Kernel-Module mit lsmod und modinfo auflisten und inspizieren
In diesem Schritt lernen Sie, wie Sie die aktuell geladenen Kernel-Module auflisten und deren Details inspizieren. Der Linux-Kernel ist modular aufgebaut, was bedeutet, dass Teile seiner Funktionalität nach Bedarf geladen oder entladen werden können. Diese dynamisch ladbaren Teile werden als Kernel-Module bezeichnet und entsprechen oft Gerätetreibern, Dateisystemtreibern oder Systemaufrufen.
Zuerst betrachten wir den Status aller Kernel-Module, die derzeit in den Kernel Ihres Systems geladen sind. Der Befehl lsmod
liefert eine übersichtliche und lesbare Liste. Da die Liste recht lang sein kann, leiten wir ihre Ausgabe an das Dienstprogramm less
weiter, um die Navigation zu erleichtern.
Führen Sie den folgenden Befehl in Ihrem Terminal aus:
lsmod | less
Sie sehen eine Liste von Modulen. Die Ausgabe ist in drei Spalten unterteilt: Module
, Size
und Used by
.
- Module: Der Name des Kernel-Moduls.
- Size: Die Größe des Moduls in Bytes.
- Used by: Die Anzahl anderer Module oder Prozesse, die dieses Modul derzeit verwenden, gefolgt von einer Liste der abhängigen Module.
Ihre Ausgabe wird in etwa so aussehen:
Module Size Used by
nls_iso8859_1 16384 1
nls_cp437 20480 1
vfat 20480 1
fat 69632 1 vfat
...
Sie können mit den Pfeiltasten durch die Liste scrollen. Drücken Sie q
, um den less
-Viewer zu verlassen und zur Eingabeaufforderung zurückzukehren.
Nachdem Sie nun wissen, wie Sie Module auflisten, erhalten wir detaillierte Informationen zu einem bestimmten Modul. Der Befehl modinfo
zeigt verschiedene Details zu einem Kernel-Modul an, wie z. B. den Dateinamen, die Lizenz, die Beschreibung, den Autor und die Abhängigkeiten.
Lassen Sie uns das Modul parport
inspizieren, das mit dem Parallelport zusammenhängt.
modinfo parport
Der Befehl zeigt detaillierte Informationen über das Modul parport
an.
filename: /lib/modules/x.x.x-xx-generic/kernel/drivers/parport/parport.ko
license: GPL
description: Parallel port driver
author: Philip Blundell, Tim Waugh, Grant Grundler
srcversion: <some_version_string>
depends:
retpoline: Y
intree: Y
vermagic: x.x.x-xx-generic SMP mod_unload
sig_id: ...
signer: ...
sig_key: ...
sig_hashalgo: ...
signature: ...
Diese Ausgabe gibt Ihnen den genauen Speicherort der Moduldatei (.ko
-Datei), deren Lizenz, eine kurze Beschreibung und mehr an. Beachten Sie, dass das Feld depends
leer ist, was darauf hinweist, dass dieses Modul keine Abhängigkeiten hat.
Module sind oft von anderen Modulen abhängig. Der Befehl depmod
erstellt eine Liste von Modulabhängigkeiten, indem er die Module in /lib/modules/$(uname -r)
analysiert. Dies ermöglicht es dem System, erforderliche Module automatisch zu laden. Lassen Sie uns diese Abhängigkeitsdatei generieren. Dieser Befehl erfordert Root-Privilegien, daher verwenden wir sudo
.
sudo depmod
Dieser Befehl erzeugt bei erfolgreicher Ausführung normalerweise keine Ausgabe. Er erstellt oder aktualisiert eine Datei namens modules.dep
im Modulverzeichnis des Kernels. Der Teil $(uname -r)
des Pfades ist eine Befehlssubstitution, die Ihre aktuelle Kernel-Release-Version einfügt.
Nun betrachten wir die gerade erstellte Abhängigkeitsdatei.
less /lib/modules/$(uname -r)/modules.dep
Diese Datei enthält eine Liste von Modulen und ihren Abhängigkeiten, die von Werkzeugen zur automatischen Modulverwaltung verwendet wird. Sie können q
drücken, um less
zu beenden.