So überprüfen Sie, ob ein Kernel-Modul in Linux geladen ist

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie den Status von Kernel-Modulen in Linux überprüfen können. Sie werden drei wesentliche Methoden erkunden: das Auflisten der derzeit geladenen Module mit lsmod, das Prüfen, ob ein Modul geladen werden kann und welche Abhängigkeiten es hat, ohne es tatsächlich zu laden, mit modprobe --dry-run, und das Anzeigen detaillierter Informationen zu einem bestimmten Modul mit modinfo. Diese Techniken sind von entscheidender Bedeutung, um zu verstehen, welche Kernel-Komponenten aktiv sind und um die Modulabhängigkeiten auf Ihrem System zu verwalten.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/SystemInformationandMonitoringGroup -.-> linux/ps("Process Displaying") linux/SystemInformationandMonitoringGroup -.-> linux/service("Service Managing") linux/PackagesandSoftwaresGroup -.-> linux/software("Linux Software") subgraph Lab Skills linux/echo -.-> lab-558721{{"So überprüfen Sie, ob ein Kernel-Modul in Linux geladen ist"}} linux/ls -.-> lab-558721{{"So überprüfen Sie, ob ein Kernel-Modul in Linux geladen ist"}} linux/ps -.-> lab-558721{{"So überprüfen Sie, ob ein Kernel-Modul in Linux geladen ist"}} linux/service -.-> lab-558721{{"So überprüfen Sie, ob ein Kernel-Modul in Linux geladen ist"}} linux/software -.-> lab-558721{{"So überprüfen Sie, ob ein Kernel-Modul in Linux geladen ist"}} end

Auflisten der geladenen Module mit lsmod

In diesem Schritt lernen Sie, wie Sie die derzeit geladenen Kernel-Module mit dem Befehl lsmod auflisten können.

Der Linux-Kernel ist der Kern des Betriebssystems. Er verwaltet die Ressourcen des Systems und bildet eine Brücke zwischen Hardware und Software. Kernel-Module sind Code-Stücke, die nach Bedarf in den Kernel geladen und entladen werden können. Sie erweitern die Funktionalität des Kernels, ohne dass ein Neustart des Systems erforderlich ist. Dies ist besonders nützlich, um die Unterstützung für neue Hardware oder Dateisysteme hinzuzufügen.

Um zu sehen, welche Module derzeit in den Kernel geladen sind, öffnen Sie Ihr Terminal und geben Sie den folgenden Befehl ein:

lsmod

Drücken Sie die Eingabetaste.

Sie sehen eine Liste der Module, ihre Größe und wie viele andere Module sie verwenden. Die Ausgabe sieht in etwa so aus (die genaue Liste variiert je nach System und geladenen Treibern):

Module                  Size  Used by
fuse                  143360  3
snd_seq_midi           20480  0
snd_seq_midi_event     16384  1 snd_seq_midi
snd_rawmidi            40960  1 snd_seq_midi
snd_seq                77824  3 snd_seq_midi,snd_seq_midi_event,snd_rawmidi
snd_seq_device         16384  3 snd_seq,snd_seq_midi,snd_rawmidi
... (many more lines)

Lassen Sie uns die Spalten analysieren:

  • Module: Der Name des Kernel-Moduls.
  • Size: Die Größe des Moduls in Bytes.
  • Used by: Die Anzahl der anderen Module, die derzeit dieses Modul verwenden. Wenn diese Zahl 0 ist, wird das Modul derzeit von keinem anderen Modul verwendet.

Dieser Befehl ist unerlässlich, um zu verstehen, welche Treiber und Kernel-Komponenten auf Ihrem System aktiv sind.

Jetzt versuchen Sie, den Befehl lsmod in Ihrem Terminal auszuführen.

Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren.

Überprüfen des Modulstatus mit modprobe --dry-run

In diesem Schritt lernen Sie, wie Sie den Befehl modprobe mit der Option --dry-run verwenden können, um zu prüfen, ob ein Modul geladen werden kann und von welchen anderen Modulen es abhängt, ohne es tatsächlich zu laden.

Der Befehl modprobe wird verwendet, um Module aus dem Linux-Kernel hinzuzufügen oder zu entfernen. Er ist ausgefeilter als die älteren Befehle insmod und rmmod, da er Modulabhängigkeiten versteht. Wenn Sie versuchen, ein Modul mit modprobe zu laden, lädt es automatisch alle anderen Module, die das angeforderte Modul benötigt.

Die Option --dry-run ist sehr nützlich für Tests. Sie teilt modprobe mit, den Prozess der Auflösung von Abhängigkeiten durchzuführen und zu prüfen, ob das Modul geladen werden kann, aber es lädt das Modul nicht tatsächlich in den Kernel. Dies ermöglicht es Ihnen, zu sehen, ob es Probleme oder fehlende Abhängigkeiten gibt, bevor Sie Änderungen am laufenden System vornehmen.

