domenica 23 settembre 2007

kernel 2.6.22.7

Uscita una nuova versione del kernel, la 2.6.22.7 queste le principali modifiche apportate:

[PATCH] x86_64: Zero extend all registers after ptrace in 32bit entry path.

Strictly it's only needed for eax.

It actually does a little more than strictly needed -- the other registers
are already zero extended.

Also remove the now unnecessary and non functional compat task check
in ptrace.
Vi ricordo che l'aggiornamento del kernel comporta dei rischi quindi vi consiglio di effetturarlo solo in casi estremi.

Se volete provare ad effettuare l'aggiornamento del kernel aprite un terminale, scaricate i sorgenti dal sito www.kernel.org.

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

spostate l'archivio tar.bz2 dentro /usr/src

sudo mv linux-2.6.22.7.tar.bz2 /usr/src

scompattate il pacchetto.

cd /usr/src
sudo tar jxvf linux-2.6.22.7.tar.bz2

adesso prepariamo il sistema installando i programmi e le librerie necessarie alla compilazione, scrivete da terminale:

sudo apt-get install build-essential bin86 kernel-package libncurses5 libncurses5-dev fakeroot

spostiamoci dentro la cartella linux-2.6.22.7
cd linux-2.6.22.7
per compilare possiamo scegliere due strade ho utilizzare il file .config del vecchio kernel oppure compilare da zero il nostro kernel.
se vogliamo compilare utilizzando la configurazione del vecchio kernel, copiate il file .config dentro la cartella linux.2.6.22.7 scrivete da terminale:

sudo cp -fr /boot/config-2.6.20-16-generic /usr/src/linux-2.6.22.7/.config
adesso da dentro la cartella linux-2.6.22.7 diamo il seguente comando.

sudo make oldconfig

rispondiamo alle varie opzioni che ci vengono presentate secondo le nostre esigenze.
Finita la configurazione diamo i comandi neccessari alla compilazione, alla fine troveremo due pacchetti deb dentro /usr/src.

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

usciamo dalla cartella linux-2.6.22.7 e da dentro /usr/src installiamo i pacchetti deb.
cd ..
sudo dpkg -i *.deb

Per configurare un kernel da zero, scriviamo sempe da dentro la cartella linux-2.6.22.7

sudo make xconfig

scegliamo le voci che vogliamo abilitare o disabilitare, vi consiglio di non caricare la voce paravirtualizzazione.

per una configurazione standard seguite questo schema, preso dal sito www.ubuntu-it.org

Configurazione standard

Seguire quanto descritto per evitare spiacevoli inconvenienti in fase di compilazione:

  1. In «General Setup» attivare:

    • -Support for paging of anonymous memory (swap)

      • --Support for prefetching swapped memory

  2. In «Processor type and features»:

    • In «Processor family» scegliere il modello del processore.

    • Attivare Preemption Model-> Voluntary Kernel Preemption (Desktop)

    • In «High Memory Support» scegliere:

      • off se si possiede meno di 1 GB di RAM

      • 1GB Low Memory Support se si possiede 1GB di RAM

      • 4GB se si possiede più di 1GB di RAM

    • In «Timer frequency» abilitare: 1000 Hz

  3. In «Graphics Support»

    • Disabilitare NVIDIA RIVA se si usano driver Nvidia proprietari.

  4. In «Block layer -> IO Schedulers» lasciare solo «CFQ I/O scheduler», otterrete una migliore performance.

  5. In «Kernel hacking» deselezionare «Kernel debugging».

su google trovate molte guide che fanno al caso vostro per una configurazione minuziosa.
finita la configurazione salvate il file e date il comandi per la compilazione.


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

usciamo dalla cartella linux-2.6.22.7 sposiamoci dento /usr/src e diamo il comandi necessari ad installare i pacchetti deb.

cd ..
sudo dpkg -i *.deb
la compilazione di un nuovo kernel necessita della reinstallazione dei driver video, se sulla vostra macchina avete schede video ati o nvidia , utilizzate il tool envy per installarli.

Per l'installazione del pacchetto envy da terminale scrivete:

wget http://albertomilone.com/ubuntu/nvidia/scripts/envy_0.9.7-0ubuntu11_all.deb

installate il programma con dpkg.
sudo dpkg -i envy_0.9.7-*
lanciate il tool scrivendo envy -g
prima di installare i driver disinstallate i vecchi, proseguite con l'installazione dei nuovi driver.

Se avete una scheda madre recente vi consiglio di aprire il file menu.lst ed applicare la voce noapic.

scrivete da terminale:
sudo gedit /boot/grub/menu.lst (applicate la voce noapic)
## ## End Default Options ##

title Linux Mint, kernel 2.6.22.7-custom
root (hd1,0)
kernel /boot/vmlinuz-2.6.22.7-custom root=UUID=64049076-49b2-4b47-bfc4-eb5ebe94e3d2 ro quiet splash noapic
initrd /boot/initrd.img-2.6.22.7-custom
quiet
savedefault

title Linux Mint, kernel 2.6.22.7-custom (recovery mode)
root (hd1,0)
kernel /boot/vmlinuz-2.6.22.7-custom root=UUID=64049076-49b2-4b47-bfc4-eb5ebe94e3d2 ro single noapic
initrd /boot/initrd.img-2.6.22.7-custom


salvate il file.

Benissimo se tutto è andato per il verso giusto non ci resta che riavviare il computer e gustarci il nostro nuovo fiammante kernel.

Se trovate difficoltosa la compilazione e configurazione del kernel potete servirvi dell'ottimo programma kerneler http://www.kerneler.org/ che con dei semplici clic del mouse vi porta alla configurazione del vostro kernel, nei miei post precedenti trovate la recensione e guida sull'uso del programma.


2 commenti:

Mor ha detto...

sudo cp -fr /boot/config-2.6.20-16-generic /usr/src/linux-2.6.22.7

non mi pare che sia appropriato. Meglio un:

sudo cp -f /boot/config-2.6.20-16-generic /usr/src/linux-2.6.22.7/.config

santo vasta ha detto...

funziona lo stesso anche con il primo comando quello dato da me l'ho provato non mi ha dato errore.