Modifica sicura della configurazione del kernel Linux a livello di codice


8

Sto scrivendo uno script che deve cambiare automaticamente una serie di opzioni di configurazione del kernel Linux basate su un file di input.
Il modo più semplice per farlo sarebbe ovviamente modificare direttamente il file .config, ma questo è sconsigliato e può causare problemi.
Tuttavia, non riesco a trovare un modo per farlo "nel modo giusto".

"make help" non mostra un modo per cambiare le singole opzioni, né ./scripts/kconfig/conf --help. Nemmeno questo file su kernel.org sembra avere un modo.
Anche Genkernel di Gentoo modifica manualmente il file .config.

Quindi, in sostanza:
esiste un modo sicuro per modificare le opzioni di configurazione del kernel a livello di codice, completo di tracciamento delle dipendenze, ecc.?
Kconfig può essere eseguito manualmente per raggiungere questo obiettivo?

Risposte:


3

Quello che faccio è prima di tutto:

make defconfig

Quindi aggiungere le modifiche alle impostazioni .configseguite da:

make olddefconfig

Questo dovrebbe "correggere" eventuali incongruenze introdotte nella configurazione. YMMV poiché potrebbe non risolverli nel modo previsto.


Grazie per la tua risposta! Ho pensato di farlo, ma come hai detto tu, YMMV. Se ci sono 2 opzioni in conflitto, non si può dire quale risolverà.
SharkWipf,

@SharkWipf Beh, in ogni caso mi aspetto che il risultato sia deterministico. Quindi, se il risultato non è quello che vuoi, basta aggiungere un'altra affermazione spegnendo la cosa in conflitto e ripetere questo processo fino a quando non funziona.
Depresso

È vero, ma potrebbe interferire con altre opzioni in modi che non riesco a controllare, e poiché alla fine vorrei mettere questo script su Github, vorrei che fosse il più stabile e affidabile possibile. Generalmente questo script verrà utilizzato per modificare le configurazioni del kernel esistenti create dall'utente, piuttosto che generarne di nuove, quindi è difficile farlo funzionare in modo affidabile in questo modo.
SharkWipf,

@SharkWipf Bene, sembra che ciò che stai cercando di ottenere richieda una sorta di intelligenza artificiale;) La soluzione convenzionale è quella di fornire un valore predefinito che funzioni e consentire alle persone di personalizzare se ne hanno il coraggio.
Depresso

se voglio farlo completamente manualmente, sì. Ma speravo che ci potesse essere un modo per usare Kconfig per simulare "ticking box" in menuconfig, perché sembra che dovrebbe essere una cosa. Fondamentalmente quello che voglio fare è consentire agli utenti di copiare i requisiti del kernel dal wiki di Gentoo, risolverli nei valori di configurazione corretti ove possibile (abbastanza facile), quindi aggiornare la configurazione di conseguenza (dopo una recensione dell'utente, ovviamente). Quindi non ci sono "valori predefiniti" in questo caso.
SharkWipf,

0

Vorrei andare per una patch del file .config. I passaggi che devi prendere per prepararlo sono

cp .config .config.bck
make menuconfig # Here change all that you need to fit your needs
diff -u .config.bck .config > myconfig.$(kern_vers).patch

Quindi, nel tuo script aggiungi questa riga

patch .config myconfig.$(kern_vers).patch
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.