In questo articolo analizziamo i passi da seguire per ricompilare il kernel. Prima di tutto È necessario dotarsi dei sorgenti del kernel. Se non si hanno già disponibili sul proprio Hard Disk possono essere trovati al sito ftp://ftp.kernel.org/pub/linux/kernel/v2.4. Per un kernel della serie 2.4 sono necessari alcuni aggiornamenti (tutte le ultime distribuzioni sono pronte per il kernel 2.4) che potrete trovare nel file /usr/src/linux/Documentation/Changes.
Attualmente l'ultima versione è la 2.4.6 (linux-2.4.6). Bisogna prestare attenzione alla seconda cifra che caratterizza il kernel (4 nel nostro caso). Solo i kernel con la cifra pari sono considerati sufficientemente stabili, mentre gli altri sono ritenuti in fase di sviluppo e destinati agli sviluppatori.
I sorgenti andranno posizionati nella directory /usr/src e quindi decompressi. Per tutte queste operazioni È necessario "loggarsi" da utente root. Prendiamo il caso che abbiate scaricato il file linux-2.4.6.tar.gz.
Se avete già i sorgenti installare
lnxbox1:/usr/src# gzip -cd patchXX.gz | patch -p0
Dove al posto di XX vi È la versione della patch.
I sorgenti sono anche disponibili come bz2
Se tutto È andato bene ci ritroveremo i sorgenti del nostro kernel nella directory /usr/src/linux.
lnxbox1:~# cd /usr/src/linux
e diamo:
lnxbox1:/usr/src/linux# make mrproper
In questo modo elimineremo tutti i collegamenti
A questo punto dobbiamo scegliere le opzioni da includere nel nuovo kernel. Da utente root
lnxbox1:/usr/src/linux# make config
In questo modo ci verrà chiesto interattivamente cosa includere e cosa no. Esistono tuttavia dei modi più amichevoli
lnxbox1:/usr/src/linux# make menuconfig
Per caricare il menu di configurazione testuale. Oppure:
lnxbox1:/usr/src/linux# make xconfig
Per caricare il menu di configurazione per X.
A questo punto si tratterà di scegliere quali opzioni del kernel delicate
Putroppo non sarebbe neanche possibile analizzare nei dettagli tutte le opzioni presenti nel kernel. Daremo però dei suggerimenti utili su quali sono le opzioni fondamentali da abilitare e quali possono essere gli errori più comuni. Se si è in dubbio se abilitare o meno un'opzione può tornare sempre di grande utilità l'help in linea. Generalizzando nell'incertezza la scelta meno rischiosa è "abbondare" nelle opzioni.
È buona norma accludere nel kernel solo il supporto per i componenti hardware fondamentali
Code maturity level options
Loadable module support
Processor type and features
General setup
Memory Technology Devices (MTD)
Parallel port support
Plug and Play configuration
Block devices
Multi-device support (RAID and LVM)
Networking options
Telephony Support
ATA/IDE/MFM/RLL support
Abilitate anche i supporti per il DMA se volete usarlo e l'opzione relativa al vostro chip presente sulla scheda madre. Se avete un masterizzatore IDE dovreste abilitare anche "SCSI emulation support" e disabilitare l'opzione relativa al CDROM ("Include IDE/ATAPI CDROM support").
SCSI support
IEEE 1394 (FireWire) support
I2O device support
Network device support
Amateur Radio support
IrDA (infrared) support
ISDN subsystem
Old CD-ROM drivers (not SCSI, not IDE)
Input core support
Character devices
Multimedia devices
File systems
Abilitate invece il "/proc file system support". È bene ribadire che il filesystem
Console drivers
Sound
USB support
Bluetooth support
Kernel hacking
A questo punto potete tranquillamente uscire e salvare.
Tra gli errori provare LILO
A questo punto bisogna dare i seguenti comandi per compilare sia i moduli che il kernel.
lnxbox1:/usr/src/linux# make dep && make bzImage
lnxbox1:/usr/src/linux# make modules && make modules_install
L'operatore && /usr/src/linux/arch/i386/boot /boot
lnxbox1:/usr/src/linux# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-new
Copiamo anche il file /usr/src/linux/System.map
lnxbox1:/usr/src/linux# cp /usr/src/linux/System.map /boot
A questo punto dovremmo essere in grado di installare /etc/lilo.conf vmlinuz
image=/boot/vmlinuz label=Linux read-only root=/dev/hda5
l'ultima riga cambia a seconda di dove risiede la vostra partizione con Linux. Questa parte del file di configurazione di LILO assegna l'immagine del kernel presente in /boot/vmlinuz assegnandole il nome di Linux. Possiamo rinominare il vecchio kernel in vmlinuz-old, copiare il nuovo kernel in /boot e dandogli il nome di vmlinuz, lasciare invariata la voce precedente e aggiungere sotto una sezione del tipo:
image=/boot/vmlinuz-old label=old read-only root=/dev/hda5
a questo punto scriviamo:
lnxbox1:~# lilo
Per rendere effettive
Compilare il kernel