Frage Antworten Sie automatisch auf die Standardeinstellungen, wenn Sie 'make oldconfig' in einer Kernel-Struktur ausführen


Wenn man einen neuen Kernel auf der Basis einer vorherigen Konfiguration erstellt, gibt es eine Möglichkeit, das zu automatisieren make oldconfig Prozess, so dass es neue Optionen auf ihre Standardwerte setzt?

Bearbeiten: Was ich meine ist, dass bei Verwendung einer .config (von /boot/config-* oder /proc/config.gz) auf einem neueren Kernel, der make oldconfig Der Prozess fragt, ob Sie Optionen aktivieren möchten, die in Ihrem älteren Kernel nicht verfügbar waren. Sie können mit Y / n / m antworten oder die Eingabetaste drücken, um den Standardwert zu übernehmen. Ich möchte automatisch Standardwerte ohne Benutzerinteraktion akzeptieren.


32
2018-02-24 16:06


Ursprung


@jscott Dies würde nur "Enter" für die erste Frage drücken, nicht alle von ihnen. Sie können den Befehl 'yes' verwenden, um eine Zeichenfolge gleichgültig zu drucken. - Laurent Parenteau


Antworten:


Verwenden Sie den Befehl:

yes "" | make oldconfig

Der Befehl 'yes' gibt wiederholt eine Zeile mit der angegebenen Zeichenfolge oder 'y' als Vorgabe aus.

Sie können es also verwenden, um einfach "Enter" zu drücken, was dazu führt, dass der Standardwert für den Befehl "make oldconfig" verwendet wird.


29
2018-02-24 16:59



Ahh, ich wusste nicht, dass der 'Ja'-Befehl irgendeine Zeichenfolge ausgeben könnte. Vielen Dank! - Jean-Francois Chevrette
Das ist phänomenal. - Ivan X
Antwort ist eine viel bessere Idee serverfault.com/a/538150/18822 - Evan Carroll


make olddefconfig

ist was du willst. Von der Hilfe (make help im Kernel Quellverzeichnis)

olddefconfig - Wie silentoldconfig, setzt aber neue Symbole auf ihren Standardwert


47
2017-09-11 16:48



Ich habe schon lange nach so etwas gesucht ... vielen Dank! - Jafar Kofahi
Welche Version von Linux ist angekommen? Nur neugierig. Ich handle gerade eine alte Version (3.0) und es hat es noch nicht. - clacke
Dies sollte die richtige Antwort sein. - suprjami


Ja. Es ist in ".config" in der obersten Ebene des Quellverzeichnisses gespeichert.

Außerdem, wenn Distributions-Kernel verwendet wird, speichern einige Distributionen wie RedHat es in / boot / config - $ (uname -r). (Kernel-Version) [1]

Wenn es schließlich in dem ausgeführten Kernel kompiliert wurde, ist es in /proc/config.gz verfügbar. Ich vergesse, welche Version diese Option eingeführt hat.

[1] Diese Optionen:

CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y 

Bearbeiten

Sehen Sie sich /usr/src/linux/kernel/Documentation/kbuild/kconfig.txt (oder den entsprechenden Pfad) an. Sie können einige ihrer Empfehlungen verwenden, um eine Lösung zu skripten. Ich würde eine Kombination aus Scripting und Textutils verwenden, um das zu erreichen, was Sie beschreiben.

Bearbeiten 2

Als zusätzliche Anmerkung ist dies eine schlechte Idee. Was ist, wenn sich die optionale Hardwareunterstützung für Ihre Umgebung ändert, aber nicht standardmäßig ist? Was passiert, wenn sich negativ beeinflussende Veränderungen ergeben? Das sollte wirklich interaktiv sein. Sie können die Konfiguration vornehmen und den Rest automatisieren.

"make silentoldconfig" ist etwas weniger ausführlich, was hilfreich sein könnte. Es ist immer noch interaktiv.


0
2018-02-24 16:13



Das ist nicht das, was ich meinte. Ich habe meiner Frage weitere Details hinzugefügt, um zu erklären, was ich erreichen möchte. - Jean-Francois Chevrette


make silentoldconfig


0
2018-02-24 17:59



make silentoldconfig ist immer noch interaktiv, es ist nur weniger ausführlich - Laurent Parenteau