Ricompilazione del kernel Linux
Se avete una distro abbastanza datata puo' essere che il vostro kernel supporti IPv6 ma l'installazione di default non l'abbia abilitato.
Quindi è bene scaricare un kernel più recente magari della serie 2.4.* e compilarlo appunto con il supporto Ipv6 come modulo.
Nel momento in cui scriviamo l'ultima release stabile è la 2.4.18
Per scaricare una versione aggiornata del kernel colleghiamoci a: http://www.it.kernel.org/pub/linux/kernel/v2.4/ e scarichiamo la versione corrente.
Avremo il tar.bz2 o il tar.gz nella nostra home directory.
Bisogna ora passare a utente root con 'su -' e andare a prelevare la versione del kernel scaricato nella nostra home directory (es.: se abbiamo fatto il login con l'utente nme allora dovremmo andare su /home/nme) e spostarla in /usr/src.
Ora diamo un 'cd /usr/src/' e se abbiamo già una directory di nome "linux" diamo 'mv linux linux.old' in modo tale da conservare i vecchi sorgenti del vecchio kernel.
Infine non resta altro che scompattare.
Rispettivamente daremo 'bunzip2 linux-2.4.18.tar.bz2' e poi 'tar -xvf linux-2.4.18.tar' se il kernel scaricato aveva estensione .tar.bz2, se invece aveva estensione tar.gz daremo 'tar -xzvf linux-2.4.18.tar.gz'.
Avremo ora una directory di nome /usr/src/linux.
Spostiamoci in questa dir (cd /usr/src/linux) e diamo 'make menuconfig' se non stiamo usando X o 'make xconfig' se stiamo usando X.
Dando make xconfig avremo questa schermata:
Tra le opzioni da abilitare in realazione al vostro sistema (si consiglia di utilizzare i moduli per dare al proprio sistema una maggiore flessibilità ed evitare di caricare cose inutili all'avvio) ne ricordiamo alcune:
- Abilitare nel menu "code maturity level options" l'unica voce presente:
- Alla voce "Processor type and features" scegliete il vostro tipo di processore e quindi abilitare i supporti MSR, CPUID e APIC:
- Nel menu "General Setup" ricordarsi di abilitare il supporto al networking:
- Nel menù "Block Devices" attivate come moduli "Loopback device support" e "Network block device support" e abilitare il supporto alla "RAM Disk" e all' "Initial RAM Disk" (initrd):
- Nel menu "Networking Options" attivate il supporto per: "Packet socket", "Packet socket nmapped IO" , "Kernel/User netlink socket", "Routings messages", "Netlink device emulation" (come modulo), "Socket Filtering", "Unix domain sockets", "TCP/IP networking", e naturalmente il supporto "IPv6"come modulo:
- Nel menù "ATA, IDE, MFM, RLL Support" attivate l'unica voce presente nel menù iniziale, poi cliccate su "next" e attivate come modulo la voce "Enhanced, IDE, MFM, RLL disk, cdrom, tape support", la voce "IDE/ATA-2 disk support" e quindi procediamo a compilare come modulo anche il supporto "IDE/ATAPI cdrom e floppy":
- Nel menù "Network device support" ricordarsi di attivare come modulo il supporto PPP:
Seguirà poi la configurazione riguardante la scheda video, audio, le partizioni da supportare e via dicendo.
Una volta terminata la configurazione del kernel bisogna salvare la configurazione e uscire dalla finestra iniziale.
Si dovranno dare in ordine i seguenti comandi:
[root@localhost linux] make dep
[root@localhost linux] make bzImage
[root@localhost linux] cp /usr/src/linux/System.map /boot
[root@localhost linux] cp /usr/src/linux/arch/i386/boot/bzImage /boot/
[root@localhost linux] make modules
[root@localhost linux] make modules_install
[root@localhost linux] depmod -a 2.4.18 (se il kernel compilato è il 2.4.18)
Se abbiamo costruito il nuovo kernel con i moduli dobbiamo creare la RAM disk:
[root@localhost linux] mkinitrd /boot/initrd-2.4.*.img 2.4.*
(se il kernel è il 2.4.18 avremo: mkinitrd /boot/initrd-2.4.18.img 2.4.18)
Passiamo poi alla configurazione di /etc/lilo.conf . Dovremmo ottenere una cosa simile (nel caso in cui la partizione nel quale si trova linux sia hda3).
Editiamo il file in questione e aggiungiamo:
Image=/boot/bzImage
label=linuxNEW
initrd=/boot/initrd-2.4.18.img
read-only
root=/dev/hda3
Diamo ora il comando 'lilo'.
Se tutto andrà a buon fine avremo:
[root@localhost linux] lilo
Added linux*
Added linuxNEW
Added dos
Procediamo al reboot, ora che il nostro kernel supporta il nuovo protocollo e eseguiamo la procedura spiegata precedentemente per caricare il modulo ed usufruire così dell' Ipv6.