Giovedì scorso ho compilato per la prima volta un kernel rendendolo pronto all'avvio ed utilizzandolo con la mia versione di linux installata sul pc. Così come primo effetto mi è sembrato di essere un supereroe ma ora mi rendo conto di non aver fatto nulla di chè. Almeno non ancora.
Volevo quindi riportare i passi che ho compiuto per poter utilizzare l'attuale ultima versione stabile del kernel linux: la 2.6.30.
Dopo aver scaricato i sorgenti dal sito ftp://ftp.kernel.org/pub/linux/kernel/v2.6/ nel formato tar.gz (l'ho preferito al tar.bz2 in quanto sta un po' meno tempo a decomprimersi) li ho decompressi con il comando
tar xzvf linux-2.6.30.tar.gz
sono entrato nella cartella linux-2.6.30/ ed ho eseguito il comando
make mrproper
il cui scopo è quello di predisporre la compilazione del kernel alla generazione di un nuovo file .config e poi ho copiato all'interno della directory il file .config del kernel attuale della mia installazione
cp /usr/src/linux-headers-2.6.28-14-generic/.config /home/paolo/Desktop/linux-2.6.30
ho eseguito in sequenza i comandi
make oldconfig
make
su
make modules_install
in questo caso tramite il primo comando della sequenza mi è stato chiesto tramite specifiche domande, come gestire le varie opzioni che il nuovo kernel offre rispetto a quelle già impostate con il precedente kernel. Per ciascuna di esse mi è stato chiesta se attivarla o meno ed eventualmente se la volevo includere come modulo da caricare al momento opportuno. E' interessante questa parte ed è, presumo, la parte più delicata dell'intera operazione. Nel mio caso, che è un riutilizzo del vecchio file di configurazione con delle aggiunte, il tutto è pressoche inutile ma nella necessità di ricompilare un kernel da zero in questa fase sono richieste non poche conoscenze riguardo hardware driver e funzionalità da includere nel kernel.
Il secondo comando non fa altro che compilare il sorgenti ottenendo gli eseguibili in base alle impostazioni del file di configurazione.
Col terzo sono diventato root ed ho eseguito l'installazione dei moduli del kernel attraverso il quarto comando.
La compilazione del kernel finisce qui; ora rimane da impostare grub per l'avvio al boot del nuovo kernel.
I comandi appena descritti gestiscono in automatico la generazione del file immagine del kernel, della creazione della System Map e del file di configurazione. Rimane solamente da spostare i file in /boot e da creare l'immagine initrd (initialize RAM disk) e settare il tutto nel file menu.lst.
Sempre dall'interno della cartella che contiene i sorgenti del kernel ho eseguito i seguenti comandi:
cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.30
cp .config /boot/config-2.6.30
cp System.map /boot/System.map-2.6.30
Con i precedenti comandi ho spostato i file generati con la nuova compilazione del kernel all'interno della cartella /boot assieme a quelli già presenti con la mia installazione di ubuntu ed opportunamente rinominati in modo da rendere chiaro di che file sono.
Per creare l'immagine initrd ho eseguito come root il seguente comando, sempre all'interno della stessa directory:
mkinitramfs -o /boot/initrd.img-2.6.30
in automatico viene generata l'immagine nel percorso indicato.
All'interno del file /boot/grub/menu.lst , che contiene la lista dei kernel disponibili con relativi percorsi ai file per l'avvio del sistema, ho aggiunto le seguenti righe nella sezione dedicata alla scelta dei kernel:
title Ubuntu 9.04, kernel 2.6.30
uuid *****
kernel /boot/vmlinuz-2.6.30 root=UUID=***** ro quiet splash
initrd /boot/initrd.img-2.6.30
quiet
Al posto degli asterischi va inserito l'UUID relativo al vostro hard disk di boot generato dal sistema durante l'installazione.
Che dire, dopo preventivo backup, riavviate, selezionate il nuovo sistema e...
A me tutto ha funzionato alla perfezione ed un bel
uname -r
Mi ritorna la versione 2.6.30 del kernel attualmente in uso.




commenti
1
scritto da roberto - il giorno Giovedì 20 agosto 2009 alle ore 15:06
2
scritto da paolo - il giorno Venerdì 21 agosto 2009 alle ore 17:44
3
scritto da diablo666 - il giorno Venerdì 28 agosto 2009 alle ore 17:07
4
scritto da paolo - il giorno Sabato 29 agosto 2009 alle ore 17:25