Sto sviluppando i moduli del kernel in questo momento, e i tempi di compilazione stanno iniziando a farsi sotto la pelle. Come effetto collaterale sto prendendo troppe pause "caffè" durante le build.Cercando di trovare tutti i moduli del kernel necessari per la mia macchina usando lo script di shell
Quindi stavo cercando un modo per costruire solo gli elementi necessari per la mia piattaforma. I capitoli 7 e 8 di "linux kernel in poche parole" hanno fornito un buon dettaglio su come farlo a mano. È una buona lettura: http://www.kroah.com/lkn/
Ma anche se capisco le cose, questo è ancora un sacco di modifiche per farlo funzionare.
2.6.32 e successivi kernel hanno aggiunto un nuovo target make localmodconfig
. che esegue la scansione tramite lsmod
e modifica il file .config in modo appropriato. Quindi pensavo di aver trovato la mia "automazione". Ma questo script perl ha anche qualche problema.
Questo thread descrive i problemi: https://bbs.archlinux.org/viewtopic.php?pid=845113
C'era anche una proposta di soluzione che apparentemente ha lavorato per gli altri, è quello di eseguire lo script direttamente invece di utilizzare il bersaglio di marca.
Anche se per me, make localmodconfig non funziona affatto. la sua per i seguenti motivi:
make clean
make mrproper
cp /boo/config-'uname -r' .config
make localmodconfig
ed è ferma con
vboxguest config not found!!
nf_defrag_ipv6 config not found!!
vboxsf config not found!!
vboxvideo config not found!!
La cosa è il mio ambiente di sviluppo del kernel è dentro VirtualBox. Questi moduli vbox sono stati installati quando ho scelto di installare "virtualbox guest addtion".
E il modulo netfilter potrebbe essere un modulo di distribuzione specifico (molti moduli netfilter non fanno parte del kernel della linea principale, quindi non è uno shock per me), che non è incluso nel kernel mainline.
Ora la soluzione è ovviamente quella di scaricare questi moduli e riprovare. Ma penso che ci sia una patch per lo che consentirà all'utente di escludere determinati moduli se lo desidera. Il problema è che ho zero conoscenze su perl e mi piace così.
Così i miei problemi in poche parole
Patching
streamline_config.pl
in modo da poter dare un elenco di nome del modulo come argomento che escluderà dalla elaborazione del file di configurazione.Lo script si trova a kernel.org
EDIT: rimosso il roba circa script perl non è in esecuzione. Come ha sottolineato mugen kenichi (Quanto posso essere stupido?). Resta comunque il fatto che
localmodconfig
non funziona perché non si dispone di codice di alcuni moduli nell'albero dei sorgenti. patchingstreamline_config.pl
requisito ancora valido.
non è possibile eseguire uno script Perl con 'sh'. Prova 'perl' e non otterrai gli errori' my: comando non trovato' e gli errori o gli avvisi perl. –
Sembra che io sia il ragazzo più stupido del mondo. Come potrei farlo :) – Aftnix
Lo script fallisce davvero? Dal codice sembra che stampi solo errori, ma non fallisce se il codice di un modulo non è nella struttura. Vedi [riga 375] (http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=blob;f=scripts/kconfig/streamline_config.pl;h=bccf07ddd0b67a0e2f761fd5721f274a49bf9bbb ; hb = HEAD # l375) –