mercoledì 23 maggio 2007

compilazione kernel 2.6.21.1

Semplice guida per compilare l'ultima versione del kernel, la procedura è stata provata sia su schede video nvidia che schede video ati.
Ricordo che la compilazione del kernel è un'operazione delicata da eseguire solo quando strettamente necessario, vi consiglio prima di procedere di salvare i dati più importanti e i file di configurazione del sistema.
Aprite il terminale:
salvate il file fstab, il file xorg.conf e il file menu.lst.
per salvare una copia dei file scrivete; sudo cp -fr /etc/fstab $HOME; sudo cp -fr /etc/X11/xorg.conf $HOME; sudo cp -fr /boot/grub/menu.lst $HOME.

Adesso prepariamo il sistema installando questi pacchetti:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential bin86 fakeroot bzip2
sudo apt-get install libqt3-headers libqt3-mt-dev
sudo apt-get install glade-2 libglade2-dev
sudo apt-get install libncurses5-dev
sudo apt-get install kernel-package

se avete una scheda video nvidia o ati vi consiglio pure di installare il pacchetto envy seguite il mio post precedente su come installarlo.

Finito di installare i pacchetti colleghimoci al sito www.kernel.og e scarichiamo l'ultimo kernel disponibile, copiamo il pacchetto dentro /usr/src:
sudo cp -fr $HOME/Desktop/linux-2.6.21.1.tar.bz2 /usr/src
spostiamoci dentro la cartella src e scompattiamo il tutto:
cd /usr/src
sudo tar jxvf linux-2.6.21.1*
entriamo dentro la nuova cartella, contenente i sorgenti del kernel:
cd linux-2.6.21.1
Iniziamo la compilazione si possono seguire 3 medoti 2 con interfaccia grafica e un metodo con interfaccia testuale io vi consiglio di utilizzare il 3 metodo a voi la scelta vi elenco i 3 metodi:

sudo make xconfig (metodo grafico)
sudo make gconfig (metodo semigrafico)
sudo make menuconfig (metodo testuale da me scelto)

scegliamo come nel mio caso il terzo, scriviamo da dentro la cartella linux-2.6.21.1 il comando:

sudo make menuconfig
si apre un menù testuale per la configurazione del kernel aprite le varie voci e decidete quale fare caricare o rimuovere del sistema se non sapete come intervenire lasciate tutto di default, quello che vi consiglio di disabilitare e che viene consigliato da fare pure in altre guide.
Entrare dentro la voce del kernel che parla di processori è disabilitare LA FUNZIONE PARAVIRTUALIZATION , altre voci che si possono togliere sono quelle che riguardano la sezione grafica disabilitate le varie schede video sis. trio, nvidia. ati ecc. lasciate abilitata la voce vesa.

se state compilando su un computer desktop potete disabilitare le vari voci che si riferiscono a computer portatili .

Finito di configurare le varie voci salvate il tutto e uscite si formerà un file .config all'interno della cartella con tutte le modifiche da voi effettuate.
Scrivete sempre da dentro la cartella linux-2.6.21.1:
sudo make-kpkg clean per effettuare una pulizia del codice superfluo, date il comando per iniziare la compilazione vera e propria:

sudo fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
la compilazione durerà parecchio tempo sul mio computer ci ha messo un ora, finito il lavoro vi troverete con due pacchetti .deb installateli danto il comando:
sudo dpkg -i *.deb
in questo modo si installerà il nuovo kernel e si configurerà grub in automatico prima di riavviare vi consiglio di aprire il file menu.lst e aggingere questa piccola modifica.
scrivete sudo gedit /boot/grub/menu.lst

## ## End Default Options ##

title Ubuntu, kernel 2.6.21.1-custom
root (hd0,0)
kernel /boot/vmlinuz-2.6.21.1-custom root=UUID=e058d1a2-2d04-45f5-bb17-eb63bf87cc0d ro quiet splash noapic
initrd /boot/initrd.img-2.6.21.1-custom
quiet
savedefault

