OldWildWeb Logo

Compilazione del kernel debian 7 guida

Compilazione del Kernel Debian 7


Ricompilare il Kernel Debian 7 Wheezy

In questo articolo parleremo di come ricompilare il kernel di Debian 7 Wheezy, il kernel utilizzato durante i nostri test è la versione: 3.4.43 (NB: con kernel più recenti questa guida potrebbe non funzionare).

Conviene ricompilare il kernel di Debain 7?

Ricompilare il kernel linux porta alcuni benefici se l'operazione viene effettuata correttamente, il kernel personalizzato può essere configurato per ottimizzare il vostro hardware includendo nuovi driver o driver più recenti, potrete anche ottimizzare il kernel per l'architettura del vostro processore, abilitare il supporto per alcuni file system, driver di default disabilitati e ogni funzionalità più adatta alle vostre esigenze..

La filosofia di Debian è quella di mantenere pacchetti molto testati piuttosto che pacchetti troppo recenti, installare un nuovo kernel in Debian potrebbe offrire alcuni vantaggi sulle prestazioni, riguardo alcuni bug e ma soprattutto per risolvere problemi di compatibilità con nuovi hardware.

Come prina cosa installiamo i seguenti pacchetti necessari alla compilazione del kernel con i seguenti comandi da root:

su
(digitare password di root)

apt-get install g++ gcc make

apt-get install libncurses5-dev

Scarichiamo quindi la versione del kernel 3.4.43 dal sito web ufficiale: http://www.kernel.org/.

Copiamo la versione del kernel compressa dentro: /usr/src/

A questo punto basta decompattare l'archivio con il comando da console all'interno di /usr/src

cd /usr/src

wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.4.43.tar.xz

unxz linux-3.4.43.tar.xz

tar xvf linux-3.4.43.tar

Fatto questo creiamo il link simbolico linux verso la cartella dei sorgenti kernel decomrpessi con il comando:
ln -s linux-3.4.43 linux

usare quindi i seguenti comandi:

cd linux

make menuconfig
... Nella configurazione menuconfig è importante scegliere la cpu del vostro computer tra la lista CPU del menu config in modo da ottimizzare le prestazioni del kernel per la cpu del vostro computer, per tutta la famiglia AMD64 è possibile ad esempio selezionare la voce OPTERON/Athlon64 valida anche per i processori Turion 64 e tutti quelli basati su architettura AMD, analogo è il discorso per le altre tipo di CPU, nel caso di processori intel serie i e xeon selezionare la voce XEON in caso di dubbi c'è l'opzione generale Generic x86_64.

Per quanto riguarda le altre opzioni la scelta di default è valida, ovviamente potrete aggiungere od eliminare ciò che preferite.

Finita la configurazione procedete con i seguenti comandi:

make -j8 bzImage (il parametro j8 serve per velocizzare la compilazione sfruttando 8 thread)

make -j8 modules; make modules_install

Ok il lavoro è quasi terminato, bisogna ora entrare nella cartella: /usr/src/linux/arch/x86_64/boot

(nel caso di architettura a 32 bit: /usr/src/linux/arch/x86/boot )

l'immagine del kernel bzImage in /boot/ con il comando cp:

cp bzImage /boot/vmlinuz-3.4.43 (è consigliato rinominare questo file con la versione di kernel del tipo: vmlinuz-3.4.43.

Fatto ciò bisogna generare un file immagine initrd con il seguente comando:

mkinitramfs -k 3.4.43 -o /boot/initrd.img-3.4.43

L'ultimo passo da eseguire è quello di aggiungere una voce al boot loader grub in modo da poter avere Debian avviabile con più kernel.

Il modo più semplice per editare grub e aggiungere l'opzione di boot con il kernel nuovo, è quello di aprire la configurazione generata in automatico con un editor di testo (file: /boot/grub/grub.conf) ad aggiungere una voce al menu come nel formato qui sotto, copiando una voce già esistente in modo da avere i percorsi di root corretti:

menuentry 'Debian GNU/Linux, con Linux 3.4.43' --class debian --class gnu-linux --class gnu --class os {
load_video
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 71673d66-be32-4df5-a468-32166352131a
echo 'Caricamento Linux 3.4.43...'
linux /boot/vmlinuz-3.4.43 root=UUID=71673d66-be32-4df5-a468-32166352131a ro quiet
echo 'Caricamento ramdisk iniziale...'
initrd /boot/initrd.img-3.4.43
}

Il lavoro consiste quindi nello scopiazzare un opzione di boot, dopo di che modificare il numero della versione linux con quella del kernel appena compilato esempio dal'originale 3.2.0-4-amd64 a 3.4.43.

Fattò ciò conviene sempre creare una copia di sicurezza del file di configurazione di grub, spesso dopo l'intallazione di alcuni pacchetti l'OS potrebbe rigenerare automaticamenti il file grub.cfg rimuovendo le opzioni di boot per i kernel personalizzati, eseguire il comando:

cp /boot/grub/grub.cfg /boot/grub/grub.cfg.backup

In caso il nostro file di configurazione venisse sovrascritto potremmo ripristinarlo semplicemente cosi:

cp /boot/grub/grub.cfg.backup /boot/grub/grub.cfg