Es gibt drei Arten von Dingen, die als Kernel-Parameter bezeichnet werden können.
Core - Kernel - Parameter sind Optionen auf der Kernel - Kommandozeile übergeben. Sie können nur beim Booten übergeben werden. Sie sind dokumentiert in kernel-parameters.txt
(diese Datei listet auch Modulparameter auf; Kernkernparameter sind diejenigen ohne a .
). Einige dieser Parameter spielen nur beim Booten eine Rolle (z root
. B. ). Für diejenigen, die während der gesamten Lebensdauer des Systems verwendet werden, gibt es möglicherweise einen Mechanismus, um sie zur Laufzeit zu ändern. Es gibt keine allgemeine Regel.
Modulparameter sind wie Kernelparameter, geben jedoch eine bestimmte Komponente des Kernels an, normalerweise einen bestimmten Treiber. Trotz des Namens gelten diese Parameter unabhängig davon, ob der entsprechende Treiber direkt im Kernel oder als Modul kompiliert wird. Wenn die Komponente im Haupt-Kernel-Image enthalten ist, müssen Sie COMPONENT_NAME.PARAMETER_NAME=VALUE
die Kernel-Befehlszeile übergeben. Wenn die Komponente als Modul geladen wird, müssen Sie passieren PARAMETER_NAME=VALUE
zu insmod
.
Einige Modulparameter sind über sysfs sichtbar . Das Verzeichnis /sys/module/MODULE_NAME/parameters
enthält eine Datei pro Parameter. Wenn Sie diese Datei lesen, erhalten Sie den aktuellen Wert des Parameters. Durch Schreiben in diese Datei wird der Parameter festgelegt, sofern er geändert werden kann. Die meisten Parameter können nicht geändert werden (daher ist die Datei schreibgeschützt). Das Verzeichnis /sys/module/kernel/parameters
listet einige der Kernel-Kernparameter auf.
Modulparameter werden willkürlich dokumentiert; Einige von ihnen sind in aufgeführt kernel-parameters.txt
, und die Datei enthält Referenzen für einige Module. Wenn Sie die Dokumentation nicht finden können, suchen Sie die Quelle . Modulparameter werden durch das erklärt module_param
Makro oder einer seiner Begleiter module_param_named
, module_param_cb
usw. Der letzte Parameter dieser Makros bestimmt die Dateiberechtigungen (zB 0600
oder S_IRUSR | S_IWUSR
würde rw-------
also lesbar und beschreibbar root und unzugänglich von jemand anderem). Wenn die Berechtigung 0 ist, wird der Eintrag in sysfs überhaupt nicht angezeigt.
i8042.nomux
und i8042.reset
sind Parameter des i8042
Treibers . Beim Quellcode haben beide die Berechtigung 0, sodass diese beiden Parameter zur Laufzeit nicht geändert oder sogar abgefragt werden können. Sie können die Parameter nur einstellen, wenn der Treiber gestartet wird. Wenn der Treiber als Modul kompiliert ist, können Sie beim Entladen und erneuten Laden des Moduls beim erneuten Laden verschiedene Parameter angeben. Wenn sich der Treiber direkt im Kernel befindet oder die Konfiguration Ihres Systems das Entladen des Moduls effektiv unmöglich macht, müssen Sie einen Neustart durchführen.
Schließlich ist eine andere Art von Parametern im Kernel sysctl . Diese Einstellungen können mit dem sysctl
Befehl oder über angezeigt und geändert werden /proc/sys
. Ich denke, die Trennung zwischen sysctl- und Kernel-Parametern ist größtenteils historisch; Hardware-bezogene Einstellungen sind traditionell Kernel-Parameter, während Software-bezogene Einstellungen traditionell sysctl sind, aber die Unterscheidung kann manchmal unscharf sein.
/sys/module/i8042/parameters
, aber die einzige vorhandene Datei istdebug
.Ich denke, die Liste der Parameter, die zur Laufzeit geändert werden können, kann mit dem Befehl "sudo sysctl -a" gefunden werden. Ich habe i8042.nomux in meinem System nicht gesehen. Nicht sicher warum. Möglicherweise können Sie es in Ihrem überprüfen. Wenn Sie den Parameter sehen, können Sie ihn zur Laufzeit ändern.
quelle