Debian Kernel Howto: differenze tra le versioni

Nessun cambiamento nella dimensione ,  19 lug 2005
Riga 1: Riga 1:
{{Debianized}}
==Introduzione==
==Introduzione==
Su debian il kernel pu� essere ricompilato con il metodo standard (valido con tutte le distribuzioni) oppure nella cos� detta ''debian-way''.
Su debian il kernel pu� essere ricompilato con il metodo standard (valido con tutte le distribuzioni) oppure nella cos� detta ''debian-way''.
Riga 11: Riga 9:


<pre>
<pre>
# apt-get install debhelper modutils kernel-package libncurses5-dev fakeroot
# apt-get install debhelper modutils kernel-package libncurses5.dev fakeroot
</pre>
</pre>


Riga 30: Riga 28:
}}
}}


==Configurazione del kernel==
==Compilazione del kernel==
Entriamo ora nella directory dei sorgenti del kernel:
Entriamo ora nella directory dei sorgenti del kernel:


Riga 87: Riga 85:
Una volta finita la configurazione, uscite e salvate i cambiamenti. A questo punto il file <tt>/usr/src/linux/.config</tt> conterr� la nostra configurazione del kernel.
Una volta finita la configurazione, uscite e salvate i cambiamenti. A questo punto il file <tt>/usr/src/linux/.config</tt> conterr� la nostra configurazione del kernel.


{{Box|Nota|Se avete gi ricompilato il vostro kernel e volete passare ad una versione pi aggiornata, ma non troppo diversa (ad esempio: 2.6.8 --> 2.6.10), non conviene rifare tutta la configurazione da capo. D'altro canto non neanche possibile usare il vecchio file di configurazione dato che nel nuovo kernel ci saranno voci in pi e o in meno e sarebbe improponibile cercarle ad una ad una.
Basta allora copiare il vecchio file di configurazione nella directory dei sorgenti del nuovo kernel e lanciare il comando:
$ make oldconfig
in questo modo verranno fatte delle domande su come configurare ''le sole nuove voci'' presenti nel kernel. Se i due kernel sono troppo diversi questo metodo non conviene pi dato che bisogna rispondere ad uno ad uno a tutte le domande sulle voci diverse. Sicuramente non conviene usarlo per il passaggio 2.4 --> 2.6.}}
== Compilazione del kernel ==
Ora � venuto il momento di cominciare la compilazione, a tal scopo useremo make-kpkg. Vediamo come utilizzare velocemente questo tool per compilare il nostro kernel personalizzato:
Ora � venuto il momento di cominciare la compilazione, a tal scopo useremo make-kpkg. Vediamo come utilizzare velocemente questo tool per compilare il nostro kernel personalizzato:


<pre>
<pre>
$ fakeroot make-kpkg --append-to-version -nomepersonalizzato --revision=1 kernel_image
$ fakeroot make-kpkg --append-to-version -nomepersonalizzato --revision=0.1 kernel_image
</pre>
</pre>


Riga 108: Riga 97:
; --appendo-to-version : serve ad aggiungere un nome personalizzato al pacchetto che verr� aggiunto dopo il numero di versione, che in questo caso divernter� ''2.6.8-nomepersonalizzato''.
; --appendo-to-version : serve ad aggiungere un nome personalizzato al pacchetto che verr� aggiunto dopo il numero di versione, che in questo caso divernter� ''2.6.8-nomepersonalizzato''.


; --revision : permette di impostare il numero di revisione del pacchetto, normalmente viene indicato con un numero intero.  
; --revision : permette di impostare il numero di revizione del pacchetto.  


; kernel_image : dice a make-kpkg di compilare l'immagine del kernel creare il pacchetto debian.
; kernel_image : dice a make-kpkg di compilare l'immagine del kernel creare il pacchetto debian.
Riga 125: Riga 114:
; --rootcmd foo : per passare un comando a make-kpkg ad esempio fakeroot o sudo
; --rootcmd foo : per passare un comando a make-kpkg ad esempio fakeroot o sudo
; CONCURRENCY_LEVEL : questa variabile e' l'omonimo di -j per make, per usarla vi basta mettere il numero intero che desiderate usare (''$ CONCURRENCY_LEVEL=4 make-kpkg --blabla ecc.ecc...'' )
; CONCURRENCY_LEVEL : questa variabile e' l'omonimo di -j per make, per usarla vi basta mettere il numero intero che desiderate usare (''$ CONCURRENCY_LEVEL=4 make-kpkg --blabla ecc.ecc...'' )


