3.3. Compilazione e installazione

Fatto tutto questo, salvate con l'opzione apposita, incrociate le dita e date:

make dep && make clean && make bzImage && make modules
     

uscite e andate a farvi un caffè o una lunga passeggiata (con un processore a 200 MHz servono in genere una quindicina di minuti, regolatevi!) Non è come aspettare un figlio, ma la prima volta ci si ritrova con le unghie completamente rosicchiate ;-). Se tutto è andato bene, il vostro nuovo bambino... ehm, kernel, è contenuto nel file '/usr/src/linux/arch/i386/boot/bzImage'. Complimenti! Ora bisogna installare il tutto. Per prima cosa i moduli. Se avete ricompilato la stessa versione di kernel che state già usando, dovete spostare la directory con la versione precedente dei moduli, prima di installarli (se avete compilato una versione diversa da quella in uso, potete saltare il primo dei due comandi seguenti):

mv /lib/modules/VERSIONE_KERNEL /lib/modules/VERSIONE_KERNEL.old
make modules_install
     

Fatto questo, controllate se nella directory '/boot' esistono i seguenti file:

ls -l /boot/System.map /boot/vmlinuz
     

come prima, se il primo carattere è una 'l' si tratta di collegamenti (rimuoveteli con rm -f /boot/...), mentre se è '-' si tratta di file (rinominateli con mv -f /boot/NOMEFILE /boot/NOMEFILE-VERSIONE_KERNEL_PRECEDENTE). Ora copiate in '/boot' il kernel e la System-map aggiornate e ricreate i collegamenti (l'esempio si riferisce sempre al kernel 2.2.14):

cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.2.14
ln -s /boot/vmlinuz-2.2.14 /boot/vmlinuz
cp /usr/src/linux/System.map /boot/System.map-2.2.14
ln -s /boot/System.map-2.2.14 /boot/System.map
     

Se usate 'loadlin', copiate il nuovo kernel nella sua directory (guardate la pagina apposita del Quick&Easy Configuration HOWTO). Mentre se usate 'lilo', modificate il file '/etc/lilo.conf' in modo da avere sia il vecchio kernel che il nuovo (fino a quando non sarete sicuri che quest'ultimo funzioni perfettamente - la parte aggiunta per il nuovo kernel è quella tra le due righe di ###..., e qualcosa potrebbe essere diverso):

boot = /dev/hda
delay = 5
vga = normal
root = /dev/hdb2   # correggere con la vostra partizione di root!
read-only
image = /boot/vmlinuz.old    # controllate o rinominate il vecchio kernel di conseguenza
    label = oldlinux
#################################
image = /boot/vmlinuz   # questo è il nuovo kernel
    label = linux
#################################
other = /dev/hda1
    label = dos
    table = /dev/hda
     

e ridate "/sbin/lilo -v" per rimetterlo a posto (man lilo, man lilo.conf o lilo-howto per altre informazioni). Se volete rimuovere lilo, usate il comando "fdisk /mbr" dal DOS, oppure "lilo -U" da Linux. Per la stampante, controllate che il file '/etc/conf.modules' contenga le righe:

alias parport_lowlevel parport_pc
options parport_pc io=0x378, 0x278 irq=7 auto
     

Se volete provare il kernel prima di usarlo definitivamene, tralasciate per ora tutta la parte dopo "make modules_install" e copiatelo su un dischetto che userete come boot (il floppy NON va montato per eseguire queste operazioni!!!):

cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.2.14
cp /usr/src/linux/vmlinuz-2.2.14 /dev/fd0
rdev /dev/fd0 /dev/hda2
rdev -R /dev/fd0 1
     

Sostituite a /dev/hda2 la vostra partizione di root ('/')!!! Questo è tutto!

Nota: Per Debian: dopo aver ricompilato, potete ottenere un pacchetto .deb contenente kernel e moduli e che aggiorna anche in automatico lilo, col seguente comando dato da dentro la dir '/usr/src/linux/' :

make-kpkg --revision pingu.0 kernel_image
       

dove potete sostituire pingu.0 con quello che volete.