Wie man prüft, ob ein bestimmter Treiber 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 prüfen können, ob ein bestimmter Treiber (driver) in Linux geladen ist. Treiber, die oft als Kernel-Module implementiert sind, sind für die Interaktion mit Hardware unerlässlich. Sie werden drei Methoden erkunden, um dies zu erreichen: das Auflisten aller geladenen Module mit lsmod, die Prüfung der Datei /proc/modules für detaillierte Statusinformationen und die Überprüfung spezifischer Treiberinformationen mit modinfo.

Durch die Durchführung dieser Schritte werden Sie praktische Fähigkeiten in der Identifizierung und dem Verständnis des Status von Treibern in Ihrem Linux-System erwerben, was für die Fehlerbehebung bei Hardwareproblemen und die Systemadministration von entscheidender Bedeutung ist.


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/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicSystemCommandsGroup -.-> linux/printf("Text Formatting") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/SystemInformationandMonitoringGroup -.-> linux/ps("Process Displaying") subgraph Lab Skills linux/echo -.-> lab-558755{{"Wie man prüft, ob ein bestimmter Treiber in Linux geladen ist"}} linux/printf -.-> lab-558755{{"Wie man prüft, ob ein bestimmter Treiber in Linux geladen ist"}} linux/ls -.-> lab-558755{{"Wie man prüft, ob ein bestimmter Treiber in Linux geladen ist"}} linux/cat -.-> lab-558755{{"Wie man prüft, ob ein bestimmter Treiber in Linux geladen ist"}} linux/ps -.-> lab-558755{{"Wie man prüft, ob ein bestimmter Treiber in Linux geladen ist"}} end

Auflisten von Treibern mit lsmod

In diesem Schritt lernen Sie, wie Sie die aktuell geladenen Kernel-Module auflisten können, die im Zusammenhang mit Hardware oft als Treiber (drivers) bezeichnet werden. Kernel-Module sind Code-Stücke, die je nach Bedarf in den Kernel geladen und entladen werden können, um die Funktionalität des Kernels zu erweitern, ohne dass ein Neustart des Systems erforderlich ist.

Der Befehl, den wir verwenden werden, ist lsmod. Dieser Befehl wird verwendet, um den Status der Module im Linux-Kernel anzuzeigen.

Öffnen Sie Ihr Terminal, wenn es noch nicht geöffnet ist. Sie können das Xfce Terminal-Symbol auf der linken Seite Ihres Desktops finden.

Geben Sie den folgenden Befehl ein und drücken Sie Enter:

lsmod

Sie werden eine Ausgabe ähnlich der folgenden sehen:

Module                  Size  Used by
...
snd_hda_codec_generic    ...   ...
ledtrig_audio          ...   ...
snd_hda_codec_hdmi     ...   ...
snd_hda_intel          ...   ...
snd_intel_dspcfg       ...   ...
snd_hda_codec          ...   ...   snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel
snd_hda_core           ...   ...   snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
snd_hwdep              ...   ...   snd_hda_codec
snd_pcm                ...   ...   snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core,snd_hwdep
snd_seq_midi           ...   ...
snd_seq_midi_event     ...   ...   snd_seq_midi
snd_rawmidi            ...   ...   snd_seq_midi,snd_seq_midi_event
snd_seq                ...   ...   snd_seq_midi,snd_seq_midi_event
snd_seq_device         ...   ...   snd_seq_midi,snd_rawmidi,snd_seq
snd_timer              ...   ...   snd_pcm,snd_seq
snd                    ...   ...   snd_hda_codec_generic,ledtrig_audio,snd_hda_codec_hdmi,snd_hda_intel,snd_intel_dspcfg,snd_hda_codec,snd_hda_core,snd_hwdep,snd_pcm,snd_rawmidi,snd_seq,snd_seq_device,snd_timer
soundcore              ...   ...   snd
...