Come ultimo parametro dovremo mettere un'azione da compiere, vediamo le principali:
Come ultimo parametro dovremo mettere un'azione da compiere, vediamo le principali:
Riga 146: Riga 136:
$ ls
$ ls
...
...
kernel-image-2.6.8-nomepersonalizzato-386_1.Custom_i386.deb
kernel-image-2.6.8-nomepersonalizzato-386_10.00.Custom_i386.deb
...
...
</pre>
</pre>
Riga 152: Riga 142:
Adesso possiamo installare il pacchetto con il nostro nuovo kernel ricompilato. Diventiamo quindi root con '''su''', e digitiamo:
Adesso possiamo installare il pacchetto con il nostro nuovo kernel ricompilato. Diventiamo quindi root con '''su''', e digitiamo:
<pre>
<pre>
# dpkg -i kernel-image-2.6.8-nomepersonalizzato-386_1.Custom_i386.deb
# dpkg -i kernel-image-2.6.8-nomepersonalizzato-386_10.00.Custom_i386.deb
</pre>
</pre>


Riga 175: Riga 165:
   
   
==FAQ==
==FAQ==
===Per ricompilare un modulo non presente nei sorgenti del kernel ma pacchettizzato singolarmente per debian devo ricompilare tutto il kernel?===
===Per aggiungere un modulo al kernel devo ricompilare tutto il kernel?===
Assolutamente no.
Assolutamente no.


Basta usare la comoda utility con ''interfaccia ncurses'' '''module-assistant''' fornita da Debian per selezionare il modulo che si vuole aggiugere. Il modulo verr� automaticamente scaricato, compilato e messo in un pacchetto debian che potra essere installato o rimosso a piacimento.
Basta usare la comoda utility '''module-assistant''' fornita da Debian per selezionare il modulo che si vuole aggiugere. Il modulo verr� automaticamente scaricato, compilato e messo in un pacchetto debian che potra essere installato o rimosso a piacimento.
 
Usare '''module-assistant list-avaible''' ( potete usare il diminutivo '''la''' come sinonimo, vale anche per altri argomenti ) per la lista completa dei moduli non sviluppati dal ramo di sviluppo del kernel.


===Bisogna usare l'initrd oppure no?===
===Bisogna usare l'initrd oppure no?===
Riga 213: Riga 201:


Per usare l'initrd con i sorgenti vanilla del kernel bisogna aggiungere una patch chiamata <tt>initrd</tt>. Per maggiori informazioni vedere [http://bugs.debian.org/149236 BTS #149236]
Per usare l'initrd con i sorgenti vanilla del kernel bisogna aggiungere una patch chiamata <tt>initrd</tt>. Per maggiori informazioni vedere [http://bugs.debian.org/149236 BTS #149236]
===Posso usare make-kpkg con un kernel vanilla===
Si, <tt>make-kpkg</tt> pu essere usato sia con i sorgenti Debian del kernel di linux (preferibile) che con i sorgenti del [[kernel vanilla]]. In proposito vedere l'opzione <tt>debian</tt> nella sezione [[Debian_Kernel_howto_%28aka_make-kpkg%29#Compilazione_del_kernel|Compilazione del kernel]].
I sorgenti Debian sono contenuti nei pacchetti <tt>kernel-source-*</tt> e sono installabili come usuali pacchetti con [[APT]].
I sorgenti vanilla devono essere scaricati manualmente da [http://www.kernel.org www.kernel.org].


==Riferimenti==
==Riferimenti==
Riga 229: Riga 210:


----
----
Autore iniziale: Abortigeno
Autore iniziale: Abortigeno


Rivisto ed esteso: [[Utente:TheNoise|~ The Noise]]
Rivisto ed esteso: [[Utente:TheNoise|~ The_Noise]]
56

contributi