Come ricompilare il kernel...
un'operazione tutt'altro che difficile

di John M.Fisk, traduzione di Nicola Lamarca

Per molte persone l'idea di compilare il kernel di un sistema operativo fornisce un mucchio di paure e problemi.

La buona notizia é che... non é poi tanto difficile.

La ragione é semplice: chi trascorre il proprio tempo armeggiando con il kernel ha fatto proprio un bel lavoro, facendo funzionare tutto in maniera corretta. Perciò, l'attuale compilazione del kernel é tecnicamente piuttosto semplice. C'é, comunque, qualche piccola

Avvertenza: devi sapere ciò che stai facendo.

Vediamo di cosa c'é bisogno per sapere ciò che si sta facendo. Il cuore di tutto riguarda la procedura di configurazione del kernel [" make config "]. Durante questo passo, viene eseguito uno script che formula una serie di domande riguardanti ciò che si vuole includere compilando il proprio kernel. Ci sono opzioni riguardanti:

e così via. Lo script é abbastanza intelligente da dare dei ragionevoli valori di default. La ragione per compilare il TUO kernel sta nell'includere in esso solo ciò che realmenete serve per il TUO sistema.

Se hai un mouse con bus Logitech, una scheda sonora Gravis Ultra Sound (GUS), ed esegui una connessione dial-up PPP, allora non ti serve il supporto per il Network File System (NFS), schede Ethernet, o cdrom drives. Se rispondi scorrettamente a qualche domanda di configurazione, il kernel continuerà a funzionare... solo che avrà qualche driver incluso che non potrai usare (quindi kernel più largo e maggiore occupazione di memoria), oppure mancherà di qualche opzione che veramente ti serve-- come il supporto per il bus del tuo mouse.

Quindi dove imparare?

Un ottimo punto di partenza, e di grande aiuto, é il Kernel-HOWTO di Brian Ward che può essere trovato, con una serie completa di riferimenti ad altri HOWTO, presso il Linux Documentation Project's HOWTO . Brian illustra il processo di compilazione passo-passo e spiega cosa comporta ogni opzione di configurazione. Un altro posto dove reperire utili informazioni ed avvertenze é il Linux sunsite kernel . Molti autori hanno scritto programmi per assisterti nella compilazione del kernel.

Non dimentichiamo i documenti stampati... Matt Welsh e Lar Kaufman hanno scritto un ottimo libro, che dovrebbe essere nella libreria di chiunque usi Linux, chiamato Running Linux (Pubblicato dalla O'Reilly). Al costo di $24.95 (circa £40.000) é quasi un furto per le oltre 500 pagine di istruzioni, suggerimenti, trucchi, e howto passo-passo. Se non lo hai, compralo.

Dopo aver fatto i "compiti a casa", la parte tecnica é, praticamente, una conseguenza:

  1. Procurati una copia dei sorgenti del kernel Linux, ad es. presso GA Tech's Linux archive.
  2. Scompatta il tutto in /usr/src.
  3. Crea un link simbolico da /linux-1.2.x a /linux (ad esempio): ln -s /linux-1.2.x linux
  4. Ora, entra nella directory /usr/src/linux e sarai pronto per partire.

A questo punto semplicemente digita questa riga di comandi:

make mrproper ; make config ; make dep ; make clean ; make zImage

E' fatta. Vedrai chilometri di scritte sul tuo schermo e poi avrà inizio tutta una serie di domande con cui ti verrà chiesto come vuoi configurare il kernel -- a questo punto sei in make config. Rispondi alle domande ed alla fine inizierà la compilazione del kernel.

Quanto tempo impiega?

Finita la compilazione puoi trovare il tuo nuovo luccicante kernel in:

/usr/src/linux/arch/i386/boot

E' nominato: zImage ed é, di solito, in fondo alla lista della directory. Adesso è tutto pronto!

Ora scommetto che lo vorrai provare, eh? Prima, però, un paio di avvertenze!

Avvertenza #1: Assicurati di avere un disco di boot funzionante prima di fare qualsiasi altra cosa.

Avvertenza #2: Devi essere sicuro che il disco di boot funzioni veramente!

Avvertenza #3: fai una copia di backup dell'immagine del tuo kernel funzionante (di solito, /vmlinuz) e salvala in un posto sicuro.

Ora, rinomina l'imagine corrente del kernel -- per esempio, mv vmlinuz vmlinuz.bak e quindi copia la nuova zImage nella root-partition o dove metti di solito le immagini del kernel -- ad esempio, cp zImage /vmlinuz.

Puoi aver bisogno di aggiustare i permessi dell'immagine con chmod 400 vmlinuz e poi non dimenticare di rieseguire LILO! -- ad es., /sbin/lilo. Dopo tutto ciò sei pronto per il reboot.

Ok, andiamo avanti... puoi fare il vecchio shutdown -r e tenere le dita incrociate!

Non funziona??!!! Arrgghhh...!! Non disperare, si può aggiustare tutto. Se il tuo sistema si pianta sul nuovo kernel per qualsiasi ragione, puoi semplicemente fare il reboot usando il floppy di boot e copiando la tua vecchia immagine del kernel, che hai (spero) conservato in quel posto sicuro, ritorna nella root-directory e riesegui LILO -- ad es., /sbin/lilo.

A questo punto dovresti essere ritornato alla vecchia immagine del kernel e puoi rifare il solito reboot dal solito drive. Ma continua a leggere... vedremo qualche idea per testare facilmente e con sicurezza un nuovo kernel nel prossimo paragrafo...


Per l'articolo originale: © 1995 John M.Fisk e per l'edizione italiana © LUGBari
Nicola Lamarca è raggiungibile su internet all'indirizzo lamarca@teseo.it oppure tramite la redazione