Debian Kernel Howto: differenze tra le versioni

→‎FAQ: aggiunta vanilla kernel
(debianized)
(→‎FAQ: aggiunta vanilla kernel)
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 9: Riga 11:


<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 28: Riga 30:
}}
}}


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


Riga 85: Riga 87:
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=0.1 kernel_image
$ fakeroot make-kpkg --append-to-version -nomepersonalizzato --revision=1 kernel_image
</pre>
</pre>


Riga 97: Riga 108:
; --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 revizione del pacchetto.  
; --revision : permette di impostare il numero di revisione del pacchetto, normalmente viene indicato con un numero intero.  


; 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 114: Riga 125:
; --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 136: Riga 146:
$ ls
$ ls
...
...
kernel-image-2.6.8-nomepersonalizzato-386_10.00.Custom_i386.deb
kernel-image-2.6.8-nomepersonalizzato-386_1.Custom_i386.deb
...
...
</pre>
</pre>
Riga 142: Riga 152:
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_10.00.Custom_i386.deb
# dpkg -i kernel-image-2.6.8-nomepersonalizzato-386_1.Custom_i386.deb
</pre>
</pre>


Riga 165: Riga 175:
   
   
==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 183: Riga 198:


===Ma se io devo usare l'initrd assolutamente?===
===Ma se io devo usare l'initrd assolutamente?===
Dovrai aggiungere nel file /etc/mkinitrd/modules il nome dei moduli da inserire nell'immagine di initrd.
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:
 
<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]
 
===Posso usare make-kpkg con un kernel vanilla===
No, '''make-kpkg''' non pu� essere usato con i sorgenti del [[kernel vanilla]] ma solo con i sorgenti Debian del kernel di linux.
 
Questi sorgenti sono contenuti nei pacchetti <tt>kernel-source-*</tt> e sono installabili come usuali pacchetti con [[APT]].


==Riferimenti==
==Riferimenti==
Riga 193: Riga 225:


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


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

contributi