domenica 21 giugno 2009

Compilare il Kernel 2.6.30 su Ubuntu 9.04

Ecco una guida semplice e veloce per installare e personalizzare il nuovo kernel 2.6.30 su Ubuntu 9.04. Ovviamente la guida resta valida anche se si sceglie di installare un'altra versione del kernel.



Per prima cosa installiamo i pacchetti necessari nel processo di compilazione:



sudo apt-get install kernel-package libncurses5-dev fakeroot wget bzip2

Scarichiamo i sorgenti del kernel



wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.tar.bz2

copiamo il file scaricato all'interno della directory /usr/src e decomprimiamo l'archivio:



tar xjvf linux-2.6.30.tar.bz2

otterremo così la nuova directory /usr/src/linux-2.6.30.

Ora è necessario creare un collegamento:



ln -s linux-2.6.30 linux

Spostiamoci nella directory appena creata e copiamo il file di configurazione già esistente



cd linux
cp /boot/config-`uname -r` ./.config

Il prossimo passo è personalizzare la configurazione del kernel; questo passo è facoltativo e sconsigliato a chi sta muovendo i primi passi nel mondo linux!



make menuconfig

Terminata la configurazione, restando all'interno della directory /usr/src/linux, lanciamo la compilazione:




make-kpkg clean


fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers


al posto di "-custom" possiamo aggiungere una qualsiasi stringa che identifichi la versione del kernel che andiamo a creare; è sufficiente che la stringa inizi con "-" e non contenga spazi.


La compilazione creerà due file .deb che vanno installati con i seguenti comandi:


sudo dpkg -i linux-image-2.6.30-custom_2.6.30-custom-10.00.Custom_i386.deb
sudo dpkg -i linux-headers-2.6.30-custom_2.6.30-custom-10.00.Custom_i386.deb


Grub verrà aggiornato automaticamente. Riavviamo e il gioco è fatto!






5 commenti:

Dave Irvine ha detto...

"Ora è necessario creare un collegamento:


ln -s linux-2.6.30 linux

Spostiamoci nella directory appena creata e copiamo il file di configurazione già esistente


cd linux
cp /boot/config-`uname -r` ./.config"

Bel blog!;)
Ciao,scusa,non ho capito cosa si deve fare esattamente in questo passaggio...

Unknown ha detto...

Ciao e grazie!
Cerco di spiegare meglio il passaggio.

Ci troviamo nella directory /usr/src; tramite il comando:

ln -s linux-2.6.30 linux

viene creato il file /usr/src/linux che è semplicemente un link alla directory linux-2.6.30. Questo è necessario perché il sistema riconosce la directory /usr/src/linux come la directory contenente la versione corrente dei sorgenti del kernel.

Successivamente dobbiamo posizionarci all'interno della directory /usr/src/linux (cd linux).

Il comando cp /boot/config-`uname -r` ./.config serve per copiare la configurazione del kernel attualmente in uso (quello con cui abbiamo avviato ubuntu per intenderci) nel nuovo kernel (quello che stiamo andando a compilare).

Se proviamo a digitare il comando

uname -r

vediamo che viene ritornata una stringa con la versione del kernel attualmente in uso. Racchiudere il comando tra quei particolari apici significa che la stringa restituita da comando verrà concatenata alla stringa da noi digitata. Se ad esempio il comando uname -r ritorna la stringa:

2.6.28-ubuntu

allora digitare il comando

cp /boot/config-`uname -r` ./.config

avrà lo stesso identico effetto di digitare il comando

cp /boot/config-2.6.28-ubuntu ./.config

Unknown ha detto...

Ho seguito le operazioni del blog e con make menuconfig ho settato alcuni parametri secondo le indicazioni trovate su http://wiki.ubuntu-it.org/AmministrazioneSistema/CompilazioneKernel?highlight=(kernel) .
Quando ho riavviato il notebook la schermata era incomprensibile. Suggerimenti ?

Unknown ha detto...

Ciao! Verifica di aver incluso nella configurazione del kernel i moduli della tua scheda video (controlla i moduli che hai eventualmente disabilitato).
Se i moduli sono stati correttamente abilitati, controlla la configurazione di Grub.

Una domanda: la schermata è incomprensibile solo nella prima fase di boot oppure anche successivamente?

Unknown ha detto...

Anche prima di loggarsi la schermata è incomprensibile.

I moduli direi che ci sono tutti. Adesso provo con lo stesso .config a ricompilare il kernel attualmente in suo, poio vedrò