Skip to main content

Alles über den Linux / Unix-Befehl: modprobe

Hardware and Drivers in Linux (Juni 2026)

Hardware and Drivers in Linux (Juni 2026)
Anonim

Name

modprobe - High Level Handling von ladbaren Modulen

Zusammenfassung

modprobe -adnqv -C Konfig Modul Symbol = Wert …modprobe -adnqv -C Konfig -t Art Mustermodprobe -l -C Konfig -t Art Mustermodprobe -c -C Konfig modprobe -r -dnv -C Konfig modul …modprobe -Vh

Optionen

-ein, --alles

Belastungalles passende Module statt nach dem ersten erfolgreichen Laden zu stoppen.

-c, --showconfig

Zeigt die aktuell verwendete Konfiguration an.

-C, --config Konfig

Verwenden Sie die Datei Konfig anstelle von (optional) /etc/modules.conf um die Konfiguration anzugeben. Die UmgebungsvariableMODULKONF kann auch zum Auswählen (und Überschreiben) einer anderen Konfigurationsdatei als der Standardeinstellung /etc/modules.conf (oder verwendet werden) /etc/conf.modules (veraltet)).

Bei UmgebungsvariablenUNAME_MACHINE gesetzt ist, verwenden modutils seinen Wert anstelle des Maschinenfeldes aus dem uname () -Syscall. Dies ist vor allem beim Kompilieren von 64-Bit-Modulen im 32-Bit-Benutzerraum oder umgekehrt hilfreichUNAME_MACHINE auf die Art der Module. Aktuelle Modutils unterstützen nicht den vollständigen Cross-Build-Modus für Module. Sie können sich nur zwischen 32- und 64-Bit-Versionen der Hostarchitektur entscheiden.

-d, --debuggen

Zeigt Informationen zur internen Darstellung des Modulstapels an.

-h, --Hilfe

Zeigen Sie eine Zusammenfassung der Optionen an und verlassen Sie sie sofort.

-k, --automatische Reinigung

Stellen Sie "Autoclean" für geladene Module ein. Wird vom Kernel beim Aufruf verwendetmodprobe eine fehlende Funktion erfüllen (als Modul geliefert). Das-q Option wird durch impliziert-k. Diese Optionen werden automatisch an gesendetinsmod.

-l, --Liste

Listen Sie passende Module auf.

-n, --Show

Führen Sie die Aktion nicht wirklich aus, zeigen Sie einfach, was getan werden würde.

-q, --ruhig

Beschwere dich nicht überinsmod Installation eines Moduls fehlgeschlagen. Fahren Sie wie gewohnt fort, jedoch mit anderen Möglichkeiten, die Modprobe testen soll. Diese Option wird automatisch an gesendetinsmod.

-r, --Löschen

Entfernen Sie das Modul (Stapel) oder führen Sie ein Autoclean durch, je nachdem, ob in der Befehlszeile Module angegeben sind.

-s, --syslog

Bericht über Syslog statt stderr. Diese Optionen werden automatisch an gesendetinsmod.

-t Modultyp ; --Art Modultyp

Berücksichtigen Sie nur Module dieses Typs. modprobe betrachtet nur Module, deren Verzeichnispfad genau "enthält. / moduletype / '. Modultyp kann mehr als einen Verzeichnisnamen enthalten, z. "-t Fahrer / Netz "würde Module in auflisten xxx / drivers / net / und seine Unterverzeichnisse.

-v, --verbose

Drucken Sie alle Befehle so, wie sie ausgeführt werden.

-V, --version

Zeigt die Version von anmodprobe.

Hinweis:

Modulnamen dürfen keine Pfade (kein '/') enthalten, noch dürfen sie die nachfolgenden '.o' enthalten. Beispielsweise ist slip ein gültiger Modulname fürmodprobe/lib/modules/2.2.19/net/slip und slip.o sind ungültig. Dies gilt für die Befehlszeile und für Einträge in der Konfiguration.

Beschreibung des Befehls

