Ricompilare il kernel IIIII

di Luca Bove (PuntoWeb.Net Srl)

Le fasi conclusive del processo di ricompilazione del kernel.

Il nuovo Kernel e LiLo

Dovresti avere il nuovo Kernel chiamato "bzImage" ed il file "System.map" oltre ad alcuni moduli nella tua directory /lib/modules/2.x.x. Ora abbiamo bisogno di qualcosa che li leghi insieme: LiLo.

LiLo è l'abbreviazione di LInux LOader ed è il prompt che ti si presenta quando vuoi caricare Linux. (Vedi anche l'articolo Il Dual Boot). Più in basso c'è un esempio del file /etc/lilo.conf.
Discuteremo in seguito del significato delle varie righe. Sappi che il tuo file /etc/lilo.conf NON ha i vari numeri sulla colonna di sinistra (es: [1], [2], ecc.) ma che sono usati in questo esempio come punti di riferimento.
Per modificare lilo.conf sarà opportuno prendere confidenza con "vi". In nostro caro editor non è il massimo ma piace!!! A coloro che provengono dal mondo DOS consiglio "mc" (midnight-commander) un perfetto clone del famoso Norton Commander con il quale NON avranno difficoltà ad effettuare le modifiche (F4 per editare - F2 per salvare). Tornando al nostro caro vi cerco in due righe di dirvi cosa fare:
digitate

% vi /etc/lilo.conf

ed avrete il file che segue.
Ora potete muovervi con i tasti freccia o con i tasti "j k l i" Per aggiungere del testo bisogna andare in "modalità inserimento" premendo "i".
Per tornare in "modalità comando" premere il tasto "Esc" In "modalità comando" potete dirgli di: salvare :w - salvare ed uscire :wq - uscire senza salvare :q! Potete comunque utilizzare qualunque altro editor.

# LILO file di configurazione
#
# Inizio parametri globali di LILO
[1] boot = /dev/hdc5
#compact
# velocizza, ma NON funziona su tutte le macchine
[2] prompt
# Normal VGA console (80x25)
vga = normal
# Fine parametri globali di LILO
# Linux inizio dei parametri di boot
[3] image = /vmlinuz
[4] root = /dev/hdc5
[5] label = linux
[6] read-only
# Linux fine dei parametri di boot



Ed ora le spiegazioni:

[1] Questa è la partizione di boot nella quale Linux risiede. Il nostro sistema effettua il boot da /dev/hdc5, ma tu potresti averlo in /dev/hda5 o in un'altra partizione. Questo punto è importante per un corretto partizionamento.

[2] Il prompt è importante se vuoi selezionare in fare di boot quale Kernel far partire.

[3] Questa è la tua immagine di boot (Kernel). Qui noi abbiamo /vmlinuz, ma potresti avere /boot/vmlinuz, /boot/vmlinux o qualcosa di simile.
Ricordati la locazione, sarà importante quando vorrai farne uno tuo.

[4] Qui indichiamo la partizione di root. Assicurati che sia corretto.

[5] Questa è solo un'etichetta, Linux di default o qualcosa del genere. Quando abbiamo la possibilità di scegliere il kernel da caricare all’avvio, è buona norma differenziare le due etichette (Linux-new e Linux-old) allo scopo di conoscere più semplicemente la differenza tra di loro.

[6] Lascialo sempre a sola lettura. Su questo abbi fiducia.

A questo punto dovremmo inserire la voce del nuovo Kernel. Ecco come sarà il nostro /etc/lilo.conf dopo la riconfigurazione:

# LILO file di configurazione
#
# Inizio parametri globali di LILO
boot = /dev/hdc5
prompt
vga = normal
# Fine parametri globali di LILO
# questo è il kernel originale ed i relativi parametri
image = /vmlinuz
root = /dev/hdc5
label = oldlinux
read-only
# Ed ecco il nuovo Kernel (ed i suoi parametri)
image = /bzImage
root = /dev/hdc5
label = newlinux
read-only


Assicurati di avere inserito il percorso corretto del nuovo Kernel e dopo aver copiato il System.map (avendo cura di salvare in vecchio) salva ed esci.

Dopo aver fatto tutto, esegui LILO che analizzerà le modifiche digitando "/sbin/lilo" al prompt. Se ci sono errori (come nomi sbagliati od altre sciocchezze) ti segnalerà il problema. Se invece tutto funzionerà a dovere quando eseguirai /sbin/lilo otterrai:

added *oldlinux
added newlinux


e tornerà al prompt. Adesso è il momento di fare il reboot e controllare eventuali errori, vedere se esegue regolarmente il boot e se è stabile. Se ritieni che sia stabile allora puoi rimuovere la chiamata al vecchio Kernel presente in /etc/lilo.conf e continuare ad utilizzare il nuovo Kernel sempre.
Se ottente qualche messaggio di errore durante il boot, probabilmente significa che avete dimenticato di selezionare un modulo da compilare nel kernel. Se il caso e' questo dovete ricercare la mancanza (o l'errore) e ripetere i passi della guida.
Hai compilato il tuo primo kernel. Congratulazioni per aver superato questo passaggio di rito.

Per chiudere (finalmente ;-) )l'argomento volevo segnalare alcuni links in italiano sull'argomento:

"La ricompilazione del Kernel Linux per i principianti" http://www.ziobudda.net/Recensioni/Kernel.php da cui è tratto buona parte dell'articolo


"Da Windows a Linux Guida a Linux per utenti Windows insoddisfatti"
http://www.attivissimo.net/w2l1/

"Kernel-HOWTO, The Linux Kernel HOWTO
Una guida dettagliata alla configurazione, compilazione e aggiornamento del kernel ed un'aiuto alla risoluzione dei problemi per i sistemi basati su ix86."
http://www.thomashertweck.de/kernel26i.html

"KernelAnalysis-HOWTO
Questo HOWTO cerca di descrivere come le componenti del Kernel di Linux funzionano, quali sono le funzioni principali e le strutture dati utilizzate e come ''gira il tutto''."
http://www.pluto.linux.it/ildp/HOWTO/KernelAnalysis-HOWTO.html

(Torna ad inizio articolo: Ricompilare il kernel I)


Per commentare e discutere l'articolo clicca qui

AUTORE DEL TESTO
Luca Bove (PuntoWeb.Net Srl)

Pubblicato il: 17/10/2001