Die Ausgabe von lsmod hat drei Spalten:

  • Module: Der Name des Kernel-Moduls.
  • Size: Die Größe des Moduls in Bytes.
  • Used by: Eine Liste anderer Module, die dieses Modul verwenden, und die Anzahl der Mal, wie oft es verwendet wird.

Dieser Befehl ist sehr nützlich, um zu sehen, welche Treiber derzeit auf Ihrem System aktiv sind.

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

Prüfen des Treiberstatus mit cat /proc/modules

In diesem Schritt werden Sie eine weitere Möglichkeit erkunden, Informationen über geladene Kernel-Module anzuzeigen, indem Sie die Datei /proc/modules untersuchen. Das /proc-Dateisystem ist ein virtuelles Dateisystem, das Informationen über Prozesse und andere Systeminformationen bereitstellt.

Die Datei /proc/modules enthält ähnliche Informationen wie die Ausgabe von lsmod, jedoch in einem etwas anderen Format. Wir werden den cat-Befehl verwenden, um den Inhalt dieser Datei anzuzeigen.

Geben Sie den folgenden Befehl in Ihrem Terminal ein und drücken Sie Enter:

cat /proc/modules

Sie werden eine Ausgabe ähnlich der folgenden sehen:

snd_hda_codec_generic ... ... - Live 0xffffffff...
ledtrig_audio ... ... - Live 0xffffffff...
snd_hda_codec_hdmi ... ... - Live 0xffffffff...
snd_hda_intel ... ... - Live 0xffffffff...
snd_intel_dspcfg ... ... - Live 0xffffffff...
snd_hda_codec ... ... snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel, Live 0xffffffff...
snd_hda_core ... ... snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec, Live 0xffffffff...
snd_hwdep ... ... snd_hda_codec, Live 0xffffffff...
snd_pcm ... ... snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core,snd_hwdep, Live 0xffffffff...
snd_seq_midi ... ... - Live 0xffffffff...
snd_seq_midi_event ... ... snd_seq_midi, Live 0xffffffff...
snd_rawmidi ... ... snd_seq_midi,snd_seq_midi_event, Live 0xffffffff...
snd_seq ... ... snd_seq_midi,snd_seq_midi_event, Live 0xffffffff...
snd_seq_device ... ... snd_seq_midi,snd_rawmidi,snd_seq, Live 0xffffffff...
snd_timer ... ... snd_pcm,snd_seq, Live 0xffffffff...
snd ... ... snd_hda_codec_generic,ledtrig_audio,snd_hda_codec_hdmi,snd_hda_intel,snd_intel_dspcfg,snd_hda_codec,snd_hda_core,snd_hwdep,snd_pcm,snd_rawmidi,snd_seq,snd_seq_device,snd_timer, Live 0xffffffff...
soundcore ... ... snd, Live 0xffffffff...
...

Die Spalten in /proc/modules repräsentieren:

  1. Modulname
  2. Größe des Moduls
  3. Anzahl der Mal, wie oft das Modul verwendet wird
  4. Ob das Modul geladen (Live) oder entladen wird (Loading oder Unloading)
  5. Speicher-Offset des Moduls (dies ist der 0xffffffff...-Teil)
  6. Abhängige Module (ähnlich der "Used by"-Spalte in lsmod)

Während lsmod im Allgemeinen der bevorzugte Befehl zum Anzeigen von geladenen Modulen ist, ist es wichtig zu verstehen, dass diese Informationen auch im /proc-Dateisystem verfügbar sind, um eine tiefere Systemuntersuchung durchzuführen.

Klicken Sie auf Weiter, um fortzufahren.

Überprüfen von Treiberdetails mit modinfo

In diesem Schritt lernen Sie, wie Sie detaillierte Informationen über ein bestimmtes Kernel-Modul mithilfe des modinfo-Befehls erhalten können. Dieser Befehl kann Details wie den Dateinamen des Moduls, den Autor, die Beschreibung, die Lizenz und die Parameter liefern.