Lassen Sie uns versuchen, den Status eines gängigen Moduls zu überprüfen, beispielsweise des fuse-Moduls, das oft für Benutzerraum-Dateisysteme (user-space filesystems) verwendet wird.

Geben Sie den folgenden Befehl in Ihrem Terminal ein:

modprobe --dry-run fuse

Drücken Sie die Eingabetaste.

Wenn das fuse-Modul und seine Abhängigkeiten verfügbar sind, sehen Sie möglicherweise eine Ausgabe ähnlich der folgenden:

modprobe: INFO: could not insert 'fuse': File exists

Diese Ausgabe zeigt an, dass das fuse-Modul wahrscheinlich bereits geladen ist (wie im vorherigen lsmod-Schritt gesehen), und modprobe meldet, dass es es nicht erneut einfügen kann, da es bereits existiert. Die Option --dry-run führt die Abhängigkeitsprüfung dennoch durch, auch wenn das Modul bereits geladen ist.

Wenn das Modul nicht geladen war und geladen werden könnte, wäre die Ausgabe möglicherweise leer oder würde die Module anzeigen, die geladen würden. Wenn es Probleme gäbe, würde modprobe sie hier melden.

Die Verwendung von --dry-run ist eine sichere Methode, das Laden von Modulen zu testen, ohne den Zustand Ihres Systems zu beeinflussen.

Jetzt versuchen Sie es selbst, den Befehl modprobe --dry-run fuse auszuführen.

Klicken Sie auf Weiter, um fortzufahren.

Anzeigen von Moduldetails mit modinfo

In diesem Schritt lernen Sie, wie Sie detaillierte Informationen zu einem bestimmten Kernel-Modul mit dem Befehl modinfo erhalten können.

Während lsmod Ihnen zeigt, welche Module geladen sind, bietet modinfo viel mehr Details zu einer Moduldatei, unabhängig davon, ob es geladen ist oder nicht. Diese Informationen umfassen den Autor des Moduls, die Beschreibung, die Lizenz, die Parameter und die Abhängigkeiten.

Lassen Sie uns modinfo verwenden, um erneut das fuse-Modul zu untersuchen.

Geben Sie den folgenden Befehl in Ihrem Terminal ein:

modinfo fuse

Drücken Sie die Eingabetaste.

Sie sehen eine umfassende Ausgabe über das fuse-Modul, ähnlich der folgenden:

filename:       /lib/modules/5.15.0-113-generic/kernel/fs/fuse/fuse.ko
license:        GPL
description:    Filesystem in Userspace
author:         Miklos Szeredi <[email protected]>
alias:          devname:fuse
alias:          char-major-10-229
alias:          fs-fuse
depends:
retpoline:      Y
intree:         Y
name:           fuse
vermagic:       5.15.0-113-generic SMP mod_unload modversions
sig_id:         PKCS#7
signer:         Ubuntu Kernel Module Signing Authority
sig_key:        ...
sig_hashalgo:   sha512
signature:      ...
parm:           max_user_bgreq:Maximum number of pending background requests (uint)
parm:           max_user_cong_req:Maximum number of pending congested background requests (uint)
parm:           max_user_inline_write:Maximum size of inline write data (uint)

Lassen Sie uns einige der wichtigen Felder betrachten:

  • filename: Der Pfad zur Moduldatei im Dateisystem.
  • license: Die Lizenz, unter der das Modul verteilt wird (z.B. GPL).
  • description: Eine kurze Beschreibung dessen, was das Modul macht.
  • author: Der oder die Autoren des Moduls.
  • depends: Eine Liste der anderen Module, von denen dieses Modul abhängt.
  • parm: Informationen zu Parametern, die an das Modul übergeben werden können, wenn es geladen wird, um sein Verhalten zu ändern.

modinfo ist ein unschätzbares Werkzeug für die Fehlersuche bei Modul-bezogenen Problemen oder einfach, um mehr über die Komponenten Ihres Linux-Kernels zu erfahren.

Jetzt versuchen Sie es selbst, den Befehl modinfo fuse auszuführen, um die Details des fuse-Moduls zu sehen.

Klicken Sie auf Weiter, um dieses Lab abzuschließen.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie den Status von Kernel-Modulen in Linux überprüfen können. Sie haben begonnen, indem Sie den Befehl lsmod verwendet haben, um alle derzeit geladenen Kernel-Module aufzulisten und die Ausgabespalten zu verstehen, die den Modulnamen, die Größe und die Anzahl der Verwendungen anzeigen.

Anschließend haben Sie den Befehl modprobe mit der Option --dry-run untersucht, um das Laden eines Moduls zu simulieren und seine Abhängigkeiten zu identifizieren, ohne es tatsächlich zu laden. Schließlich haben Sie gelernt, wie Sie den Befehl modinfo verwenden können, um detaillierte Informationen zu einem bestimmten Kernel-Modul anzuzeigen, einschließlich seiner Beschreibung, des Autors, der Lizenz und der Parameter. Diese Befehle sind grundlegende Werkzeuge für die Verwaltung und Fehlersuche von Kernel-Modulen auf einem Linux-System.