Dasmodprobe unddepmod Dienstprogramme sollen einen modularen Linux-Kernel für alle Benutzer, Administratoren und Distributionsverwalter einfacher verwalten.

Modprobe verwendet eine "Makefile" -ähnliche Abhängigkeitsdatei, erstellt vondepmod, um die relevanten Module automatisch aus den in vordefinierten Verzeichnisbäumen verfügbaren Modulen zu laden.

Modprobe wird zum Laden eines einzelnen Moduls, eines Stapels abhängiger Module oder aller Module verwendet, die mit einem angegebenen Tag gekennzeichnet sind.

Modprobe lädt automatisch alle Basismodule, die in einem Modulstapel benötigt werden, wie in der Abhängigkeitsdatei beschrieben modules.dep . Wenn das Laden eines dieser Module fehlschlägt, wird der gesamte aktuelle Stapel der in der aktuellen Sitzung geladenen Module automatisch entladen.

Modprobe hat zwei Möglichkeiten, Module zu laden. Eine Möglichkeit (der Testmodus) versucht, ein Modul aus einer Liste (definiert durch.) Zu laden Muster ). Modprobe stoppt das Laden, sobald ein Modul erfolgreich geladen wurde. Dies kann zum automatischen Laden eines Ethernet-Treibers aus einer Liste verwendet werden. Der andere Wegmodprobe kann verwendet werden, um zu ladenalles Module aus einer Liste. SehenBEISPIELEunten.

Mit der Option-r, modprobe entlädt automatisch einen Stapel von Modulen, ähnlich wie "rmmod -r"tut. Beachten Sie, dass nur"modprobe -r"bereinigt nicht verwendete automatisch geladene Module und führt auch die Befehle vor und nach dem Entfernen in der Konfigurationsdatei aus /etc/modules.conf .

Die Kombination der Optionen-l und-t listet alle verfügbaren Module eines bestimmten Typs auf.

Möglichkeit-c druckt die aktuell verwendete Konfiguration (Standard + Konfigurationsdatei).

Aufbau

Das Verhalten vonmodprobe (unddepmod) kann durch die (optionale) Konfigurationsdatei geändert werden /etc/modules.conf . Eine ausführlichere Beschreibung der Inhalte dieser Datei sowie der Standardkonfiguration, die von verwendet wirddepmod undmodprobe, sehenmodules.conf(5).

Beachten Sie, dass die Befehle vor und nach dem Entfernen ausgeführt werdennicht ausgeführt werden, wenn ein Modul von Kernel "autocleaned" wird! Suchen Sie stattdessen nach der bevorstehenden Unterstützung für den dauerhaften Modulspeicher. Wenn Sie die Funktionen vor und nach der Installation verwenden möchten, müssen Sie Autoclean für Kernel deaktivieren und stattdessen eine Zeile wie die folgende Zeile in IhreCrontab (Dies wird auch für kmod-Systeme verwendet), um alle 2 Minuten ein Autoclean durchzuführen: * / 2 * * * * test -f / proc / modules && / sbin / modprobe -r

Strategie

Die Idee ist dasmodprobe Zuerst wird in dem Verzeichnis gesucht, das Module enthält, die für die aktuelle Version des Kernels kompiliert wurden. Wenn das Modul dort nicht gefunden wird,modprobe sucht in dem Verzeichnis, das der Kernel-Version gemeinsam ist (z. B. 2.0, 2.2). Wenn das Modul noch gefunden wird,modprobe sucht in dem Verzeichnis mit Modulen nach einer Standardversion und so weiter.

Wenn Sie einen neuen Linux installieren, sollten die Module in ein Verzeichnis verschoben werden, das sich auf die Version (und Version) des Kernels bezieht, den Sie installieren. Dann sollten Sie einen Symlink von diesem Verzeichnis zum "Standard" -Verzeichnis machen.

Bei jedem Kompilieren eines neuen Kernels wird der Befehl "make modules_install"erstellt ein neues Verzeichnis, ändert jedoch nicht den" Standard "- Link.

