

Scoperto proprio ora sfrucugliando con la mia Gentoo, è possibile ottimizzare le flags del compilatore anche per il kernel. Funziona su qualsiasi distribuzione. Rivediamo anche, velocemente, come compilare il kernel di linux.
Il *trucco* sta tutto nell’esportare la variabile CFLAGS_KERNEL (1), nel mio caso prendo quella del mio make.conf:
# export CFLAGS_KERNEL="-O3 -march=athlon64 -pipe -fomit-frame-pointer"
prima di compilare. Scarichiamo i sorgenti dell’ultimo kernel Vanilla e scompattiamoli:
# cd /usr/src
# wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.tar.bz2
# tar xf linux-2.6.26.tar.bz2
creiamo il link simbolico linux nella cartella dei sorgenti
entriamo nella cartella del kernel:
# cd /usr/src/linux
!! se non è la prima volta che compiliamo lo stesso sorgente:
# make mrproper
per ripulire dalla *rumenta* della compilazione precedente. Ora configuriamo il nostro kernel:
# make menuconfig
compiliamo:
# make -j 3
il parametro -j serve per comunicare al compilatore quanti processi in parallelo deve eseguire: l’impostazione migliore è numero di core del processore + 1 (Io con un solo core utilizzo comunque -j 3 da molto tempo senza problemi)
TIP: Possiamo inserire i sorgenti (scompattati!!) di eventuali moduli esterni al kernel copiando la cartella contenente il sorgente in /usr/src/modules
Proseguiamo installando i moduli:
# make modules_install
!! cancelliamo i vecchi moduli prima di installarli se il kernel ha lo stesso nome (stessa versione)
# rm -rf /lib/modules/`uname -r`
Ora abbiamo due opzioni: se abbiamo compilato il kernel in maniera monolitica possiamo copiare l’immagine in /boot:
# cp ./arch/x86/boot/bzImage /boot/bzImage
diversamente se abbiamo compilato l’initrd:
# make install
Modifichiamo la configurazione del bootloader se necessario e riavviamo il calcolatore con il nuovo kernel.
(1) Per una lista delle CFLAGS vedere qui: http://gentoo-wiki.com/CFLAGS
Se vuoi inserire un commento, per favore completa il form sottostante.
Il contenuto di questo sito web è pubblicato sotto una Licenza Creative Commons.