Zum Inhalt

Aktuelle Kernelkonfiguration anzeigen

Der Linux-Kernel speichert laufende Kernelinformationen an zwei Stellen durch spezielle Dateisysteme: (Eine Zusammenfassung von ihnen)

  • Der ältere procfs, der /proc mountet (vergewissern Sie sich über mount -l -t proc)
  • Die neueren sysfs die /sys mountet (überprüfen mit mount -l -t sysfs)

Warnhinweis

Seien Sie vorsichtig, wenn Sie die hier genannten Dateien untersuchen, Änderungen können das Verhalten des aktuellen Kernels ändern!

Diese beiden Schnittstellen erlauben es Ihnen, die Parameter des aktuell laufenden Kernels anzuzeigen und zu ändern.

Beachten Sie, dass, wenn Sie auf einigen Dateien ein ls -l ausführen, wird von diesen Dateien die Länge „0“ angezeigt, wenn Sie sie jedoch mit cat, enthalten sie tatsächlich Daten. Die meisten davon sind ASCII und editierbar, einige sind jedoch binär. In beiden Fällen Befehle wie file oder stat gibt normalerweise nur „leere Datei“ oder „0“ für Längen zurück, obwohl sie Ihnen andere Informationen anzeigen.

Bevorzugte und Standardprogramme für die Interaktion mit diesen Funktionen sind lsmod, modinfo, und sysctl, unter anderem.

sysctl -a | grep -i <keyword>
lsmod | grep -i <keyword>
modinfo <module>

Ihre aktuelle "Kernel-Release" Version ist:

uname -r und ersetze den Rückgabewert in Befehlen durch $(uname -r)

RHEL und Derivate (Fedora, CentOS Stream, Scientific Linux, RockyLinux, Almalinux, et. al.) speichert auch die Konfiguration, die für bootbare installierte Kernel im Verzeichnis /boot verwendet wird, das Grub2 als ASCII-Dateien verwendet:

/boot/config-<kernel-release>

Um die aktuell laufende Kernelkonfiguration auf einen bestimmten Wert zu überprüfen:

cat /boot/config-$(uname -r) | grep -i <keyword>

Ergebnisse werden angezeigt:

  • "=m" wenn als Kernelmodul kompiliert
  • "=y" wenn statisch in den Kernel kompiliert
  • "is not set", wenn diese Einstellung auskommentiert wurde
  • numerischer Wert
  • String-Wert

Einige Distributionen, wie Gentoo und Arch, verwenden das configs Kernelmodul um /proc/config.gz standardmäßig bereitzustellen:

zcat /proc/config.gz | grep -i <keyword>
zgrep <keyword> /proc/config.gz

Für jede Distribution, wenn Ihr laufender Kernel sowohl CONFIG_IKCONFIG als auch CONFIG_IKCONFIG_PROC gesetzt hat und wenn

ls -lh /sys/module/configs

existiert und ist ausführbar (durchsuchbar bei einem Verzeichnis), dann können Sie /proc/config.gz mit diesem Befehl generieren, wenn er nicht vorhanden ist:

modprobe configs

aktivierte Repos

Dieses Dokument deckt derzeit keine Kernel-Pakete ab, die möglicherweise von Nicht-Standard-Repos stammen, wie z.B.:

appstream-debug, appstream-source, baseos-debug, baseos-source oder devel

Die kernel-devel Pakete installieren die Konfigurationsdatei, die verwendet wird, um jedes installierte Standard-Kernel-Paket als ASCII-Datei an der folgenden Stelle zu kompilieren:

/usr/src/kernels/<kernel-release>/.config

Diese Datei wird häufiger durch einen symlinked Pfad aufgerufen, der von den kernel-core Paketen bereitgestellt wird:

/lib/modules/<kernel-release>/build/ -> /usr/src/kernels/<kernel-release>/

Wenn Sie kernel-debug-devel Pakete installiert haben, haben Sie auch dieses Verzeichnis:

 /usr/src/kernels/<kernel-release>+debug/

Sie können in jedem der folgenden Informationen zu den Konfigurationswerten durchsuchen, die zum Erstellen eines installierten Kernels verwendet werden:

/lib/modules/<kernel-release>/config
/lib/modules/<kernel-release>/build/.config
/usr/src/kernels/<kernel-release>/.config
/usr/src/kernels/<kernel-release>+debug/.config

Konfigurierte Module für den aktuell laufenden Kernel, ob kompiliert wie eingebaut (i.e., statisch in den Kernel selbst) oder ein ladbares Modul, werden von Unterverzeichnissen mit dem Namen des Moduls aufgelistet:

/sys/module/

Für jede installierte Kernel-Veröffentlichung können Sie diese Dateien überprüfen, um zu sehen, welche Werte in diesem Kernel kompiliert wurden, und welche Version von GCC verwendet wurde, um es zu kompilieren:

cat /lib/modules/$(uname -r)/config | grep -i <keyword>
cat /lib/modules/$(uname -r)/build/.config | grep -i <keyword>
cat /usr/src/kernels/$(uname -r)/.config | grep -i <keyword>
cat /usr/src/kernels/$(uname -r)+debug/.config | grep -i <keyword>
ls -lh /sys/module/ | grep -i <keyword>

Sie können in der Datei nach Abhängigkeiten des Kernelmoduls suchen:

/lib/modules/<kernel-release>/modules.dep

aber es ist einfacher, die Ausgabe des Feldes "Used-by" in lsmod zu lesen oder zu parsen.

Referenzen:

depmod, ls, lsmod, modinfo, modprobe, modules.dep, namespaces, procfs, sysctl, sysfs, uname

Author: David Hensley

Contributors: Steven Spencer