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