All DNS Leads To Me

Nome: $:whoami _ Nato il: $:uptime _ Residenza: $:hostname _ Segni particolari: ‘uname -a’

Patchare i sorgenti del kernel Linux

leave a comment »

» Un po’ di teoria

Le versioni del kernel seguono lo schema 2.6.xx.yy. 2 e 6 denotano rispettivamente la versione del kernel e la sua major revision. Il kernel è alla versione 2 dal 1996 mentre siamo alla major revision numero 6 dal Dicembre del 2003: cambiano molto, molto, molto di rado e solo in seguito a profondi sconvolgimenti del codice.

xx è la cosiddetta minor revision. Viene incrementata ogni volta che viene rilasciato un kernel che presenta nuovi driver e nuove funzionalità: questo avviene all’incirca ogni 2 mesi, secondo l’attuale ciclo di sviluppo.

yy indica invece il livello di bugfix. Le correzioni a bug del kernel, nella fattispecie quelle più urgenti come quelle dei problemi di sicurezza, vengono cumulate e rilasciate a scadenze regolari e ravvicinate, numerandole appunto con il livello di bugfix. Solitamente vengono rilasciati una decina di bugfixes tra due revisioni minori del kernel.

Ad esempio, l’attuale rilascio del kernel è il 2.6.25.4.

Verione 2 del kernel.

Revisione maggiore 6.

Revisione minore numero 25.

4° bugfix della minor revision 25.

» No al download coatto

Sull’archivio ufficiale del kernel Linux sono disponibili degli archivi onnicomprensivi, contenenti cioè tutto il codice del kernel in formato compresso. Questo vale per ogni singolo rilascio: viene reso disponibile un archivio di circa 50 Megabyte.

Tuttavia, tra una major revision del kernel e un suo bugfix spesso cambiano solamente un centinaio di righe di codice, non di più. E le righe di codice del kernel sono milioni.

Quindi, anzichè riscaricare ogni volta il pacchetto completo, si può patchare una minor revision del kernel. Applicare una patch significa scaricare un file di qualche KB che contiene solo le differenze nel codice, e applicare queste piccole modifiche al sorgente originale.

La patch per il kernel più recente è nel link annunciato da “The latest stable version of the Linux kernel is:

La patch del kernel è applicabile unicamente all’archivio completo del sorgente della sua più recente minor revision. La patch 2.6.25.4 ha bisogno dell’archivio del kernel 2.6.25 per poter essere applicata (si dice cioè che l’archivio in questione è la patch baseline).

L’archivio completo della patch baseline lo trovate linkato alla “B” che si trova sul secondo rigo, quello che recita “The latest prepatch for the stable Linux kernel tree is“.

In violetto la patch, evidenziata la B del kernel completo.

» Scompattare e patchare

Acquisiamo i privilegi di root.

Si scompatta e si spostano i sorgenti completi del kernel. L’ultimo comando crea un link simbolico alla cartella dei sorgenti, permettendoci di riferirci ad essa come “linux”, per semplicità:

#: tar -xvjf linux-2.6.xx.tar.bz2
#: mv linux-2.6.xx /usr/src
#: ln /usr/src/linux-2.6.xx.yy /usr/src/linux

Si scompatta e si sposta la patch

#: tar -xvjf patch-2.6.xx.yy
#: mv patch-2.6.xx.yy /usr/src/linux

Ora ci si sposta nella dir dei sorgenti e si applica la patch

#: cd /usr/src/linux
#: patch -p1 < patch-2.6.xx.yy

pochi secondi e i sorgenti dell’ultrarecentissima versione del kernel sono pronti alla compilazione.

Ma io sono pronto alla compilazione?

Written by stefanauss

maggio 20, 2008 a 10:13 pm

Pubblicato su A Tutto Trunk, Kernel

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: