Non è una domanda a cui si può rispondere facilmente. Linux 2.6 è il risultato di oltre 2 anni di sviluppo e stabilizzazione di nuove funzionalità, ed è architetturalmente molto diverso dalla sua controparte 2.4. Di seguito sono elencati alcuni dei cambiamenti più importanti:
Per chi fosse interessato, si può dare uno sguardo al documento molto
dettagliato scritto da Joseph Pranevich,
Dal rilascio 2005.0 di Gentoo Linux, il kernel predefinito è dell'ultima serie
2.6. Il profilo predefinito viene prelevato da
Se si sta usando un profilo 2.4, bisogna cambiarlo con uno che supporti il kernel 2.6 eseguendo la seguente operazione.
# rm -f /etc/make.profile # ln -snf /usr/portage/profiles/default-linux/x86/2005.1 /etc/make.profile
In passato, gli utenti di Gentoo sono stati istruiti nell'utilizzo di
Per l'utente finale questo cambiamento può non voler dire nulla o avere poco
significato, fortunatamente i bravissimi sviluppatori di Gentoo hanno messo
tutto il loro impegno nel rendere la migrazione da devfs il più semplice
possibile. È consigliabile leggere la
Con Linux 2.4, l'unico modo per far funzionare la scheda sonora era di usare i driver OSS (open sound system). OSS è stato sostituito da una nuovo e migliore insieme di driver: ALSA.
ALSA, ovvero Advanced Linux Sound Architecture (Architettura Avanzata del Suono in Linux), è un nuova serie di driver per il suono, aventi nuove e migliori API, presente nel kernel Linux 2.6. È retrocompatibile con le applicazioni OSS, a condizione di selezionare le giuste opzioni di configurazione del kernel!
Il supporto a LVM è stato storicamente inserito in Linux 2.4. Linux 2.6 fornisce
una nuova versione di LVM, chiamata
Se non si è utenti LVM, ma si pensa che LVM2 possa essere utile, si possono
convertire i dischi a questo formato in un secondo momento, seguendo l'
Qualcuna delle modifiche apportate in Linux 2.6 richiede dei cambiamenti nelle applicazioni basilari di sistema. Prima di continuare, ci si deve assicurare che il sistema sia aggiornato, e per esserne pienamente sicuri, si devono aggiornare tutti i pacchetti installati (compresi quelli di sistema) aventi delle nuove versioni disponibili.
In particolare, ci si assicuri di avere l'ultima versione stabile dei seguenti pacchetti:
# emerge --sync # emerge -ua world
Linux 2.6 introduce un nuovo formato dei moduli, ciò comporta l'uso di nuovi
strumenti per poterli gestire. Essi sono integrati nel pacchetto
A questo punto si può rimuovere modutils e installare module-init-tools:
# emerge --unmerge sys-apps/modutils # emerge module-init-tools
Non c'è nessuna configurazione coinvolta in questo passaggio. Si usi
semplicemente
# emerge -a udev
A questo punto si dovrebbe leggere la
Quando il sistema si avvia, ha la necessità di accedere a degli essenziali file dei dispositivi. Siccome udev non è incluso nel kernel, esso non viene attivato immediatamente. Per aggirare questo inconveniente, ci si deve assicurare di avere sul disco i file dei dispositivi necessari all'avvio del sistema.
Gli stage di installazione dovrebbero già aver creato i dispositivi richiesti durante l'installazione iniziale. Tuttavia qualche utente ne ha riscontrato la mancanza. Questa è l'occasione per verificare che esistano i file dei dispositivi, e, in caso contrario, di crearli.
Siccome l'attuale gestore dei dispositivi sarà montato in
# mkdir -p /mnt/temp # mount --rbind / /mnt/temp # cd /mnt/temp/dev # ls -l console null
Se il comando
# mknod -m 660 console c 5 1 # mknod -m 660 null c 1 3
A questo punto si deve smontare la partizione di cui si era fatto il bind-mount, anche se non si è dovuto creare manualmente i dispositivi:
# cd # umount /mnt/temp # rmdir /mnt/temp
ALSA richiede che siano installati determinati pacchetti, per permettere alle applicazioni di usare le API ALSA. Questi pacchetti, inoltre, permettono all'utente di controllare il mixer e i livelli dei volumi. Si installino gli strumenti richiesti in questo modo:
# emerge -a alsa-lib alsa-utils alsa-tools alsa-headers alsa-oss
La prima cosa da fare è scegliere quali sorgenti di un kernel 2.6 installare. I
due kernel 2.6 supportati da Gentoo sono attualmente
In questa guida verrà utilizzati come esempio il pacchetto
# emerge -a gentoo-sources These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild NS ] sys-kernel/gentoo-sources-2.6.10-r4 Do you want me to merge these packages? [Yes/No] y
Se eseguendo il comando sopraelencato emerge vuole installare la versione 2.4 di
gentoo-sources (es.
Diversi componenti delle utilità di Gentoo fanno riferimento a
Si dovrà aggiornare di conseguenza il collegamento
# cd /usr/src # ln -sfn linux-2.6.10-gentoo-r4 linux
Prima di addentrarsi nella configurazione del kernel, verranno elencati alcuni degli errori più comuni in cui incorrono gli utenti che stanno migrando a Linux 2.6., in quanto qualcuno di questi punti influenzerà il modo in cui verrà configurato il nuovo kernel.
Verrebbero poste un sacco di domande, in quanto i cambiamenti avvenuti dalla
serie 2.4 alla 2.6 sono innumerevoli. Molte persone che provano ad eseguire
In Linux 2.4 l'unico modo per ottenere buoni risultati nella masterizzazione
CD/DVD era l'abilitazione (alquanto scomoda) dell'emulazione
Non occorre abilitare nessuna opzione extra per il supporto alla masterizzazione
CD. Basta solamente assicurarsi di
Non si otterranno i normali beep della console (o qualsiasi risposta
dall'altoparlante PC) se non si abiliterà la nuova opzione per l'altoparlante PC
(
Device Drivers ---> Input device support ---> [*] Misc <*> PC Speaker support
Recentemente è stato aggiunto al kernel un nuovo driver per i dispositivi di archiviazione USB. Nel momento in cui si sta scrivendo questa guida, questo driver ("ub") è ancora agli stadi iniziali di sviluppo, e per certi utenti risulterà inutilizzabile. Se si riscontrano problemi nell'accedere a dispositivi con interfaccia USB come dischi fissi, memorie flash, lettori di card, fotocamere digitali, si provi a ritornare al vecchio driver "stile SCSI":
Device Drivers ---> Block devices ---> < > Low Performance USB Block driver
Se si ha modificato
Se si è utenti desktop 2.4, probabilmente si avrà modificato il sistema per eseguire X con una priorità maggiore per avere prestazioni desktop migliori.
I molti cambiamenti apportati alla schedulazione nel kernel 2.6 modificano
questo funzionamento. Se si continua ad eseguire X con una priorità maggiore,
si otterrà esattamente quello che si desiderava (eseguire il
In Linux 2.6 non c'è più la necessità di eseguire le applicazioni con una priorità maggiore per ottenere una buona interattività, per cui è consigliabile rimuovere tutte le modifiche riguardanti il "niceness" dei programmi!
Uno dei cambiamenti introdotti dalla configurazione predefinita di udev è la
differente organizzazione dei nodi dispositivo relativi ai mouse. In precedenza
si avevano nodi tipo
Fino a che la vecchia configurazione di X farà riferimento a
(EE) xf86OpenSerial: Cannot open device /dev/mouse No such file or directory. (EE) Mouse0: cannot open input device (EE) PreInit failed for input device "Mouse0" No core pointer
Per correggere ciò, si apra il file di configurazione di X11 in un editor di
testo, aggiornando la sezione
# nano -w /etc/X11/xorg.conf
Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/input/mice" EndSection
Se si usavano i driver originali Serial ATA in Linux 2.4, probabilmente si è
osservato che i dispositivi SATA avevano nomi tipo
Linux 2.6 introduce dei nuovi driver SATA (libata) basati sul sottosistema SCSI.
Siccome questi driver sono basati su SCSI, i dischi SATA appariranno come
dispositivi SCSI. Il primo disco SATA si chiamerà
Se si usava il kernel
Lo sviluppatore di bootsplash sembra abbia perso interesse per il suo progetto,
per via di problemi progettuali. Tuttavia lo sviluppatore
Se si usa
I driver hardware I2C ora sono inclusi nel kernel Linux 2.6, il pacchetto
esterno i2c non è più richiesto. Si ricordi di compilare il supporto ai
dispositivi I2C specifici per il proprio sistema nella configurazione del
kernel. Si potrà utilizzare
Come con Linux 2.4, si hanno due opzioni per gestire la compilazione di un nuovo kernel.
Si procederà ora alla configurazione del kernel. Si apra menuconfig nel solito modo:
# cd /usr/src/linux # make menuconfig
Probabilmente l'utilizzo di menuconfig sarà familiare, avendo già configurato i
kernel 2.4. Fortunatamente, l'interfaccia è stata cambiata quasi per intero,
tuttavia si noterà una migliore organizzazione delle opzioni del kernel e
Ci si assicuri di abilitare le importanti opzioni riportate qui di seguito:
File systems --->
Pseudo Filesystems --->
[*] /proc file system support
[*] Virtual memory file system support (former shm fs)
(le seguenti sono necessarie per udev):
General setup --->
[*] Support for hot-pluggable devices
(le seguenti sono necessarie per ALSA):
Device Drivers --->
Sound --->
<*> Sound card support
Advanced Linux Sound Architecture --->
<M> Advanced Linux Sound Architecture
<M> Sequencer support
<M> OSS Mixer API
[*] OSS Sequencer API
(non ci si dimentichi di selezionare la propria scheda sonora dai sottomenù!)
(le seguenti sono necessarie si si usa LVM per la gestione dei dischi):
Device Drivers --->
Multi-device support (RAID and LVM) --->
[*] Multiple devices driver support (RAID and LVM)
<*> Device mapper support
Inoltre ci si deve ricordare di abilitare il supporto ai filesystem utilizzati e
all'hardware presente nel proprio sistema. Ci si assicuri di abilitare il
supporto al controller IDE della propria scheda madre per velocizzare, tramite
il DMA, l'accesso ai dischi. Per ulteriori informazioni si faccia riferimento
alla sezione
Dopo aver configurato il kernel, si può procedere al processo di compilazione:
# make && make modules_install
Si aspetti il completamento della compilazione del kernel (e si osservi l'output di compilazione molto più leggibile).
Il prossimo passaggio consiste nel montaggio della partizione
# mount /boot # cp arch/i386/boot/bzImage /boot/bzImage-2.6.10-gentoo-r4
È da notare che le istruzioni precedentemente elencate sono solo un esempio, si
dovrebbe seguire l'usuale procedura di aggiornamento del kernel tramite le
istruzioni nel
Nell'aggiornamento della configurazione del bootloader, è consigliabile non rimuovere la voce relativa al kernel 2.4. In questo modo si può facilmente passare da uno all'altro nel caso qualcosa non funzioni correttamente.
A questo punto si prosegue con la sezione relativa alla
Se si preferisce utilizzare genkernel al posto della configurazione manuale del kernel, potrà far piacere sapere che con genkernel la creazione dei kernel 2.6 è molto simile al processo che si eseguiva per i precedenti kernel 2.4.
Si deve invocare genkernel nel seguente modo:
# genkernel --udev --menuconfig --bootloader=grub all
Nel precedente esempio, ci si avvantaggia inoltre delle funzionalità di genkernel che permettono l'apertura di menuconfig per permettere di personalizzare la configurazione del kernel (se lo si desidera), e di aggiornare la configurazione del bootloader grub dopo la compilazione.
Si dovranno passare a genkernel gli argomento appropriati per le proprie
necessità, ma non ci deve dimenticare di includere l'argomento
Se si è scelto di aggiornare manualmente la configurazione del bootloader, ci
si deve ricordare di includere
title Gentoo Linux (2.6 kernel) root (hd0,0) kernel /kernel-2.6.10-gentoo-r4 udev root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/sda3 initrd /initrd-2.6.10-gentoo-r4
Molti utenti fanno affidamento a moduli aggiuntivi del kernel, che vengono
creati esternamente all'albero dei sorgenti. Esempi comuni sono i driver
grafici binari di ATI e Nvidia. Se si necessita di installare questi moduli, i
quali vengono compilati rispetto ai sorgenti 2.6 trovati in
Si faccia nuovamente riferimento al capitolo
Si potrebbe aver deciso di compilare dei componenti del kernel come moduli (piuttosto che compilarli direttamente nel kernel) e volerli caricare automaticamente durante l'avvio, come nel kernel 2.4. Inoltre, si potrebbe volere caricare in automatico anche i moduli esterni presenti nell'albero di portage (come descritto precedentemente).
Per ottenere questo modificare
# nano -w /etc/conf.d/modules
modules="3c59x nvidia"
Fortunatamente l'aggiornamento degli strumenti utente LVM1 alla versione LVM2 è molto semplice:
# emerge --unmerge lvm-user # emerge lvm2
È ora di avviare il sistema in Linux 2.6. si chiudano tutte le applicazioni e si riavvii:
# umount /boot # reboot
Dopo il riavvio, se si ha seguito correttamente dall'inizio questa guida, si avrà l'opzione, tramite il bootloader, di caricare Linux 2.4 o Linux 2.6. Scegliere Linux 2.6
Una volta che il sistema si è avviato, verificare che tutto funzioni. Se si ha
commesso qualche errore nella configurazione del kernel non c'è da
preoccuparsi, basta tornare indietro alla sezione
Per completare la configurazione di ALSA e attivare i canali audio, il pacchetto di ALSA fornisce un utilissimo strumento per rendere il processo relativamente semplice:
# alsaconf
La procedura è facile: dopo aver aggiornato automaticamente il file
A questo punto si dovrà aggiungere
# rc-update add alsasound boot
Se si riscontrano da subito dei problemi, è consigliabile tornare indietro alla
sezione
Arrivati a questo punto Linux 2.6 dovrebbe essere in esecuzione, e tutti i problemi dovrebbero essere risolti. Ora bisogna aggiornare i file header del kernel Linux e riemergere le librerie glibc per permettere alle applicazioni utente di sfruttare le nuove funzionalità di Linux 2.6.
# emerge -u linux-headers
A seguito dell'aggiornamento del pacchetto degli header, generalmente si
dovranno riemergere le librerie glibc. C'è una nuova funzionalità molto
interessante, chiamata NPTL. NPTL è un nuovo modello di threading presente in
Linux 2.6, che fornisce un meccanismo più veloce di creazione e distruzione dei
thread. Sul molti sistemi potrà non fare molta differenza, comunque si ha la
possibilità di abilitarlo durante il processo di migrazione. Per abilitare NPTL,
si deve modificare
A questo punto effettuare nuovamente l'emerge di glibc (lo si dovrebbe fare anche se non si ha scelto di abilitare NPTL).
# emerge -a glibc
Se NPTL è stato abilitato, i binari esistenti non lo useranno finché non
verranno ricompilati. Tuttavia, qualsiasi binario compilato da questo punto in
avanti
# emerge -e world
In alternativa, si può semplicemente lasciare che il sistema converta "naturalmente" sé stesso a NPTL, aggiornando i pacchetti alle nuove versioni quando esse vengono rilasciate.
Con l'incredibile mole di lavoro che Linux 2.6 porta con sé, è inevitabile che talvolta le cose che prima (con Linux 2.4) funzionavano correttamente, con Linux 2.6 non funzionino più come ci si aspettava.
Se si riscontrano problemi con il kernel 2.6, e si può confermare che questi
problemi non si verificavano con Linux 2.4, si prega di aprire un bug in
Si auspica che, a questo punto, la migrazione sia stata effettuata senza imprevisti, e che si stia giovando dei benefici apportati da Linux 2.6 rispetto alla versione 2.4.
L'autore ringrazia tutti quegli utenti che hanno effettivamente 'testato' questo documento mentre era nelle sue prime fasi di sviluppo, e quelli che hanno fornito dei feedback sul processo di migrazione. Inoltre l'autore si scusa se non è riuscito a rispondere a tutte le e-mail (erano un sacco!), comunque le ha lette una per una, rifinendo questo documento dove appropriato. È ora di godersi il proprio sistema potenziato con il kernel 2.6 :)
È probabile che Linux 2.4 non sia più indispensabile, dopo aver usato la
versione 2.6 per un certo tempo. Per pulire il sistema si possono seguire le
operazioni dettagliate successivamente.
I sorgenti del kernel 2.4 possono essere rimossi normalmente tramite lo strumento emerge. Supponendo di avere installato le versioni 2.4 dei vanilla-sources e gentoo-sources, li si potrà rimuovere, mantenendo intatte le versioni 2.6, con il seguente comando:
# emerge --unmerge =vanilla-sources-2.4.* =gentoo-sources-2.4.*
Portage non ripulirà completamente l'installazione dei sorgenti del kernel 2.4, in quanto la directory dei sorgenti conterrà dei file temporanei creati durante la compilazione. li si può rimuovere in sicurezza con il seguente comando:
# rm -rf /usr/src/linux-2.4.*
In aggiunta si potranno rimuovere i moduli e i file informativi relativi alle vecchie installazioni dei kernel 2.4, in quanto non sono più necessari:
# rm -rf /lib/modules/2.4.*
Anche i binari dei kernel 2.4 usati per l'avvio del sistema possono essere
rimossi senza problemi. Si dovrà montare la partizione
Qualche utente di Linux 2.4 avrà a suo tempo installato il pacchetto
Inoltre, gli utenti di
Anche il demone di gestione di devfs,
# emerge --unmerge alsa-driver i2c devfsd
Se si è utenti LVM2, con molte probabilità si vorrà convertire i propri dati
nel formato LVM2 per beneficiare dei vantaggi offerti dalla nuova versione.
Tuttavia, questa operazione inibirà qualunque accesso ai dati LVM da un kernel
2.4. Se si vuole proseguire con la conversione (è assolutamente opzionale!), si
possono esaminare le pagine del manuale di
# vgconvert -M2 main