Il kernel è uno dei pochi pacchetti in portage che richiede un intervento manuale da parte dell'utente per completare un upgrade. Portage può scaricare ed installare il nuovo kernel autonomamente, ma dall'utente stesso ne dipendono la configurazione e la compilazione.
Nonostante la guida sia scritta per gli utenti che intendono aggiornare il proprio kernel da una release ad un'altra, può comunque essere utile a tutti gli utenti che che passano da un particolare pacchetto del kernel ad un altro.
Il kernel utilizzato come esempio in questa guida è il
Genericamente, l'aggiornamento del kernel da una release ad un'altra non porta nessun evidente cambiamento. Nonostante cio' ci sono diverse ragioni per aggiornare il kernel: una può essere quella di beneficiare dei vantaggi di una nuova feature o di un nuovo driver; un'altra può essere quella di correggere un'eventuale problema di sicurezza, oppure semplicemente quella di mantenere il sistema up-to-date.
Anche se si decidesse di non upgradare ad ogni revisione del kernel è comunque consigliato che questo venga aggiornato periodicamente. Inoltre è fortemente raccomandato che si aggiorni il kernel se questo porta alla risoluzione di eventuali problemi di sicurezza.
Il kernel si aggiorna esattamente come si aggiornerebbe un qualunque altro
pacchetto - utilizzando
# emerge -Dup world Calculating dependencies ...done! [ebuild NS ] sys-kernel/gentoo-sources-2.6.9-r2 [2.6.8-r5]
A questo punto si può andare avanti ed installare l'update, e.g.:
# emerge -u gentoo-sources
I sorgenti del kernel saranno quindi installati in una subdirectory in
Gentoo necessita che il link simbolico
Portage può aggiornare anche il link simbolico automaticamente quando si
effettua l'update dei sorgenti. Tutto ciò che si deve fare è aggiungere la
flag
(Aggiungere la parola symlink alle USE) USE="symlink x86 3dnow 3dnowex X aac aalib adns alsa apache2"
Se, invece di appoggiarvi ad emerge, preferite fare tutto da voi il prossimo esempio vi mostra come:
# cd /usr/src # ln -sfn linux-2.6.9-gentoo-r2 linux
Per ognuna di queste operazioni dovreste fare riferimento alla guida presente
nel
Se siete utenti Genkernel, tutto quello che dovrete fare è ripetere i passi che avete fatto la prima volta che avete installato il kernel.
Eseguite semplicemente genkernel:
(Per kernel 2.4:) # genkernel all(Per kernel 2.6:) # genkernel --udev all
Potete inoltre utilizzare dei parametri extra per attivare particolari
funzionalità di genkernel. Per esempio, se desiderate configurare alcune
opzioni attraverso
# genkernel --menuconfig --bootloader=grub all
Per approfondire l'argomento seguite la
Per cominciare, avviate
# cd /usr/src/linux # make menuconfig
Selezionate le voci che maggiormente si confanno alla vostra configurazione
hardware ed alle vostre necessità. Per saperne di più sulla configurazione
del kernel fate riferimento al paragrafo intitolato
Adesso compilate il vostro kernel e copiate l'immagine nella vostra directory
di boot. Fate riferimento alla guida nel
# make && make modules_install # mount /boot # cp arch/i386/boot/bzImage /boot/bzImage-2.6.9-gentoo-r2
Infine, si deve aggiornare la configurazione del bootloader, aggiungendo una
voce per il nuovo kernel (non cancellate ancora le vecchie voci!) e smontare
la partizione
Se si utilizzano moduli del kernel che non sono distribuiti con i sorgenti del
kernel ma che sono comunque presenti in portage (e.g. i driver ALSA, NVIDIA o ATI),
dovrete reistallarli dopo avere completato l'intallazione del nuovo kernel.
Tale procedura e' semplice e consiste nel riemergere gli eventuali pacchetti
interessati. Per ulteriori informazioni fate riferimento al paragrafo
Esiste un semplice tool (
Per ulteriori informazioni, esegui
Adesso chiudete tutte le applicazioni e riavviate il sistema. Se avete eseguito correttamente tutte le istruzioni della guida, il menu del vostro bootloader dovrebbe includere una voce con il nuovo kernel. Selezionatelo e fate proseguire l'avvio del sistema.
Probabilmente il vostro sistema si avviera' col nuovo kernel e voi potrete continuare a fare qualunque cosa stavate facendo prima. Se cosi' fosse allora l'aggiornamento del kernel e terminato ed e' andato a buon fine.
Se invece avete fatto degli errori ed il sistema non vorra' saperne di avviarsi
col nuovo kernel, riavviate il sistema e dal menu' del bootloader scegliete il
vecchio kernel, a questo punto potete riprendere da
Probabilmente avrete notato che quando avete installato il nuovo kernel i sorgenti del vecchio kernel non sono stati rimossi. Questo vi consentira' di utilizzare senza problemi diversi kernel.
Utilizzare diversi kernel e' molto semplice lasciando i sorgenti in
Potreste avere la necessita' di rimuovere il vostro vecchio kernel se il nuovo
dovesse rispondere alle vostre necessita'. Per rimuovere semplicemente tutti i
sorgenti del vecchio kernel potrete utilizzare l'opzione
# emerge -P gentoo-sources
Nella maggior parte dei casi i file temporanei utilizzati durante la
compilazione rimarranno nella directory dei sorgenti
Potrete anche tranquillamente cancellare ogni modulo utilizzato dal vostro
vecchio kernel, rimuovendo la directory che fa riferimento al kernel vecchio
in
Dopo la rimozione dei sorgenti e dei moduli potete montare la partizione
E' comunque possibile risparmiare tempo nell'installazione di un nuovo kernel utilizzando il file di configurazione del vecchio. Generalmente questa non e' una procedura sicura viste le modifiche che possono intercorrere tra una release e l'altra.
L'unica situazione appropriata e quando si aggiorna da
una revisione all'altra del kernel Gentoo. Per esempio, i cambiamenti tra
Per utilizzare il
# cd /usr/src/linux-2.6.9-gentoo-r2 # cp ../linux-2.6.9-gentoo-r1/.config . # make oldconfig
A questo punto potrebbe venirvi chiesto di configurare alcune opzioni che sono
cambiate tra le due versione dei gentoo-sources. Una volta fatto questo,
potrete compilare ed installare il vostro kernel come sempre, senza dover
passare per
Con la velocita' con cui viene sviluppato il kernel linux, e' possibile che
alcuni cambiamenti da una release all'altra diano qualche problema. Se si
dovessero avere dei problemi aggiornando il kernel si consiglia di fare
riferimento all'ultima versione di