Il compilatore utilizzato per la compilazione del kernel è il GCC versione 2.95.3, anche se nel sistema LFS è stata installata una versione più recente, la 3.3.3. La scelta di utilizzare la versione 2.95.3 del compilatore è consigliata dagli sviluppatori del kernel in modo da avere una stabilità assoluta del sistema. Le altre versioni del compilatore GCC non sono state testate a sufficienza per la compilazione del kernel. Anche se utilizzando una versione più recente del GCC come la 3.3.3 si otterrebbe un kernel funzionante e stabile è buona norma utilizzare il 2.95.3.
Per poter far convivere due versioni diverse dello stesso compilatore sulla stessa macchina, la versione 2.95.3 è stata installata nella directory /opt.
La compilazione del kernel può essere suddivisa in quattro parti:
In questa fase bisogna scegliere se includere il supporto per i dispositivi direttamenente nel kernel oppure come moduli. Nel caso in cui la macchina utilizzata per il sistema LFS sia un po datata, si preferisce utilizzare un kernel statico (ovvero senza il supporto per i moduli), includendo solamente il supporto per l'hardware che effetivamente è presente nella macchina. In questo modo si rende la macchina un pò più performante. Con l'avanzare delle prestazioni dei computer, utilizzare un kernel statico non comporta nessun vantaggio significativo rispetto alle prestazioni. Ci sono altri motivi da tenere in considerazione per effettura questa scelta. Se per es. una macchina deve essere utilizzata come server, utilizzando un kernel statico, aumenterebbe la sicurezza della macchina.
Prima di effettuare qualsiasi operazione, il primo comando da impartire, dopo essersi assicurati di trovarsi nella directory dei sorgenti del kernel /usr/src/linux è:
Il prossima passo consiste nell'avviare l'utility relativa alla configurazione. Nelle versioni 2.4.x esistono quattro modalità con cui effettuare la configurazionene del kernel. Queste sono: config, oldconfig, menuconfig, xconfig. Possiamo scegliere uno qualsiasi di questi facendo attenzione nel caso di menuconfig di avere le librerie ncurses installate, mentre nel caso di xconfig di trovarsi nell'ambiente grafico e avere nel sistema le librerie Tcl/Tk e X. Quindi con :
[scale=0.5]immagini/menuconfig.png
attraverso un menù molto intuitivo possiamo selezionare le varie componenti che faranno parte del kernel. Dopo aver salvato la configurazione del kernel, verrà creato una file .config che conterrà le informazioni relative alle selezioni delle varie voci che abbiamo effettuto nel menù e verrà utilizzato dal compilatore. Questo file deve essere conservato con cura, in modo da poterlo utilizzare come punto di riferimento per le eventuali compilazioni successive.
Se si è scelto di utilizzare un kernel con il supporto dei modulì, questi dovranno essere compilati ed installati:
Daniele Salamina, Relazione di Laurea, Progettazione e realizzazione di una distribuzione GNU/Linux, Settembre 2004