Lassen Sie uns Informationen über das snd_hda_intel-Modul abrufen, das mit Audiotreibern zusammenhängt.

Geben Sie den folgenden Befehl in Ihrem Terminal ein und drücken Sie Enter:

modinfo snd_hda_intel

Sie werden eine Ausgabe ähnlich der folgenden sehen:

filename:       /lib/modules/.../kernel/sound/hda/snd-hda-intel.ko
description:    Intel HDA driver
license:        GPL v2
srcversion:     ...
alias:          pci:v00008086d0000...sv*sd*bc04sc03i00*
alias:          pci:v00008086d0000...sv*sd*bc04sc01i00*
alias:          pci:v00008086d0000...sv*sd*bc04sc03i00*
...
depends:        snd-hda-codec,snd-pcm,snd-hda-core,snd-hwdep,snd-timer,snd
retpoline:      Y
intree:         Y
name:           snd_hda_intel
vermagic:       ... SMP mod_unload
sig_id:         PKCS#7
signer:         Build time autogenerated kernel key
sig_key:        ...
sig_hashalgo:   sha512
signature:      ...
parm:           bdl_pos_adj:Adjust the BDL position (int)
parm:           probe_mask:Bitmask of codec probe options.
                bit 0: force codec probe
                bit 1: allow probing codecs with basic capabilities
                bit 2: allow probing codecs with no capabilities
                (int)
parm:           enable_msi:Enable MSI (int)
parm:           enable_msix:Enable MSI-X (int)
parm:           model:Use the specified codec model.
                See Documentation/sound/kernel-modules-aliases.txt for details. (charp)
parm:           patch:Load the specified patch file. (charp)
parm:           power_save:Automatic power-saving timeout (in ms, 0 to disable). (int)
parm:           power_save_controller:Controller power-saving timeout (in ms, 0 to disable). (int)
parm:           pm_blacklist:Force non-power-save mode (D0) (bool)
parm:           position_fix:DMA pointer position fix (0, 1, 2) (int)
parm:           probe_only_force:Only probe codecs with force option (bool)
parm:           single_cmd:Use single command to communicate with codecs (bool)
parm:           snoop:Enable/disable snoop mode (bool)
parm:           jackpoll_ms:Polling interval for jack events (in ms, 0 to disable). (int)

Diese Ausgabe liefert eine Fülle von Informationen über das snd_hda_intel-Modul, einschließlich seiner Position im Dateisystem (filename), einer kurzen Beschreibung, der Lizenz, unter der es verteilt wird, und verschiedener Parameter, die verwendet werden können, um sein Verhalten zu konfigurieren.

Das Verständnis, wie man modinfo verwendet, ist entscheidend für die Fehlerbehebung von Treiberproblemen oder das Erlernen mehr über die spezifischen Fähigkeiten und Optionen eines Kernel-Moduls.

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

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie überprüfen können, ob ein bestimmter Treiber in Linux geladen ist. Sie haben begonnen, indem Sie den lsmod-Befehl verwendet haben, um alle derzeit geladenen Kernel-Module aufzulisten, die oft als Treiber bezeichnet werden. Dieser Befehl liefert Informationen über den Modulnamen, die Größe und welche anderen Module ihn verwenden.

Sie haben auch gelernt, dass Sie den Status der geladenen Treiber überprüfen können, indem Sie den Inhalt der Datei /proc/modules mit dem cat-Befehl untersuchen. Schließlich haben Sie entdeckt, wie Sie den modinfo-Befehl verwenden können, um detaillierte Informationen über einen bestimmten Treiber abzurufen, wie z. B. seinen Dateinamen, den Autor, die Beschreibung und die Parameter. Diese Schritte bieten einen umfassenden Ansatz zur Überprüfung der Anwesenheit und der Details der in Ihrem Linux-System geladenen Treiber.