Il make localmodconfig
comando è ancora lo strumento giusto per il lavoro. In effetti make localmodconfig
correscripts/kconfig/streamline_config.pl
.
File input
Durante la lettura del streamline_config.pl
codice sorgente (perl), esiste una funzione non documentata my $lsmod_file = $ENV{'LSMOD'};
che consente l'input di file per il rilevamento di moduli caricati anziché l'output dal lsmod
comando.
CD live
Perché localmodconfig utilizza l'output lsmod
per rilevare i moduli caricati. Eseguiamo un Live CD di Ubuntu su ciascuna delle diverse configurazioni hardware, apriamo un terminale ( Ctrl+ Alt+ T), eseguiamo lsmod
e salviamo il suo output.
Concatena l'output
Concatenando i lsmod
file di output mentre si rimuovono le righe di intestazioni consecutive è possibile creare rapidamente un file di input che copra tutti i moduli del kernel richiesti. Ci piace rivedere manualmente l'elenco dei moduli e utilizzare una ricetta più manuale:
$ cd linux-3.11.0/
oppure vai alla directory in cui eseguirai il comando make
$ lsmod > lsmod.txt
crea un file di testo con i moduli caricati
$ nano lsmod.txt
aprirà l'editor di testo nano, ovviamente puoi usare la tua applicazione di editor preferita
Aggiungi i moduli desiderati che non sono già presenti, in fondo a questo file (vedi un esempio in fondo a questa risposta) e salvalo quando sei pronto.
Nota: utilizzare spazi non tabulazioni per abbinare le posizioni del tabulatore di colonna.
$ make LSMOD="lsmod.txt" localmodconfig
questo indicherà a localmodconfig di utilizzare il file lsmod.txt come input per il rilevamento dei moduli caricati
Per quanto riguarda Steven Rostedt - l'autore di steamline_config.pl - per aver suggerito una notazione più breve nel passaggio 5.
Esempio di cosa aggiungere e non aggiungere a lsmod.txt (passaggio 4):
Poiché la scheda madre Intel D33217CK ha sensori termici Intel che vorremmo leggere, aggiungiamo queste righe:
x86_pkg_temp_thermal 13810 0
intel_powerclamp 14239 0
Ma non vogliamo eseguire macchine virtuali su questo hardware, ecco perché saltiamo queste linee:
kvm_intel 128218 0
kvm 364766 1 kvm_intel
Ha un adattatore Ethernet Gibabit Apple (Broadcom) collegato alla sua porta Thunderbolt, quindi aggiungiamo:
tg3 152066 0
ptp 18156 1 tg3
pps_core 18546 1 ptp
Riteniamo di non aver bisogno del mirroring del volume e quindi non aggiungere:
dm_mirror 21715 0
dm_region_hash 15984 1 dm_mirror
dm_log 18072 2 dm_region_hash,dm_mirror
E inoltre non abbiamo bisogno di output grafico (il testo funzionerà su un server senza testa), quindi non includiamo:
i915 589697 3
i2c_algo_bit 13197 1 i915
drm_kms_helper 46867 1 i915
drm 242354 4 i915,drm_kms_helper
Per un'altra macchina abbiamo bisogno di questo driver ethernet Realtek adizionale:
r8169 61434 0
mii 13654 1 r8169