Wenn Sie ein Modul erhalten, das nicht mit der Kernel-Distribution zusammenhängt, sollten Sie es in einem der versionsunabhängigen Verzeichnisse unter ablegen / lib / modules .

Dies ist die Standardstrategie, die in überschrieben werden kann /etc/modules.conf .

Beispiele

modprobe -t net

Laden Sie eines der Module, die in dem mit "net" gekennzeichneten Verzeichnis gespeichert sind. Jedes Modul wird ausprobiert, bis eines erfolgreich ist.

modprobe -a -t boot

Alle Module, die in Verzeichnissen gespeichert sind, die mit "boot" gekennzeichnet sind, werden geladen.

Modprobe Slip

Dadurch wird versucht, das Modul slhc.o zu laden, wenn es nicht zuvor geladen wurde, da das Slip-Modul die Funktionalität im slhc-Modul benötigt. Diese Abhängigkeit wird in der Datei beschrieben modules.dep das wurde automatisch von erstelltdepmod.

modprobe -r rutschen

Dadurch wird das Slip-Modul entladen. Das slhc-Modul wird auch automatisch entladen, sofern es nicht auch von einem anderen Modul verwendet wird (z. B. ppp).

Siehe auch:

depmod (8),lsmod(8), Kernel(8), ksyms(8), rmmod(8).

Sicherheitsmodus

Wenn die effektive UID dann nicht gleich der realen UID istmodprobe behandelt seinen Input mit äußerster Misstrauen. Der letzte Parameter wird immer als Modulname behandelt, auch wenn er mit '-' beginnt. Es kann nur einen Modulnamen geben und Optionen der Form "Variable = Wert" sind verboten. Der Modulname wird immer als String behandelt, im abgesicherten Modus wird keine Meta-Erweiterung durchgeführt. Die Meta-Erweiterung wird jedoch weiterhin auf Daten angewendet, die aus der Konfigurationsdatei gelesen werden.

euid ist möglicherweise nicht gleich uid, wenn modprobe vom Kernel aufgerufen wird. Dies gilt für Kernel> = 2.4.0-test11. In einer idealen Welt,modprobe konnte dem Kernel vertrauen, nur gültige Parameter an modprobe zu übergeben. Mindestens ein lokaler Root-Exploit ist jedoch aufgetreten, da der Kernel-Code hoher Ebene unverifizierte Parameter direkt vom Benutzer an modprobe übergeben hat. Modprobe vertraut also nicht mehr der Kernel-Eingabe.

modprobe Legt automatisch den abgesicherten Modus fest, wenn die Umgebung nur aus diesen Zeichenfolgen besteht

HOME = / TERM = Linux-PFAD = / sbin: / usr / sbin: / bin: / usr / bin

Dadurch wird die Ausführung von modprobe vom Kernel auf den Kerneln 2.2 bis 2.4.0-test11 erkannt, auch wenn uid == euid ist, was bei den früheren Kerneln der Fall ist.

Protokollierungsbefehle

Wenn verzeichnis / var / log / ksymoops existiert undmodprobe Wird mit einer Option ausgeführt, die ein Modul laden oder löschen kann, protokolliert modprobe seinen Befehl und gibt den Status zurück / var / log / ksymoops / `Datum +% J% m% d.log` . Es gibt keine Option zum Deaktivieren dieser automatischen Protokollierung. Wenn Sie nicht möchten, dass sie ausgeführt wird, erstellen Sie sie nicht / var / log / ksymoops . Wenn dieses Verzeichnis existiert, sollte es im Besitz von root sein und im Modus 644 oder 600 sein, und Sie sollten das Skript ausführeninsmod_ksymoops_clean jeden Tag oder so.

Erforderliche Dienstprogramme

depmod(8), insmod(8).

Wichtig: Verwenden Sie die Mann Befehl ( % Mann ), um zu sehen, wie ein Befehl auf Ihrem Computer verwendet wird.