sabato 17 ottobre 2009

aggiornamento kernel personalizzato

Per aggiornare il kernel alla nuova versione 2.6.31.4, seguendo il metodo classico adattabile alle principali distribuzioni linux in particolare su archlinux utilizzate questa procedura:

scaricate l'ultima versione stabile del kernel da qui: www.kernel.org oppure servitevi del comando wget.

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

scompattate l'archivio contenente i sorgenti.

tar jxvf linux-2.6.31.4.tar.bz2

se intendete compilare su un eeepc con scheda wifi ralink rt2860 vi consiglio di applicare una patch ai sorgenti del kernel utili ad abilitare la funzione staging per driver alternativi.

Per scaricare la patch del kernel funziona benissimo sulla versione 2.6.31.4, collegatevi qui:
http://patchwork.kernel.org/patch/53768/

scaricate la patch, questa non è necessaria se compilate il kernel su architetture che non dispongono di schede wifi ralink.

wget http://patchwork.kernel.org/patch/53768/raw/


per applicare la patch ed iniziare la compilazione effettiva del nostro kernel, spostiamoci nella cartella decompressa prima.

cd linux-2.6.3.1.4

applichiamo la patch utilizzando questo comando, vi ricordo che ci troviamo all'interno della cartella linux-2.6.31.4.

patch -p1 -i /percorso patch/patch-staging-more-sched.h-fixes.patch-added-to-gregkh-2.6-tree.patch

applicata la nostra patch prepariamo il sistema, scrivete.

make mrproper

make menuconfig

in linea di massima si può partire da un config preesistente ma ho preferito partire da zero.

per non sovrascrivere i moduli del kernel precedenti che si trovano dentro /lib/modules/ date un nome diverso alla cartella contenenti i vari moduli del kernel, nel mio caso ho scelto extra-ARCH.

cliccate su general setup, in append scrivete questo: extra-ARCH
extra-ARCH) Local version - append to kernel release

modificate tutte le varie voci come meglio ritenete, eccovi alcune dritte.

in Processor type and features ->

su Timer frequency
scegliete 1000HZ, utile ad avere un pc scattante.

sempre nella sezione processor type and features, scegliete il processore che equipaggia la vostra macchina sul mio eeepc non essendoci la voce atom ho selezionato questo:
Processor family (Core 2/newer Xeon) --->

in linea di massima si può lasciare tutto il resto come si trova per la scheda ralink rt2860 continuate così.

cliccate su:

device driver - Staging drivers

selezionate l'opzione Ralink 2860 wireless support .


altre utili sezioni da riguardare sono quelle riguardanti la scheda audio ed il supporto alla webcam dell'eeepc che si trovano nella sezione:

device drivers - multimedia support.

per uscire dalla configurazione del kernel salvando le opzioni fino ad ora date basta cliccare sul tasto esc ripetutamente.

finita la configurazione iniziamo la compilazione, scrivete.

make dep bzImage

make modules

installate i vari motuli del kernel dentro la cartella /lib/modules/2.6.31.4extra-ARCH utilizzando il seguente comando:

sudo make modules_install

fate attenzione al risultato finale del comando se tutto fila liscio vi troverete una dicitura simile.

depmod 2.6.31.4extra-ARCH

questo vi servirà per creare l'immagine depmod del kernel da copiare dentro la cartella /boot

per creare l'immagine scrivete:

sudo cp -fr arch/x86/boot/bzImage /boot/vmlinuz26314extra-ARCH


adesso utilizzando il comando mkinitcpio si crea l'initrd del kernel, utilizzate la dicitura del depmod.


sudo mkinitcpio -k 2.6.31.4extra-ARCH -g /boot/kernel26314extra-ARCH.img



benissimo adesso non ci resta che modificare il file menu.lst

sudo nano /boot/grub/menu.lst

eccovi il mio modificato

# (0) Arch Linux
title Arch compilato
root (hd0,0)
kernel /boot/vmlinuz26314extra-ARCH root=/dev/sda1 ro
initrd /boot/kernel26314extra-ARCH.img

le varie vmlinuz26314extra-ARCH ed kernel26314extra-ARCH.image si trovano dentro la cartella di sistema /boot/

premetto che per la suddetta prova ho utilizzato archlinux installato su un eeepc 1000H, questo non significa che non potete usare per le vostre prove una distro differente.