Avanti Indietro Indice

4. Compilare il kernel

4.1 Far pulizia e sistemare le dipendenze

Quando termina lo script di configurazione, dice pure di fare `make dep' e (possibilmente) `clean'. Quindi, si faccia il `make dep'. Ciò assicura che tutte le dipendenze, come i file include, siano a posto. Non ci mette tanto, a meno che il proprio computer non sia piuttosto lento. Per le vecchie versioni del kernel, quando terminava, si doveva fare un `make clean'. Ciò rimuoveva tutte i file oggetto e alcune altre cose che le vecchie versioni lasciano in giro. In ogni caso, non si dimentichi questo passo prima di provare a ricompilare il kernel.

4.2 Tempo di compilazione

Dopo il dep ed il clean, si può fare `make bzImage' o `make bzdisk' (questa è la parte che richiede un tempo più lungo). `make bzImage' compilerà il kernel, e lascerà (tra le altre cose) un file in arch/i386/boot chiamato `bzImage'. Questo è il nuovo kernel compresso. `make bzdisk' fa la stessa cosa, ma piazza pure il nuovo bzImage su un dischetto che si spera sia stato messo nel driver ``A:''. `bzdisk' è piuttosto comodo per verificare un nuovo kernel; se si pianta (o semplicemente non fa le cose giuste), semplicemente basta rimuovere il floppy e riavviare con il proprio vecchio kernel. È pure un modo comodo di fare il boot se accidentalmente si cancella il proprio kernel (o altre cose ugualmente terribili). Lo si può pure usare per installare un nuovo sistema quando si è semplicemente scaricato il contenuto di un disco in un altro (``tutto questo e molto altro! ORA quanto vorresti pagare?'').

Tutti i kernel ragionevolmente recenti sono compressi, da qui il `bz' di fronte al nome. Un kernel compresso si decomprime da solo automaticamente quando eseguito.

Nei kernel più vecchi, non c'era l'opzione per costruire un bzImage; era semplicemente un zImage. Quella opzione al momento è ancora disponibile ma comunque, data la dimensione del codice dei nuovi kernel, ora è più o meno obbligatorio compilare un bzImage perché il vecchio metodo non riesce a gestire kernel troppo grossi.

4.3 Altre ``make''abilità

`make mrproper' farà un `clean molto più accurato. Qualche volta è necessario; si può desiderare di farlo dopo aver applicato una patch. `make mrproper' cancellerà anche il file di configurazione e quindi conviene salvarselo (.config) se si vede che può essere utile.

`make oldconfig' proverà a configurare il kernel da un vecchio file di configurazione; eseguirà da solo tutto il processo `make config'. Se non si è mai compilato un kernel prima o non si possiede un vecchio file di configurazione, allora probabilmente non lo si dovrebbe fare, in quanto molto probabilmente si vorrà modificare la configurazione predefinita.

Si veda la sezione sui moduli per una descrizione di `make modules'.

4.4 Installare il kernel

Quando si ha un kernel che sembra funzionare nel modo desiderato, allora è il momento di installarlo. Molti usano LILO (Linux Loader) per questo. `make bzlilo' installerà il kernel, vi lancerà LILO e preparerà tutto per il boot, MA SOLO se lilo è configurato nel proprio sistema nel modo seguente: il kernel è /vmlinuz, lilo è in /sbin e il proprio file di configurazione di lilo (/etc/lilo.conf) è in accordo con queste cose.

Altrimenti, è necessario usare LILO direttamente. È un pacchetto abbastanza semplice da installare e da usare, ma ha la tendenza a confondere la gente con il file di configurazione. Si dia un'occhiata al file di configurazione (/etc/lilo/config per le vecchie versioni oppure /etc/lilo.conf per quelle nuove) e si veda qual è l'impostazione corrente. Il file di configurazione è simile a questo:

    image = /vmlinuz
        label = Linux
        root = /dev/hda1
        ...

`image =' è impostato al kernel correntemente installato. La maggior parte della gente usa /vmlinuz. `label' è usata da lilo per determinare quale kernel o sistema operativo avviare, e `root' è la / di quel particolare sistema operativo. Si faccia una copia di backup del vecchio kernel e si copi il bzImage appena creato al suo posto (si dovrà dire `cp bzImage /vmlinuz' se si usa `/vmlinuz'). Poi, si rilanci lilo: su un nuovo sistema si può semplicemente lanciare `lilo', ma in uno vecchio si dovrà fare /etc/lilo/install o addirittura /etc/lilo/lilo -C /etc/lilo/config.

Se si vuol saperne di più sulla configurazione di LILO, o non si ha LILO, si prenda la versione più recente dal proprio sito ftp preferito e si seguano le istruzioni.

Per avviare uno dei propri vecchi kernel dal disco fisso (un altro modo per salvarsi nel caso si facciano casini con il nuovo), si copino le righe che seguono `image = xxx' (compresa) alla fine del file di configurazione di LILO, e si modifichi `image = xxx' in `image = yyy', dove `yyy' è il percorso completo del file in cui si fatto il backup del kernel. Poi si cambi `label = zzz' in `label = linux-backup' e si rilanci lilo. Può essere necessario mettere nel file di configurazione una riga che dice `delay=x', dove x è il numero di decimi di secondo che LILO dovrà attendere prima di fare il boot, cosicché lo si può interrompere (con il tasto shift, per esempio), e inserire l'etichetta della immagine di boot di backup (nel caso succedano cose non proprio piacevoli).


Avanti Indietro Indice