Compilare il kernel

Una volta arrivati a questo punto, tutto dovrebbe filare liscio come l'olio.
Di seguito riporto i comandi per compilare il kernel, i moduli e installarli automaticamente in /lib/modules/<versione-kernel>:
# make && make modules_install
Alla fine del primo comando vi ritroverete con l'immagine del kernel in arch/<architettura>/boot/bzImage dove l'architettura (e a volte anche il nome dell'immagine) dipende dal vostro processore. Quale sarà il nome dell'immagine e dove si trova lo dovreste leggere alla fine del comando make.
Il secondo comando invece vi installerà i moduli in /lib/modules/<kernel-version>/ e saranno disponibili immediatamente nel caso il kernel sia quello attualmente in uso (e non siano state fatte delle modifiche sostanziali), altrimenti al prossimo riavvio.

Ora l'unica cosa che dovete fare è installare l'immagine del kernel in /boot, configurare il bootloader e riavviare il sistema.
Per installare l'immagine avete due soluzioni: o usate il comando predefinito (quindi non serve sapere dove sta l'immagine e come si chiama) in questa maniera
# make install
oppure, se siete delicatini, lo copiate a manina.
Tenete presente che se la vostra partizione di /boot è separata dalla root (/), ricordatevi di montarla prima di dare il comando di install e successivamente verificate i file copiati (genericamente bzImage, system.map e il .config).

Nel caso invece vi siate trovati degli errori che hanno interrotto la compilazione, l'unica soluzione è cercare di capire cosa stava compilando e capire qual'era il modulo che dava problemi. In situazioni normali non ci dovrebbero essere questi errori, e spesso capita proprio quando si inseriscono moduli non adeguati all'architettura o che sono in conflitto con altri.

Come ultima nota, tenete presente che modificare ripetutamente la configurazione del kernel potrebbe portarvi ad piccoli errori di inconsistenza, tant'è che potrebbe essere necessario dare una ripulita!

Ripulire i sorgenti del kernel per ripartire da zero

Riporto per completezza la procedura necessaria per ripulire completamente la directory del kernel:

# cd /usr/src/linux-2.6.30.1/
# make mrproper

Tenete presente che questa procedura cancella irremediabilmente la configurazione riportando la directory dei sorgenti allo stato iniziale, quindi siate sufficientemente attenti a salvare il .config in un'altra posizione prima di dare il comando!!!
C'è chiaramente un comando meno invasivo, che evita di eliminare il .config, cancellando solo i sorgenti compilati.
# make clean
Oltre a questo potrebbe tornarvi utile ripulire pure la directory dei moduli, in modo da reinstallarli completamente
# rm -rf /lib/modules/<kernel version>/
considerate che ci possono essere moduli esterni al kernel che, una volta ricompilato il kernel, necessitano la ricompilazione (o reinstallazione) a loro volta.


Site optimized for Gecko and Webkit browsers - Copyright © 2008 - Matteo 'Peach' Pescarin