title Ubuntu, kernel 2.6.21.1-custom (recovery mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.21.1-custom root=UUID=e058d1a2-2d04-45f5-bb17-eb63bf87cc0d ro single noapic
initrd /boot/initrd.img-2.6.21.1-custom

title Ubuntu, kernel 2.6.20-15-386
root (hd0,0)
kernel /boot/vmlinuz-2.6.20-15-386 root=UUID=e058d1a2-2d04-45f5-bb17-eb63bf87cc0d ro quiet splash
initrd /boot/initrd.img-2.6.20-15-386
quiet
savedefault

title Ubuntu, kernel 2.6.20-15-386 (recovery mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.20-15-386 root=UUID=e058d1a2-2d04-45f5-bb17-eb63bf87cc0d ro single
initrd /boot/initrd.img-2.6.20-15-386

title Ubuntu, kernel 2.6.20-15-generic
root (hd0,0)
kernel /boot/vmlinuz-2.6.20-15-generic root=UUID=e058d1a2-2d04-45f5-bb17-eb63bf87cc0d ro quiet splash
initrd /boot/initrd.img-2.6.20-15-generic
quiet
savedefault

title Ubuntu, kernel 2.6.20-15-generic (recovery mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.20-15-generic root=UUID=e058d1a2-2d04-45f5-bb17-eb63bf87cc0d ro single
initrd /boot/initrd.img-2.6.20-15-generic

title Ubuntu, memtest86+
root (hd0,0)
kernel /boot/memtest86+.bin
quiet

nel file di testo che si apre aggiungete nelle voci che trattano del kernel 2.6.21.1 la parola noapic
questo serve nei casi il kernel dia dei messaggi di errore all'avvio.

salvate il file uscite e riavviate il computer.

Al riavvio della macchina premete da tastiera il tasto esc ed entrate dentro kernel recovery sarete così in modalità testo.
Dobbiamo caricare i driver della scheda video, lanciamo il programma envy in modalità testuale:

scriviamo envy -t
prima disinstalliamo i precedenti driver grafici e poi installate i nuovi driver dovrebbe funzionare tutto con schede video ati, se avete una scheda nvidia se ottenete degli errori dovete compilare sempre da interfaccia grafica il mododulo dell kernel nvidia.

Nei casi i driver nvidia non si caricano seguite questa procedura sempre in modalita testuale recovery entrate dentro la cartella /usr/src/modules
cd /usr/src/modules/nvidia-kernel/nv
digitate da dentro la cartella nv i seguenti comandi:
sudo make module
sudo make install
sudo depmode -a
sudo modprobe nvidia
adesso lanciate di nuovo envy con envy -t
ed eseguite la procedura di prima ,disinstallate i driver e poi installateli, dovrebbe funzionare, nel mio caso con una scheda integrata nvidia 6150 ha funzionato .
vi ricordo di compilare il kernel in macchiene non di produzione e mi raccomando di salvare i dati prima di iniziare.

Se riscontrate dei problemi con il nuovo kernel potete caricare all'avvio il kernel precedente basta che all'avvio premiate il tasto esc, con i tasti freccia scorriate fino al kernel precedene e premiate invio.
buona compilazione a tutti.

3 commenti:

Nicola ha detto...

c'è un errore --->
salvate il file fstab, il file xorg.conf e il file menu.lst.
per salvare una copia dei file scrivete; sudo cp -fr /etc/ftsab $HOME; sudo cp -fr /etc/X11/xorg.conf $HOME; sudo cp -fr /boot/grub/menu.lst $HOME.

c'è ftsab al posto di fstab

santo vasta ha detto...

grazie della tua correzione ai ragione il file da salvare è fstab errori di battitura.

Fabio ha detto...

C' è un errore, si scrive "hai ragione"!