Debian Kernel Howto: differenze tra le versioni

Nessun cambiamento nella dimensione ,  29 giu 2005
debianized
(debianized)
(debianized)
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''.


Questa guida illustrer� il metodo debian di compilare il kernel. Questo metodo consite nel creare un pacchetto debian del kernel compilato per una facile installazione/disinstallazione.
Questa guida illustrer� il metodo debian di compilare il kernel. Questo metodo consite nel creare un pacchetto debian del kernel compilato per una facile installazione/disinstallazione.
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 aggiungere un modulo al kernel devo ricompilare tutto il kernel?===
Assolutamente no.
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.
===Bisogna usare l'initrd oppure no?===
===Bisogna usare l'initrd oppure no?===
La risposta breve �: no non usatelo.
La risposta breve �: no non usatelo.
Riga 198: Riga 183:


===Ma se io devo usare l'initrd assolutamente?===
===Ma se io devo usare l'initrd assolutamente?===
Per usare l'intrd con i sorgenti debian del kernel si deve aggiungere staticamente nella configurazione del kernel il supporto per il filesystem usato nell'immagine del ram disk. In debian si usa di default il '''cramfs''', attivabile alla voce:
Dovrai aggiungere nel file /etc/mkinitrd/modules il nome dei moduli da inserire nell'immagine di initrd.
 
<pre>
File systems  --->
    Miscellaneous filesystems  --->
        <*> Compressed ROM file system support
</pre>
 
Se si vuole usare un'altro filesystem basta impostarlo in '''/etc/mkinitrd/mkinitrd.conf'''.
 
Si dovranno inoltre aggiungere al file '''/etc/mkinitrd/modules''' il nome dei moduli da inserire nell'immagine di initrd.
 
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]


==Riferimenti==
==Riferimenti==
Riga 220: Riga 193:


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


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

contributi