Kernel/Upgrade/it

Questo articolo descrive la procedura per l'aggiornamento ad un nuovo kernel.

Installazione ed uso di un nuovo kernel
L'aggiornamento del kernel potrebbe essere una buona idea quando dei nuovi sorgenti sono stati rilasciati. I nuovi sorgenti del kernel sono a volte installati durante l'aggiornamento del sistema tramite il seguente comando

Ovviamente i sorgenti del kernel possono essere installati direttamente usando il seguente comando (si sostituisca "gentoo-sources" con "hardened-sources" quando si sta usando un profilo hardened):

L'installazione di nuovi sorgenti del kernel non fornisce all'utente un nuovo kernel. E' necessario produrre ed installare un nuovo kernel dai nuovi sorgenti e quindi riavviare il sistema per eseguire effettivamente il nuovo kernel.

La generazione di un nuovo kernel dai nuovi sorgenti è lo stesso processo di creazione di un kernel durante l'installazione del sistema. La differenza è che si potrebbe usare la configurazione del vecchio kernel per creare la configurazione del nuovo kernel. L'uso della vecchia configurazione permette l'utente di evitare di esplorare tutte le opzioni del kernel nuovamente (come )

La configurazione del kernel è salvata in un file nominato nella directory che contiene il kernel stesso. Un nuovo kernel potrebbe avere opzioni e funzionalità che un vecchio kernel non possedeva, o potrebbe non avere funzionalità o opzioni possedute da un vecchio kernel. La configurazione del kernel specifica quali funzionalità e opzioni di un kernel debbano essere abilitate o meno, quali includere nel kernel, o quali dovranno essere incluse come moduli che potranno essere caricate in un kernel in esecuzione on demand. Quindi il file di configurazione di un nuovo kernel potrebbe avere nuove voci di configurazioni non presenti nel vecchio kernel, e potrebbe non avere alcune voci presenti invece nel file di configurazione del vecchio kernel.

Per far fronte a tali cambiamenti del file di configurazione, il file di configurazione del vecchio kernel deve essere convertito in una configurazione utilizzabile con il nuovo. Questo articolo mostra come creare un nuovo kernel da nuovi sorgenti del kernel con la conversione del file di configurazione provenienti dal vecchio kernel.

Creare un backup della configurazione del kernel corrente
E' importante fare un backup della configurazione del kernel in modo che le configurazioni precedenti non siano perse. Dopo tutto, molti utenti dedicano molto tempo a definire la migliore configurazione per il sistema, e perdere queste informazioni non è sicuramente desiderato.

Generare un backup della configurazione corrente del kernel è facile:

A condizione che il collegamento simbolico ai sorgenti del kernel sia stato creato correttamente, questo comando copia lla configurazione del kernel correntemente usato nella home directory dell'utente root, rinominando il file di configurazione in seguito dalla versione del kernel Linux attualmente in esecuzione.

Impostare il link simbolico ai sorgenti del nuovo kernel
Il link simbolico dovrebbe sempre puntare alla directory contenente i sorgenti del kernel attualmente in esecuzione. Questo può essere fatto in uno dei tre dei seguenti modi:


 * 1) Installare i sorgenti del kernel con la clausola
 * 2) Impostare il link con
 * 3) Aggiornare manualmente il link simbolico

Installare i sorgenti del kernel con la USE flag "symlink"
Questo implicherà che punti alla directory dei sorgenti del nuovo kernel.

Se necessario, il link può essere comunque modificato successivamente con uno degli altri due metodi.

Configurazione del link con eselect
Per impostare il link simbolico con :

Questo comando genera la lista dei kernel disponibili. L'asterisco indica quale sia la directory dei sorgenti selezionata.

Per cambiare i sorgenti del kernel, per esempio alla seconda voce:

Aggiornamento manuale del link simbolico
Per impostare il link simbolico manualmente:

Copia della configurazione del precedente kernel
La configurazione un precedente kernel necessita di essere copiata nella directory dei sorgenti del nuovo kernel. Questa può essere disponibile in più punti:


 * Nel filesystem procfs, se l'opzione Enable access to .config through /proc/config.gz è stata attivata nel kernel attualmente in esecuzione:


 * Dal vecchio kernel. Questo funziona solo quando il vecchio kernel è stato compilato con CONFIG_IKCONFIG:


 * Nella directory, se la configurazione è stata precedentemente installata in questa posizione:


 * Nella directory del kernel attualmente in esecuzione:


 * Nella directory, se l'opzione  è impostata nel file  e  è stato usato per produrre il kernel attualmente in esecuzione:

Configurazione del nuovo kernel
Per usare la configurazione di un vecchio kernel con uno nuovo, è necessario che questa sia prima convertita. La conversione può essere effettuata eseguendo oppure, in alternativa,.

make silentoldconfig
La seguente configurazione è tipo la configurazione testuale effettuata con. Per le nuove opzioni di configurazione, verrà richiesto all'utente di prendere una decisione. Per esempio:

La stringa "(NEW)"" alla fine della linea sottolinea che questa opzione è nuova. Nelle parentesi quadre a sinistra della stringa ci sono le possibili risposte Yes (Sì), no (o), module (modulo) oppure ? per visualizzare l'aiuto. La risposta raccomandata (default) è in maiuscolo (in questo caso Y). L'aiuto riporta spiegazioni sull'opzione o sul driver.

Sfortunatamente non mostra molte informazioni per ogni opzione, come il contesto, e qualche volta è difficoltoso dare la giusta risposta. In questo caso, la migliore strada è ricordare il nome dell'opzione e ricontrollarla successivamente tramite uno dei strumenti grafici di configurazione del kernel.

make olddefconfig
Se tutte le nuovi opzioni di configurazioni possono essere impostate con il loro valore raccomandato (default) allora è possibile usare :

make help
E' possibile usare per vedere gli altri metodi di conversione:

Compilazione
Primo passo, seguire i passi nell'articolo manual configuration.

Reinstallare moduli kernel esterni
Ogni modulo esterno, come moduli kernel binari binary, necessitano di essere rigenerati per ogni nuovo kernel. Se il kernel non stato ancora generato, è necessario prima prepararlo per la generazione dei moduli esterni:

I pacchetti che contengono moduli kernel possono essere ricompilati usando il set :

Risoluzione dei problemi di generazione
Quando si stanno sperimentando problemi durante la ricompilazione del kernel corrente, è potrebbe essere d'aiuto sanificare i sorgenti del kernel. Ci si assicuri prima di creare un backup del file dato che l'operazione lo elminerà. Ci si assicuri inoltre di non usare suffissi come o  dato che  eliminerà anche questi.

Rimozione dei vecchi kernel
Si veda l'articolo Rimozione del kernel.

Risorse esterne

 * kernel changelog con alcune spiegazioni in merito alle nuove funzionalità