So laden und entladen Sie Kernelmodule unter Linux
Ein Kernelmodul ist ein Programm, das bei Bedarf in den Kernel geladen oder aus diesem entladen werden kann, ohne dass dieser (der Kernel) notwendigerweise neu kompiliert oder das System neu gestartet werden muss, und das die Funktionalität des Kernels verbessern soll.
Im allgemeinen Softwarebegriff sind Module mehr oder weniger wie Plugins für eine Software wie WordPress. Plugins bieten Möglichkeiten zur Erweiterung der Softwarefunktionalität. Ohne sie müssten Entwickler eine einzige umfangreiche Software erstellen, bei der alle Funktionalitäten in einem Paket integriert sind. Wenn neue Funktionalitäten benötigt werden, müssten diese in neuen Versionen einer Software hinzugefügt werden.
Ohne Module müsste der Kernel ebenfalls mit allen Funktionalitäten direkt in das Kernel-Image integriert werden. Dies würde größere Kernel bedeuten und Systemadministratoren müssten den Kernel jedes Mal neu kompilieren, wenn eine neue Funktionalität benötigt wird.
Ein einfaches Beispiel für ein Modul ist ein Gerätetreiber – der es dem Kernel ermöglicht, auf eine mit dem System verbundene Hardwarekomponente/ein Gerät zuzugreifen.
Empfohlene Lektüre: So finden Sie heraus, welche Linux-Version Sie verwenden
Listen Sie alle geladenen Kernelmodule unter Linux auf
Unter Linux enden alle Module mit der Erweiterung .ko
und werden normalerweise automatisch geladen, wenn die Hardware beim Systemstart erkannt wird. Ein Systemadministrator kann die Module jedoch mit bestimmten Befehlen verwalten.
Um alle aktuell geladenen Module unter Linux aufzulisten, können wir den Befehl lsmod (Module auflisten) verwenden, der den Inhalt von /proc/modules wie folgt liest.
lsmod
Module Size Used by
rfcomm 69632 2
pci_stub 16384 1
vboxpci 24576 0
vboxnetadp 28672 0
vboxnetflt 28672 0
vboxdrv 454656 3 vboxnetadp,vboxnetflt,vboxpci
bnep 20480 2
rtsx_usb_ms 20480 0
memstick 20480 1 rtsx_usb_ms
btusb 45056 0
uvcvideo 90112 0
btrtl 16384 1 btusb
btbcm 16384 1 btusb
videobuf2_vmalloc 16384 1 uvcvideo
btintel 16384 1 btusb
videobuf2_memops 16384 1 videobuf2_vmalloc
bluetooth 520192 29 bnep,btbcm,btrtl,btusb,rfcomm,btintel
videobuf2_v4l2 28672 1 uvcvideo
videobuf2_core 36864 2 uvcvideo,videobuf2_v4l2
v4l2_common 16384 1 videobuf2_v4l2
videodev 176128 4 uvcvideo,v4l2_common,videobuf2_core,videobuf2_v4l2
intel_rapl 20480 0
x86_pkg_temp_thermal 16384 0
media 24576 2 uvcvideo,videodev
....
So laden und entladen (entfernen) Sie Kernelmodule unter Linux
Um ein Kernelmodul zu laden, können wir den Befehl insmod (Modul einfügen) verwenden. Hier müssen wir den vollständigen Pfad des Moduls angeben. Mit dem folgenden Befehl wird das Modul speedstep-lib.ko eingefügt.
insmod /lib/modules/4.4.0-21-generic/kernel/drivers/cpufreq/speedstep-lib.ko
Um ein Kernelmodul zu entladen, verwenden wir den Befehl rmmod (Modul entfernen). Das folgende Beispiel entlädt oder entfernt das Modul speedstep-lib.ko.
rmmod /lib/modules/4.4.0-21-generic/kernel/drivers/cpufreq/speedstep-lib.ko
So verwalten Sie Kernelmodule mit dem Befehl modprobe
modprobe ist ein intelligenter Befehl zum Auflisten, Einfügen und Entfernen von Modulen aus dem Kernel. Es sucht im Modulverzeichnis /lib/modules/$ (uname -r) nach allen Modulen und zugehörigen Dateien, schließt jedoch alternative Konfigurationsdateien in /etc/modprobe.d aus Verzeichnis.
Hier benötigen Sie nicht den absoluten Pfad eines Moduls; Dies ist der Vorteil der Verwendung von modprobe gegenüber den vorherigen Befehlen.
Um ein Modul einzufügen, geben Sie einfach seinen Namen wie folgt ein.
modprobe speedstep-lib
Um ein Modul zu entfernen, verwenden Sie das Flag -r
wie folgt.
modprobe -r speedstep-lib
Hinweis: Unter modprobe wird eine automatische Unterstrichkonvertierung durchgeführt, sodass es keinen Unterschied zwischen _
und –
while gibt Eingabe von Modulnamen.
Weitere Nutzungsinformationen und Optionen finden Sie auf der Modprobe-Manpage.
man modprobe
Vergessen Sie nicht, Folgendes anzuschauen:
- So ändern Sie Kernel-Laufzeitparameter auf dauerhafte und nicht dauerhafte Weise
- So installieren oder aktualisieren Sie auf die neueste Kernel-Version in CentOS 7
- So aktualisieren Sie den Kernel in Ubuntu auf die neueste Version
Das ist alles für jetzt! Haben Sie nützliche Ideen, die wir diesem Leitfaden hinzufügen sollen, oder haben Sie Fragen? Verwenden Sie das unten stehende Feedback-Formular, um uns diese mitzuteilen.