So prüfen Sie, ob eine bestimmte Kernel-Kompilierungsoption in Linux aktiviert 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 feststellen können, ob eine bestimmte Kernel-Kompilierungsoption in Ihrem Linux-System aktiviert ist. Wir werden drei gängige Methoden zur Erreichung dieses Ziels untersuchen.

Zunächst verwenden Sie den Befehl zcat, um die komprimierte Kernel-Konfigurationsdatei unter /proc/config.gz zu untersuchen. Diese Datei enthält die Optionen, die während der Kernel-Kompilierung verwendet wurden. Anschließend lernen Sie, wie Sie diese Optionen überprüfen können, indem Sie die Konfigurationsdateien im Verzeichnis /boot untersuchen. Schließlich erfahren Sie, wie Sie die Kompilierungsprotokolle des Kernels mit dem Befehl dmesg untersuchen können, um weitere Einblicke in die aktivierten Funktionen zu erhalten. Am Ende dieses Labs verfügen Sie über die Fähigkeiten, um Kernel-Kompilierungsoptionen effektiv auf Ihrem Linux-System zu überprüfen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/CompressionandArchivingGroup(["Compression and Archiving"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/BasicFileOperationsGroup -.-> linux/less("File Paging") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/CompressionandArchivingGroup -.-> linux/gzip("Gzip") subgraph Lab Skills linux/ls -.-> lab-558758{{"So prüfen Sie, ob eine bestimmte Kernel-Kompilierungsoption in Linux aktiviert ist"}} linux/cat -.-> lab-558758{{"So prüfen Sie, ob eine bestimmte Kernel-Kompilierungsoption in Linux aktiviert ist"}} linux/less -.-> lab-558758{{"So prüfen Sie, ob eine bestimmte Kernel-Kompilierungsoption in Linux aktiviert ist"}} linux/grep -.-> lab-558758{{"So prüfen Sie, ob eine bestimmte Kernel-Kompilierungsoption in Linux aktiviert ist"}} linux/gzip -.-> lab-558758{{"So prüfen Sie, ob eine bestimmte Kernel-Kompilierungsoption in Linux aktiviert ist"}} end

Überprüfen von Kompilierungsoptionen mit zcat /proc/config.gz

In diesem Schritt lernen Sie, wie Sie die Kernel-Konfigurationsoptionen untersuchen können, die bei der Kompilierung Ihres Linux-Kernels verwendet wurden. Diese Informationen sind in einer komprimierten Datei im /proc-Dateisystem gespeichert.

Das /proc-Dateisystem ist ein virtuelles Dateisystem, das Informationen über Prozesse und andere Systeminformationen bereitstellt. Es enthält keine echten Dateien auf der Festplatte, sondern bietet einen Einblick in die internen Datenstrukturen des Kernels.

Die Datei, die uns interessiert, ist /proc/config.gz. Diese Datei enthält die Kernel-Konfigurationsoptionen in komprimierter Form. Um ihren Inhalt anzuzeigen, müssen wir einen Befehl verwenden, der die Datei entpacken und anzeigen kann.

Der Befehl zcat ist dafür perfekt geeignet. Er wird verwendet, um die Inhalte von mit gzip komprimierten Dateien zu entpacken und anzuzeigen.

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

Geben Sie jetzt den folgenden Befehl ein und drücken Sie die Eingabetaste:

zcat /proc/config.gz

Dieser Befehl entpackt die Datei /proc/config.gz und gibt ihren Inhalt in Ihrem Terminal aus. Sie werden eine lange Liste von Konfigurationsoptionen sehen, die jeweils mit CONFIG_ beginnen. Diese Optionen bestimmen, welche Funktionen und Treiber in Ihrem Kernel enthalten sind.

Beispielsweise könnten Sie Zeilen wie diese sehen:

CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
## CONFIG_NET_KEY is not set
CONFIG_INET=y
  • CONFIG_NET=y bedeutet, dass die Netzwerkunterstützung aktiviert ist.
  • CONFIG_NET_KEY is not set bedeutet, dass eine bestimmte Netzwerkfunktion nicht enthalten ist.

Das Durchscrollen dieser Ausgabe kann überwältigend sein. Sie können den Befehl less verwenden, um die Ausgabe seitenweise anzuzeigen. Dazu verwenden wir eine Pipe (|). Die Pipe leitet die Ausgabe eines Befehls als Eingabe an einen anderen Befehl weiter.

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

zcat /proc/config.gz | less

Jetzt können Sie mit den Pfeiltasten nach oben und unten scrollen und q drücken, um less zu beenden.

Dieser Befehl ist sehr nützlich, um genau zu verstehen, wie Ihr Kernel gebaut wurde und welche Funktionen er hat.

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

Überprüfen von Optionen in /boot/config-*

Im vorherigen Schritt haben Sie die Kernel-Konfiguration aus /proc/config.gz angesehen. Ein weiterer Ort, an dem Kernel-Konfigurationsdateien häufig gespeichert werden, ist das Verzeichnis /boot.

Das Verzeichnis /boot enthält Dateien, die zum Booten des Betriebssystems benötigt werden, einschließlich des Kernels selbst und oft auch der Konfigurationsdatei, die zum Bauen des Kernels verwendet wurde.

Die Konfigurationsdatei in /boot trägt typischerweise den Namen config- gefolgt von der Kernel-Version. Da die Kernel-Version variieren kann, können wir ein Platzhalterzeichen (*) verwenden, um den Dateinamen zu matchen.

Zunächst listen wir die Dateien im Verzeichnis /boot auf, um zu sehen, ob dort eine Konfigurationsdatei existiert. Verwenden Sie den Befehl ls:

ls /boot/

Sie sollten eine Liste von Dateien sehen, darunter eine, die mit config- beginnt und von einer Versionsnummer gefolgt wird (z. B. config-5.15.0-105-generic).

Jetzt lassen Sie uns den Inhalt dieser Datei anzeigen. Wir können den Befehl cat verwenden, um den Dateiinhalt anzuzeigen. Denken Sie daran, config-* durch den tatsächlichen Dateinamen zu ersetzen, den Sie in der vorherigen ls-Ausgabe gefunden haben, oder verwenden Sie das Platzhalterzeichen. Die Verwendung des Platzhalterzeichens ist allgemeiner.

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

cat /boot/config-*

Dadurch werden die Kernel-Konfigurationsoptionen aus der Datei im Verzeichnis /boot angezeigt. Sie werden feststellen, dass der Inhalt sehr ähnlich, wenn nicht identisch, mit der Ausgabe ist, die Sie von zcat /proc/config.gz gesehen haben. Dies liegt daran, dass /proc/config.gz oft eine komprimierte Kopie der Konfigurationsdatei im Verzeichnis /boot ist.

Das Verwenden von cat auf der Datei in /boot ist eine weitere Möglichkeit, auf die Kernel-Konfiguration zuzugreifen, insbesondere wenn /proc/config.gz nicht verfügbar ist oder Sie die unkomprimierte Version direkt sehen möchten.

Wiederum können Sie die Ausgabe an less weiterleiten, um die Anzeige zu erleichtern:

cat /boot/config-* | less

Drücken Sie q, um less zu beenden.

Das Verständnis, wo man die Kernel-Konfiguration findet, ist wichtig für die Fehlerbehebung und die fortgeschrittene Systemadministration.

Klicken Sie auf Weiter, um fortzufahren.

Prüfen von Kompilierungsprotokollen in dmesg

In den vorherigen Schritten haben Sie gelernt, wie Sie die Kernel-Konfiguration anzeigen können. Jetzt schauen wir uns den Kernel-Nachrichtenpuffer an, der Nachrichten enthält, die vom Kernel während des Bootvorgangs und der Laufzeit erzeugt wurden. Dies kann manchmal Informationen zur Kernel-Kompilierung oder zum Laden von Modulen enthalten.

Der Befehl dmesg wird verwendet, um den Kernel-Ringpuffer zu untersuchen oder zu steuern. Der Ringpuffer speichert Nachrichten vom Kernel, die oft für die Fehlersuche und das Verständnis von Systemereignissen nützlich sind.

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

dmesg

Dadurch wird eine große Menge an Ausgabe in Ihrem Terminal angezeigt. Dies sind Nachrichten vom Kernel, einschließlich Informationen zur Hardwareerkennung, zum Laden von Gerätetreibern und anderen Systemereignissen, die seit dem Booten des Systems aufgetreten sind.

Um Informationen zur Kernel-Version oder -Kompilierung zu finden, können Sie die Ausgabe von dmesg an grep weiterleiten. grep ist ein leistungsstarkes Befehlszeilen-Tool zum Suchen in Textdateien nach Zeilen, die einem regulären Ausdruck entsprechen.

Lassen Sie uns nach Zeilen suchen, die das Wort "Linux" enthalten, um die Kernel-Versionsinformationen anzuzeigen.

dmesg | grep "Linux"

Sie sollten eine Ausgabe ähnlich der folgenden sehen, die die Kernel-Version anzeigt:

[    0.000000] Linux version 5.15.0-105-generic (...)

Sie können auch nach anderen Schlüsselwörtern suchen, die möglicherweise mit Kernel-Modulen oder Kompilierungsoptionen in Verbindung stehen, obwohl direkte Kompilierungsprotokolle hier normalerweise nicht zu finden sind. dmesg bezieht sich eher auf Laufzeitnachrichten des Kernels.

Beispielsweise könnten Sie nach Nachrichten zu einem bestimmten Treiber oder Subsystem suchen, wenn Sie seinen Namen kennen.

Wiederum ist die Verwendung von less mit dmesg hilfreich, um durch die Ausgabe zu navigieren:

dmesg | less

Drücken Sie q, um less zu beenden.

Obwohl dmesg nicht direkt den Kernel-Kompilierungsprozess anzeigt, bietet es wertvolle Einblicke in den aktuell laufenden Kernel, einschließlich seiner Version und der geladenen Module, die durch die Kompilierungskonfiguration bestimmt werden, die Sie in den vorherigen Schritten angesehen haben.

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

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie prüfen können, ob eine bestimmte Kernel-Kompilierungsoption in Linux aktiviert ist. Sie haben das /proc-Dateisystem untersucht, insbesondere die Datei /proc/config.gz, die die während der Kompilierung verwendeten Kernel-Konfigurationsoptionen speichert. Sie haben den Befehl zcat verwendet, um den Inhalt dieser Datei zu entpacken und anzuzeigen, und gelernt, wie Sie die Ausgabe an less weiterleiten können, um die Anzeige zu erleichtern. Dieser Prozess ermöglicht es Ihnen, die verschiedenen CONFIG_-Optionen zu prüfen und zu bestimmen, welche Funktionen und Treiber in Ihrem laufenden Kernel enthalten sind.