1 760
contributi
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 9: | Riga 11: | ||
<pre> | <pre> | ||
# apt-get install debhelper modutils kernel-package libncurses5 | # apt-get install debhelper modutils kernel-package libncurses5-dev fakeroot | ||
</pre> | </pre> | ||
Riga 28: | Riga 30: | ||
}} | }} | ||
== | ==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= | $ 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 | ; --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- | 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- | # 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 | ===Per aggiungere un modulo devo ricompilare tutto il kernel?=== | ||
Dipende. | |||
Se il modulo fa parte del kernel debian (cio� il suo sorgente � contenuto nel pacchetto <tt>kernel-source</tt> del kernel) allora bisogna ricompilare il kernel. Tenete presente, tuttavia, che i kernel binari debian includono gi� la maggior parte dei moduli presenti nei sorgenti del kernel. Per caricarli basta usare: | |||
# modprobe ''nomemodulo'' | |||
Se il sorgente del modulo � invece pacchettizzato singolarmente (il nome di questi pacchetti comincia per <tt>module-source</tt>) '''non � necessario''' ricompilare il kernel. | |||
Debian ci fornisce la comoda utility '''module-assistant''' che permette di scaricare, compilare e pacchettizzare un modulo del kernel. Basta lanciare il comando | |||
# m-a | |||
e una interfaccia ''dialog'' ci guider� passo passo. | |||
Si pu� usare il comando <tt>module-assistant list-avaible</tt> (o il diminutivo <tt>m-a la</tt>) per ottenere la lista completa dei moduli installabili con module-assistant. Per le altre innumerevoli opzioni potete leggere la pagina di manuale (parzialmente) tradotta in italiano: | |||
* [[Pagina di manuale di module-assistant]] | |||
===Bisogna usare l'initrd oppure no?=== | ===Bisogna usare l'initrd oppure no?=== | ||
Riga 201: | Riga 224: | ||
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 210: | Riga 240: | ||
---- | ---- | ||
Autore iniziale: Abortigeno | Autore iniziale: Abortigeno | ||
Rivisto ed esteso: [[Utente:TheNoise|~ | Rivisto ed esteso: [[Utente:TheNoise|~ The Noise]] |
contributi