Di seguito sono elencati con una breve spiegazione i passi necessari per la ricompilazione di un kernel serie 2.6.x precedentemente installato , nello specifico, la distro di riferimento è  Slackware.

NB: Indifferentemente dalla distro, i comandi utili risultano essere sempre gli stessi, come da esempio seguente.

In seguito alla compilazione di un nuovo kernel, spesso è necessario provare e riprovare ad effettuare cambiamenti sul kernel in uso. Questo procedimento si chiama ricompilazione e risulta semplice, come lo è la compilazione, se si tengono a mente delle piccole attenzioni. Vediamo in dettaglio.

NB: Se ci fossero dubbi durante la ricompilazione si consiglia la lettura precedente del post “compilazione nuovo kernel 2.6.x”. In questo post infatti sono presenti commenti che possono chiarire le idee riguardo ad alcuni punti.

Ci spostiamo nella directory che ospita il kernel 2.6.x precedentemente compilato che regolarmente dovrebbe avere già il link simbolico alla directory /usr/src/linux:

~$ su
Password:
~# ls -al /usr/src/linux
lrwxrwxrwx 1 root root 14 2008-09-04 03:38 /usr/src/linux -> linux-2.6.30/

NB: Così facendo saremo certi che il link simbolico sia correttamente settato al kernel in uso da ricompilare.

Accertato che il link e la directory sono corrette. Procediamo con i comandi utili alla ricompilazione e modifica del kernel in uso:

~# cd /usr/src/linux
~# make mrproper

Procediamo con la modifica della voci:

~# make menuconfig

NB: così come per la compilazione, si può scegliere xconfig e/o gconfig.

Terminati i cambiamenti apportati alle voci kernel da abilitare, disabilitare etc… procediamo con la ricompilazione dell anuova immagine kernel:

~# make -j5 bzImage

Poi sarà la volta dei moduli:

~# make -j5 modules

NB: Prima di reinstallare i moduli è buona norma salvare quelli precedenti in un file archivio. Così da evitare di perderli in casi particolari di errore. I moduli sono installati nella directory /lib/modules/versione-kernel. Procederemo quindi a zipparli e poi continueremo con l’installazione di quelli nuovi come da esempio:

~# tar cf /lib/modules/2.6.versione.tar /lib/modules/2.6.nome-directory-moduli-in-uso

NB: Questo comando creerà un archivio nella dir /lib/modules/ che si chiamerà 2.6.versione.tar contenente i nostri moduli attuali prima della ricompilazione.

Procediamo quindi con l’installazione dei moduli  attuali:

~# make modules_install

Avremo quindi l’immagine kernel e i relativi file .config e System.map da salvare in /boot/ .

NB: Essendo queste modifiche ad un kernel precedentemente compilato è buona norma salvare i seguenti file e spostarli nella directory /boot/ sotto un nome riconoscibile come attuale.

~# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.6.x-new
~# cp /usr/src/linux/.config /boot/config_vmlinuz-2.6.x-new
~# cp /usr/src/linux/System.map /boot/System.map-2.6.x-new

Non resta che modificare il boot loader “LILO e/o GRUB” aggiungendo il nuovo kernel a quelli già presenti:

~# vi /etc/lilo.conf

#  Start Config Image kernel 2.6.x ricompilata
  image = /boot/vmlinuz-2.6.x-new                                          => nome e percorso dell'immagine ricompilata
  root = "/dev/hdaX"                                                       => device corrispondente alla partizione radice /
  label = "Kernel2.6.x-new"                                                => nome che apparirà al boot lilo
  vga = 791                                                                => modalità di framebuffer della console scelto
  read-only
#  End Config Image kernel 2.6.x ricompilata

Aggiunto il nuovo kernel salviamo e restartiamo lilo in modalità verbose così da controllare eventuali errori:

~# lilo -v

Non resta che riavviare e godere delle modifiche fatte al nostro kernel ricompilato.

# End