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 übermount -l -t proc
) - Die neueren sysfs die
/sys
mountet (überprüfen mitmount -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