Ed ora testiamo il nuovo kernel

di John M.Fisk, traduzione di Paolo Enrico

Ora che avete finito di compilare il vostro nuovo kernel, e' tempo di testarlo per controllare che funzioni correttamente. Copiarlo semplicemente sopra il caro vecchio fedele kernel puo' essere... diciamo un po' azzardato, a meno che non sappiate esattamente cosa state facendo o che non siate davvero a caccia di emozioni forti. Se fate parte delle due categorie di cui sopra, la vostra lettura di questo articolo finisce probabilmente qui.

Per tutti gli altri: andiamo avanti e vediamo che si puo' fare.

Esistono due modi abbastanza semplici di testare un nuovo kernel:

Esistono, beninteso, differenti e piu' sofisticati modi per testare il vostro nuovo kernel, ma e' sempre meglio non invadere il pericoloso reame dei guru; cerchiamo piuttosto di utilizzare cose semplici e che funzionino. Questi due metodi vi permetteranno di provare il funzionamento del vostro nuovo kernel senza incorrere in troppi problemi o guai.

Per creare un boot disk dovete semplicemente copiare il file zImage che trovate nella directory /usr/src/linux/arch/i386/boot/ in un floppy:

        cp zImage /dev/fd0
cosi' facendo installerete il file zImage sul disco presente nel vostro primo drive. Occhio, pero', che anche fare questo puo' essere pericolosetto perche' in questo modo cancellerete qualsiasi filesystem presente nel disco. Utilizzate quindi un disco che non contenga nulla di importante; utilizzare come boot disk il disco che contiene l'unica (!) copia della vostra tesi di laurea non e', decisamente, un'ottima idea.

Adesso per provare il tutto basta fare un reboot col classico shutdown -r now e sedersi comodi a vedere che succede. Ricordatevi di fare sempre attenzione ai messaggi di errore che possono venir fuori durante la fase di boot!

Per giocherellare tranquillamente col kernel, e' importante conoscere le funzioni dell'utility -- rdev, che permette di settare alcune opzioni per il kernel al boot time. Tra queste: quale partizione settare come root e come swap, le flags della partizione root (read/write o read only), il videomode al boot, la dimensione del ramdisk ed il byte offset da usare. Molto probabilmente non avrete alcuna necessita' di "aggiustare il tiro" del vostro kernel perche' puntera' sulle partizioni corrette. Nel caso che cosi' non sia, allora potete usare (per esempio):

        rdev /dev/fd0 /dev/hda6
se la vostra partizione root e' la partizione /dev/hda6. Oppure potreste dare il comando:
        rdev -R /dev/fd0 1
che setta la partizione root read-only al momento del boot in modo che il filesystem possa essere controllato prima di essere montato. Se non doveste ricordare l'esatta sintassi da utilizzare rdev -h vi mostrera' una piccola schermata di aiuto in modo da rinfrescarvi la memoria.

Una volta che siete sicuri che il vostro nuovo kernel funziona correttamente -- riconosce il vostro nuovo CDROM, il PPP funziona -- potete andare avanti facendo una copia di backup del vostro vecchio kernel in un posto sicuro e poi copiando il nuovo zImage nella vostra root directory. Non dimenticate di rilanciare il LILO con (per esempio) -- /sbin/lilo al prompt. Se non lo fate (e state utilizzando LILO come boot manager) molto probabilmente non riuscirete a "bootare" il vostro nuovo kernel, neanche se, in effetti, funziona correttamente.

L'altro metodo consiste nell'aggiungere una "stanza" al vostro al vostro file lilo.conf che vi permettera' di scegliere al momento del boot tra: il vostro vecchio kernel (generalmente /vmlinuz nella root directory) o il nuovo kernel che avete appena compilato.

Per fare cio' dovrete modificare il vostro file /etc/lilo.conf. Una volta modificato, il file lilo.conf dovrebbe essere piu' o meno cosi' (i commenti importanti sono stati tradotti):

# LILO configuration file
#
# Start LILO global section
append="sbpcd=0x230,SoundBlaster"       # this is for my SoundBlaster CDROM
boot = /dev/hda6                        # name of device where LILO installs itself
#compact                                # faster, but won't work on my system.
delay = 5                               # wait time
vga = normal                            # force sane state
ramdisk = 0                             # paranoia setting
# End LILO global section
#
# Normale set-up di Linux -- boot da /vmlinuz
#
image = /vmlinuz                        # Il vecchio kernel nella root directory
  root = /dev/hda6                      # La partizione root
  label = Linux                         # Label al boot time
  read-only                             # I filesystems Non-UMSDOS devono essere montati read-only per il checking
#
# Nuova stanza per permettere di testare i nuovi kernels.
#
image = /usr/src/linux/arch/i386/boot/zImage    # Directory del nuovo kernel
  root = /dev/hda6                              # Come sopra
  label = zImage                                # Nome del kernel da testare
  read-only                                     # Come sopra
# Linux bootable partition config ends
Attenzione! Tenete ben presente che configurare LILO e farlo funzionare correttamente puo' essere, a volte, un lavoretto problematico. Percio' vedete di avere sempre con voi un boot disk (funzionante NdT) ed una copia del file lilo.conf originale prima di andare ad infilarvi alla cieca in posti dove anche i santi hanno paura ad entrare! Una volta che vi siete ben coperti le spalle, tutto cio' che resta da fare sono alcune piccole aggiunte al vostro file /etc/lilo.conf per fare funzionare il tutto.

Tutte le aggiunte necessarie sono sostanzialmente contenute nelle ultime 5 linee dell'esempio precedente. Bisogna aggiungere una "stanza" per il nuovo kernel da testare. La linea image indica dov'e' localizzata l'image del nuovo kernel. Nel nostro esempio punta verso la directory dove normalmente si trova l'image del nuovo kernel dopo compilazione con il comando make zImage.
Niente di difficile, in fondo.

L'unica altra linea necessaria e' la label, che definisce il nome che il LILO usera' quando dovra' chiedervi quale kernel volete lanciare. Le restanti linee, come root o vga, possono essere tralasciate; in questo caso verranno utilizzate le opzioni incluse durante la compilazione o settate usando il comando rdev. Se non vi fidate troppo delle vostre capacita' e non volete stare a giocherellare con tutte queste linee, potete tranquillamente inserire solo le linee image e label e tutto dovrebbe funzionare lo stesso. Per ultimo, non dimenticare di rilanciare il LILO con (per esempio) -- /sbin/lilo al prompt. Lanciando il LILO dovreste vedere qualcosa tipo:

Adding Linux *
Adding zImage

Adesso, dopo il reboot, tenete premuto il tasto Shift ed il LILO vi chiedera' direttamente quale kernel volete utilizzare. Premendo il tasto Tab, inoltre, vi verra' mostrata una lista di opzioni. A questo punto andate avanti inserendo zImage e, se tutto funzionera' come previsto, voila! ecco qui il vostro nuovo kernel al lavoro. L'uso di uno dei due metodi appena descritti, vi permettera' di lanciare e testare un nuovo kernel, senza dover fare alcuna rischiosa modifica al vostro setup originale. Se le cose non dovessero poi funzionare nel modo previsto, bastera' fare un reboot levando il boot disk col nuovo kernel, o lanciando il vecchio kernel direttamente dal LILO.


Per l'articolo originale: © 1995 John M.Fisk e per l'edizione italiana © LUGBari
Paolo Enrico raggiungibile su internet all'indirizzo enrico@ssmain.uniss.it oppure tramite la redazione