8.3. Linux-2.6.16.27

Il pacchetto Linux contiene il kernel Linux.

Tempo di costruzione approssimativo: 1.5 - 3 SBU
Spazio necessario su disco: 310 - 350 MB

8.3.1. Installazione del kernel

La costruzione del kernel comporta alcuni passi: configurazione, compilazione e installazione. Leggere il file README nei sorgenti dell'albero del kernel per metodi alternativi al modo in cui questo libro configura il kernel.

Per default il kernel Linux genera sequenze di byte errate quando nel modo tastiera UTF-8 vengono usati i dead key. Inoltre non è possibile copiare e incollare caratteri non-ASCII quando è attivo il modo UTF-8. Correggere questi problemi con la patch:

patch -Np1 -i ../linux-2.6.16.27-utf8_input-1.patch

Preparare per la compilazione eseguendo il seguente comando:

make mrproper

Questo assicura che l'albero del kernel sia assolutamente pulito. Il team del kernel raccomanda che questo comando sia dato prima di ogni compilazione del kernel. Non pensare che l'albero dei sorgenti sia pulito dopo la scompattazione.

Configurare il kernel attraverso un'interfaccia a menu. BLFS ha alcune informazioni riguardanti particolari esigenze di configurazione del kernel di pacchetti al di fuori di LFS presso http://www.linuxfromscratch.org/blfs/view/svn/longindex.html#kernel-config-index:

make menuconfig

In alternativa make oldconfig potrebbe essere più appropriato in alcune situazioni. Vedere il file README per maggiori informazioni.

Se lo si desidera saltare la configurazione del kernel copiando il file config del kernel, .config, dal sistema host (supponendo che sia disponibile) alla directory scompattata linux-2.6.16.27. Tuttavia non raccomandiamo questa opzione. È spesso meglio esplorare tutti i menu di configurazione e creare la configurazione del kernel da zero.

Compilare l'immagine del kernel e i moduli:

make

Se si usano i moduli kernel sarà necessario un file /etc/modprobe.conf. Informazioni riguardanti moduli e configurazione del kernel si trovano nel capitolo Sezione 7.4, «Gestione dei dispositivi e dei moduli in un sistema LFS» e nella documentazione del kernel nella directory linux-2.6.16.27/Documentation. Anche modprobe.conf(5) potrebbe essere interessante.

Installare i moduli, se la configurazione del kernel li usa:

make modules_install

Dopo il completamento della compilazione del kernel sono necessari ulteriori passi per completare l'installazione. Alcuni file devono essere copiati nella directory /boot.

Il percorso all'immagine del kernel potrebbe variare in funzione della piattaforma usata. Il seguente comando presuppone un'architettura x86:

cp -v arch/i386/boot/bzImage /boot/lfskernel-2.6.16.27

System.map è un file di simboli per il kernel. Esso mappa i punti di ingresso delle funzioni di ciascuna funzione nelle API del kernel, oltre agli indirizzi delle strutture dati del kernel per il kernel in funzione. Digitare il seguente comando per installare il file map:

cp -v System.map /boot/System.map-2.6.16.27

Il file di configurazione del kernel, .config prodotto nella fase make menuconfig precedente contiene tutte le selezioni di configurazione per il kernel che è stato appena compilato. È una buona idea tenere questo file per un riferimento futuro:

cp -v .config /boot/config-2.6.16.27

Installare la documentazione del kernel Linux:

install -d /usr/share/doc/linux-2.6.16.27 &&
cp -r Documentation/* /usr/share/doc/linux-2.6.16.27

È importante notare che i file nella directory dei sorgenti del kernel non hanno come proprietario root. Qualora un pacchetto sia scompattato come utente root (come quando lo facciamo in chroot), i file hanno ID di utente e gruppo di colui che li ha pacchettizzati sul proprio computer. Questo di solito non è un problema per installare qualunque altro pacchetto, perché l'albero dei sorgenti è rimosso dopo l'installazione. Tuttavia l'albero dei sorgenti di Linux è spesso mantenuto per lungo tempo. A causa di questo c'è la possibilità che l'ID usato dall'utente che ha pacchettizzato i file sia assegnato a qualcuno sulla macchina. Questa persone allora avrebbe accesso in scrittura ai sorgenti del kernel.

Se si terranno i sorgenti del kernel eseguire chown -R 0:0 nella directory linux-2.6.16.27 per assicurarsi che tutti i file appartengano all'utente root.

[Avvertimento]

Avvertimento

Certa documentazione del kernel raccomanda di creare un link simbolico che da /usr/src/linux punti alla directory dei sorgenti del kernel. Questo è specifico per kernel precedenti alla serie 2.6, e non deve essere creato su un sistema LFS, poiché può causare problemi per i pacchetti che si potrebbe voler costruire dopo aver completato il sistema LFS base.

Inoltre gli header nella directory di sistema include devono sempre essere quelli sui quali è stata compilata Glibc, ovvero quelli del pacchetto Linux-Libc-Headers, e quindi non devono mai essere rimpiazzati dagli header del kernel.

8.3.2. Contenuti di Linux

File installati: config-2.6.16.27, lfskernel-2.6.16.27, e System.map-2.6.16.27

Brevi descrizioni

config-2.6.16.27

Contiene tutte le selezioni di configurazione del kernel

lfskernel-2.6.16.27

Il motore del sistema Linux. Quando si avvia il computer il kernel è la prima parte del sistema operativo che viene caricata. Esso rileva e inizializza tutti i componenti hardware del computer, quindi rende disponibili questi componenti come albero di file al software e trasforma una singola CPU in una macchina multitasking capace di eseguire pezzi di programmi apparentemente nello stesso tempo

System.map-2.6.16.27

Un elenco di indirizzi e simboli; esso mappa i punti di ingresso e gli indirizzi di tutte le funzioni e le strutture dati nel kernel