Da Intrepid in poi, molto è cambiato in Ubuntu, per chi la conosce e la usa da una vita, qualche esempio? xorg.conf praticamente non esiste più di default, /etc/modprobe.d/aliases idem con patate e una marea di altre cose che non sto a citare, ma si tratta di quelli che per anni sono stati i files classici da modificare a proprio piacimento, per personalizzare al meglio il sistema, secondo le proprie esigenze (spero non mi tolgano /boot/grub/menu.lst o /etc/apt/sources.list altrimenti passo a Windows sull’EeePC!)
Vengo al dunque: una delle personalizzazioni che mi riguardava personalmente immediatamente dopo una nuova installazione era la disabilitazione del tanto inutile quanto fottutamente onnipresente ipv6, che per quanto mi riguarda rallenta solo il boot e la navigazione, almeno per ora ed almeno fino a quando non entrerà in uso definitivo….non so, non sono molto informato e non mi importa nulla che lo riguardi, ma non ce lo voglio nella mia box, PUNTO!
Fino a Intrepid era possibile disabilitare il supporto ad ipv6 con pochi semplici passi, modificando /etc/modprobe.d/aliases ecc. (la rete è piena di “tutorial” in merito, non sto qui a dilungarmi su quel vecchio procedimento), ma adesso le cose son cambiate ed il supporto all’ipv6 è compilato all’interno del kernel e nemmeno come modulo! Quindi ci attacchiamo tutti! ….. A meno che …. non ci sporchiamo le mani con una compilazione del kernel “al volo”.
Calma, calma, lo so, anche io tremo quando si parla di ricompilare il kernel, ma questa cosa è più semplice di quanto sembri. In pratica ricompileremo il kernel con il supporto a ipv6 come modulo, in modo da abilitarlo e disabilitarlo quando e se ci pare, ovvero quando qualcuno si deciderà ad utilizzarlo.
Primo passo. Installare i pacchetti necessari:
$ sudo apt-get install kernel-package libncurses5-dev fakeroot bzip2 linux-source
Secondo passo. Scompattare l’immagine del kernel:
$ cd /usr/src
$ tar jxvf linux-source-*.tar.bz2
$ ln -sf /usr/src/linux-source-[versione del nostro kernel] /usr/src/linux
Terzo passo. Salvare una copia di backup dell’attuale file di configurazione:
$ cd linux
$ sudo cp /boot/config-$(uname -r) .
$ sudo mv config-$(uname -r) .config
Quarto passo. Compilare ipv6 come modulo:
$ sudo make menuconfig
Si aprirà il menu di configurazione del kernel. Prima di tutto selezioniamo “Networking support”, quindi “Networking options”. All’interno di “Networking options” cerchiamo la riga “IPv6 Protocol” e, una volta selezionata premiamo “M” oppure la barra di spazio fino a che non compare la lettera “M” tra i simboli di maggiore e minore, così: “<M>”. Salviamo la configurazione ed usciamo.
Quinto passo. Ricompilare il kernel:
$ sudo make-kpkg clean
$ sudo fakeroot make-kpkg –initrd -append-to-version=-noipv6 kernel_image kernel_headers
Questo è il momento di prendere un caffè….di solito in tutte le guide o pseudo tutorial in giro per la rete si parla di caffè….ma due ore e mezzo (Abbiamo voluto l’EeePC? Ecco le conseguenze!) mi sembrano davvero un casino di tempo per prendere un caffè, anche perchè non ho idea di cosa proporre dopo il caffè, provate a guardare il/la vostro/a partner con una luce speciale negli occhi, forse si trova la maniera per passare un paio d’ore. Se non avete un/a partner è il momento buono per uscire a cercarne uno/a.
Sesto passo. Installare il nuovo kernel:
$ cd /usr/src
$ sudo dpkg -i linux-headers-*.deb
$ sudo dpkg -i linux-image-*.deb
Settimo passo. Mettere in blacklist ipv6:
$ sudo gedit /etc/modprobe.d/blacklist
Alla fine del file aggiungiamo la seguente riga:
blacklist ipv6
Salviamo e usciamo.
Ottavo passo. Controlliamo che tutto sia OK
Riavviamo la macchina (giocattolo?) e connettiamoci ad internet normalmente, poi inseriamo nel terminale il seguente comando:
$ ip a | grep inet*
Se l’output non fa nessun riferimento a qualcosa tipo “inet6″, congratulazioni: stiamo usando ipv4!
NOTA: nel Quarto passo, invece che compilare ipv6 come modulo, si potrebbe decidere di eliminarlo definitivamente e senza pietà schiacciando ripetutamente “spazio” finchè ipv6 resta non selezionato. In questo caso si può saltare il Settimo passo perchè non sarà necessario mettere niente in blacklist, semplicemente avremo deciso di non compilarlo e basta.
Il mio pirlotto va che è una bellezza ora….sperando che il team di sviluppo non mi sforni un nuovo kernel proprio oggi, se no mi sparo!
EDIT del 27/04/2009: Non testato personalmente – In diretta dai commenti ecco il “metodo telperion“, per fare tutto in maniera più elegante
(grazie telperion!) – pare che funzioni solo con kernel Vanilla, però, aspetto feedback.