
Der Linux-Kernel ist die Kernkomponente eines Linux-Betriebssystems. Der Linux-Kernel ist modular aufgebaut, wodurch er funktional erweitert werden kann. Module sind kleine Codeteile, die vom Kernel geladen und entladen werden können, ohne dass der Computer neu gestartet werden muss. Kernel-Module können manuell oder automatisch geladen/entfernt werden.
Wenn ein neues Gerät wie USB oder PCI angeschlossen/entfernt wird, sendet der Kernel uevents. Die uevents enthalten Informationen über das Gerät wie Hersteller- und Modelldetails. Udev (Gerätemanager) hört auf diese uevents und übergibt sie an modprobe. Modprobe identifiziert den angeforderten Treiber intelligent, indem es im Modulverzeichnis /lib/modules/uname -r
sucht und lädt die Moduldatei in den Kernel. Sobald das Modul erfolgreich geladen wurde, erscheint es in der Liste des Befehls lsmod. Außerdem wird modprobe verwendet, um ein ladbares Modul manuell zum Kernel hinzuzufügen oder daraus zu entfernen.
Modprobe wird als Teil des kmod-Pakets verteilt. In diesem Tutorial lernen wir, wie man den Befehl modprobe verwendet zum Hinzufügen und Entfernen von Modulen zum Linux-Kernel.
modprobe-Befehlssyntax
Lassen Sie uns die Syntax des modprobe-Befehls überprüfen:
$ sudo modprobe [options] [Module Name]
modprobe-Befehl zum Hinzufügen des Kernel-Moduls
Kernel-Module befinden sich in den Unterverzeichnissen unter /lib/modules/$(uname -r)
. Der Befehl uname -r
kann verwendet werden, um die aktuelle Kernel-Version zu ermitteln.
Überprüfen Sie beim Hinzufügen eines Moduls modprobe auf intelligente Weise die Modulabhängigkeit, wo insmod dies nicht tut. Die in der Datei /lib/modules/$(uname -r)/modules.dep aufgelisteten Abhängigkeiten und die Referenz des Modulnamens ist in /etc/modules
angegeben Datei.
Um das Verzeichnis des Kernelmoduls aufzulisten, geben Sie Folgendes ein:
$ ls /lib/modules/$(uname -r)
Sie finden alle Gerätetreiber im Verzeichnis /lib/modules/$(uname -r)/kernel/drivers/
.
Normalerweise haben Kernelmoduldateien .ko
Erweiterungen. Sie können alle .ko
auflisten Dateien von:
$ find /lib/modules/$(uname -r) -type f -name *.ko*
Sie können das Modul zum Linux-Kernel hinzufügen, indem Sie den Befehl modprobe zusammen mit dem Modulnamen verwenden.
$ sudo modprobe img_i2s_in
Nach dem Hinzufügen können Sie mit dem lsmod-Befehl bestätigen, der die aktuell geladenen Kernel-Module auflistet.
$ sudo lsmod | grep img_i2s_in
Ausgabe:
img_i2s_in 16384 0
modprobe-Befehl zum Entfernen des Kernel-Moduls
Verwenden Sie zum Entfernen eines Moduls den Befehl modprobe mit der Option -r zusammen mit dem Modulnamen.
Zum Beispiel, um das Modul mit dem Namen img_i2s_in
zu entfernen , geben Sie Folgendes ein:
$ sudo modprobe -r img_i2s_in
modprobe-Optionen
Der Befehl modprobe hat mehrere Optionen, die je nach Anwendungsfall in drei Kategorien eingeteilt wurden.
Verwaltungsoption
Bei Verwendung des modprobe-Befehls zum Hinzufügen oder Entfernen von Modulen ermöglichen Verwaltungsparameter mehrere Modulbehandlungsszenarien.
Optionen | Beschreibung |
-a -alle | Entfernen oder fügen Sie mehrere Module gleichzeitig hinzu |
--entfernen -r | Modul entfernen, gilt auch für --remove-dependencies |
--remove-dependencies | Abhängigkeitsmodule entfernen |
--Resolve-Alias -R | Identifizieren und drucken Sie den Namen, der einem Alias entspricht |
--erstmals | Druckfehler für hinzugefügte oder entfernte Module |
--ignore-install --ignore-remove -i | Ignorieren Sie die im Modul geschriebenen Installations- oder Entfernungsbefehle beim Einfügen oder Entfernen des Moduls |
--use-blacklist -b | Aufgelöster Alias auf Blacklist |
--zwingen -f | Wenn ein Versionsfehler angezeigt wird, erzwingen Sie das Hinzufügen oder Entfernen von Modulen. Dies gilt sowohl für --force-modversion als auch für --force-vermagic. |
--force-modversion | Modulversion beim Hinzufügen oder Entfernen des Moduls ignorieren. |
--force-vermagic | Modulversionsmagie beim Hinzufügen oder Entfernen des Moduls ignorieren. |
Abfrageoptionen
Die Abfrageoption des modprobe-Befehls gibt Auskunft über Konfiguration und Abhängigkeiten.
Optionen | Beschreibung |
--show-abhängig -D | Wenn es Module mit Abhängigkeitsdateien gibt, wird dieses Modul angezeigt |
--showconfig --show-config -c | Anzeige der aktuellen Konfiguration und Beenden |
--Modversionen anzeigen --dump-modversions | Modulversionsabhängigkeiten anzeigen |
Allgemeine Optionen
Die allgemeinen Optionen im Befehl modprobe konfigurieren die Ausgabeoptionen, Modulpositionen und Versionen.
Optionen | Beschreibung |
--Probelauf --Show -n | Ausgabe drucken, aber nichts hinzufügen oder entfernen. |
--config=[Dateiname] -C | Überschreibt die Standardkonfigurationsabhängigkeit, d. h. /etc/modprobe.d mit dem [Dateinamen] |
--dirname=[Verzeichnis] -d | Für /lib/modules verwenden Sie [Verzeichnis] als Dateisystemstamm |
--set-version=[Version] -S | Anstelle des angegebenen Kernels uname verwenden Sie den Kernel [Version] |
--syslog -s | Zeigt Fehlermeldung über Syslog an |
--leise -q | Keine Fehlermeldungen anzeigen |
--ausführlich -v | Ermöglicht die Anzeige weiterer Nachrichten |
--Version -V | Version von modprobe anzeigen |
--Hilfe -h | Hilfsmeldung zusammen mit Befehlen anzeigen |
Schlussfolgerung
In diesem Tutorial haben wir den Befehl modprobe zum Hinzufügen oder Entfernen von Modulen aus dem Linux-Kernel kennengelernt.
Vielen Dank fürs Lesen. Bitte geben Sie Ihr Feedback und Ihre Vorschläge weiter.