Rispondere automaticamente alle impostazioni predefinite quando si esegue 'make oldconfig' su un albero del kernel


36

Quando make oldconfigsi crea un nuovo kernel basato su una configurazione precedente, c'è un modo per automatizzare il processo in modo che imposti nuove opzioni sui loro valori predefiniti?

Modifica: ciò che intendo è che quando si utilizza un .config (da /boot/config-*o /proc/config.gz) su un kernel più recente, il make oldconfigprocesso chiederà se si desidera o meno abilitare opzioni che non erano disponibili nel kernel precedente. È possibile rispondere a Y / n / m oppure premere Invio per accettare l'impostazione predefinita. Vorrei accettare automaticamente le impostazioni predefinite senza alcuna interazione da parte dell'utente.


@jscott Questo solo "premi invio" per la prima domanda, non tutti. Puoi usare il comando 'yes' per avere una stringa stampata indifinitamente.
Laurent Parenteau,

Risposte:


37

Usa il comando:

yes "" | make oldconfig

Il comando 'yes' emette ripetutamente una riga con tutte le stringhe specificate, o 'y' per impostazione predefinita.

Quindi, puoi usarlo semplicemente "premi invio", il che comporterà l'uso del valore predefinito per il comando 'make oldconfig'.


Ahh, non sapevo che il comando 'yes' potesse generare qualsiasi stringa. Grazie!
Jean-Francois Chevrette,

3
Questo è fenomenale.
Ivan X

1
La risposta è un'idea molto migliore serverfault.com/a/538150/18822
Evan Carroll

56
make olddefconfig

è quello che vuoi. Dall'aiuto ( make helpnella directory dei sorgenti del kernel)

olddefconfig: uguale a silentoldconfig ma imposta i nuovi simboli sul loro valore predefinito


Ho cercato qualcosa di simile per un po '... grazie mille!
Jafar Kofahi,

Quale versione di Linux è arrivata? Solo curioso. Attualmente sto gestendo una versione precedente (3.0) e non ce l'ha ancora.
Clacke,

1
Questa dovrebbe essere la risposta corretta.
suprjami,

0

Sì. È memorizzato in ".config" nel livello superiore della directory di origine.

Inoltre, se si utilizza il kernel di distribuzione, alcune distribuzioni come RedHat lo memorizzano in / boot / config - $ (uname -r). (versione del kernel) [1]

Infine, se compilato nel kernel in esecuzione, è disponibile in /proc/config.gz. Ho dimenticato quale versione ha introdotto questa opzione.

[1] Queste opzioni:

CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y 

modificare

Scopri /usr/src/linux/kernel/Documentation/kbuild/kconfig.txt (o percorso appropriato). È possibile utilizzare alcuni dei loro consigli per creare script di una soluzione. Vorrei usare una combinazione di script e textutils per realizzare ciò che descrivi.

Modifica 2

Come nota aggiuntiva, questa è una cattiva idea. Cosa succede se il supporto hardware opzionale unico per il tuo ambiente cambia ma non è predefinito? Cosa succede se si verificano cambiamenti che incidono negativamente? Questo è davvero qualcosa che dovrebbe essere interattivo. Puoi effettuare la configurazione e automatizzare il resto.

"make silentoldconfig" è un po 'meno dettagliato, il che potrebbe essere utile. È ancora interattivo.


Non è quello che intendevo. Ho aggiunto ulteriori dettagli alla mia domanda per spiegare cosa voglio ottenere.
Jean-Francois Chevrette,

0

make silentoldconfig


2
make silentoldconfig è ancora interattivo, è solo meno
prolisso
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.