Installeremo dunque tutti i pacchetti creati con dpkg (questa volta da root), ad esempio:
# dpkg -i linux-image-2.6.29-nome.kernel.personalizzato_1_amd64.deb
GRUB verrà automaticamente aggiornato, inserendo in menu.lst una riga per avviare il nuovo kernel. Se abbiamo i pacchetti .deb degli headers e dei moduli compilati installeremo anche questi allo stesso modo.
A questo punto potremo riavviare il nostro computer. Nel menu di GRUB vedremo ora il nuovo kernel e potremo selezionarlo per avviarlo. Se tutto è andato a buon fine, ci ritroveremo nel nostro ambiente abituale con una bella novità: il nostro (primo) nuovo kernel!
Kernel Panic!
Se il boot dovesse finire, rispettivamente interrompersi con questo messaggio, nonostante le parole, niente panico. Se avete utilizzato una configurazione conosciuta (come quella del vostro attuale "vecchio" kernel) il problema non può che risiedere nei moduli relativi al file system e/o al controller del disco. A volte può essere solo un parametro a cambiare il destino del boot; basterà allora rivedere con calma le opzioni configurate e riprovare. Dal momento che abbiamo un kernel funzionante, quello "vecchio" che vi siete assicurati di avere all'inizo dell'articolo, potremo avviare il sistema da quest'ultimo scegliendolo dal menu di GRUB. Per rimuovere il kernel "non funzionante" utilizzeremo ad es. aptitude:
# aptitude purge linux-image-2.6.29-nome.kernel.personalizzato
Ci ricorderemo di rimuovere i pacchetti .deb relativi (non creano problemi, ma "sporcano" un po' l'ordine in /usr/src/ e soprattutto di lanciare make-kpkg clean onde evitare "interferenze" con la nuova compilazione. Accederemo ora al menu con make menuconfig, "correggeremo" la configurazione e via per una nuova compilazione!
N.B.: ultimissima nota, se ci vogliamo installare/compilare due kernel con la stessa versione, dovremo ricordarci di cambiare l'"etichetta" --append-to-version e non solo --revision; se facessimo in questo modo (cambiando solo revision) il kernel "vecchio" (quello attualmente in uso) verrebbe sovrascritto.
Conclusioni
Con questo articolo ho voluto dare le basi per la compilazione del kernel Linux su debian ad un utente "comune". In ogni caso, spero che la guida possa anche essere un buon riassunto sulle varie possibilità di compilazione del kernel per un utente avanzato. Per quest'articolo mi sono basato soprattutto sulla guida "Linux Kernel in a Nutshell" (già citata nell'articolo) e su un'ottima guida della comunità (http://guide.debianizzati.org/index.php/Debian_Kernel_Howto). Gli script find_CONFIG.sh e find_all_CONFIG.sh sono opera dell'autore, get-driver.sh e find_all_modules.sh sono tratti da "Linux Kernel in a Nutshell".
Abbiamo,dunque, visto come compilare i sorgenti del kernel. Per ora il lavoro maggiore consiste nella configurazione vera e propria. Dovremo, quindi, leggere attentamente tutti gli "help" delle vari opzioni e decidere ogni volta se compilarli nel nostro kernel o meno. Nel prossimo numero vedremo come ottimizzare il proprio kernel andando a cercare alcune configurazioni particolari. Al momento, buona compilazione a tutti!