Debian Kernel Howto: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
m
→‎Bisogna usare l'initrd oppure no?: commentati link obsoleti
(fakeroot necessario con make-kpkg)
m (→‎Bisogna usare l'initrd oppure no?: commentati link obsoleti)
 
(11 versioni intermedie di 4 utenti non mostrate)
Riga 1: Riga 1:
{{Versioni compatibili|}}
{{Versioni compatibili|Wheezy|Jessie|Testing_2015|Unstable_2015}}
== Introduzione ==
== Introduzione ==
In Debian, il [[kernel]] Linux può essere ricompilato con il metodo standard (valido con tutte le distribuzioni, e quindi anche con Debian) oppure nel cosiddetto [[Debian-way]] (traduzione: ''metodo Debian'' o ''alla Debian'').
In Debian, il [[kernel]] Linux può essere ricompilato con il metodo standard (valido con tutte le distribuzioni, e quindi anche con Debian) oppure nel cosiddetto [[Debian-way]] (traduzione: ''metodo Debian'' o ''alla Debian'').
Riga 9: Riga 9:
== Installazione dei pacchetti ==
== Installazione dei pacchetti ==


Avremo innanzi tutto bisogno di alcuni pacchetti di base per compilare e pacchettizzare un kernel:
Avremo innanzitutto bisogno di alcuni pacchetti di base per compilare e pacchettizzare un kernel:


<pre>
<pre>
Riga 47: Riga 47:
$ tar -xvf /usr/src/linux-source-3.19.tar.xz -C .
$ tar -xvf /usr/src/linux-source-3.19.tar.xz -C .
</pre>
</pre>
{{Box|Nota|Fino alla versione 3.9 i sorgenti del kernel sono contenuti in un file compresso con estensione .tar.bz2, per cui il comando cambierà così:<pre>$ tar -xjvf /usr/src/linux-source-3.9.tar.bz2 -C .</pre>o equivalente in base al nome del file compresso.}}
A fine operazione verrà creata una nuova directory:
A fine operazione verrà creata una nuova directory:
<pre>
<pre>
Riga 87: Riga 88:


* [[esempio configurazione kernel]] nel nostro Wiki, per un semplice esempio;
* [[esempio configurazione kernel]] nel nostro Wiki, per un semplice esempio;
* [http://a2.pluto.it/a286.htm#almltitle441 elementi della configurazione] per una descrizione più dettagliata delle varie voci. Questo è un capitolo della monumentale opera [http://a2.pluto.it/appunti_di_informatica_libera.htm Appunti di Informatica Libera], per la quale tutti noi siamo grati all'autore '''Daniele Giacomini''';
* [http://a2.pluto.it/a2/a219.htm#almltitle285 elementi della configurazione] per una descrizione più dettagliata delle varie voci. Questo è un capitolo della monumentale opera [http://a2.pluto.it/a2/ Appunti di Informatica Libera], per la quale tutti noi siamo grati all'autore '''Daniele Giacomini''';
* [http://kernel.xc.net/ Linux Kernel Configuration Archive]: potrete cercare le varie opzioni di configurazione di ogni versione del kernel.
* [http://kernel.xc.net/ Linux Kernel Configuration Archive]: potrete cercare le varie opzioni di configurazione di ogni versione del kernel.


In bocca al lupo con la configurazione ;-).
In bocca al lupo con la configurazione ;-).


Una volta finita la configurazione, uscite e salvate i cambiamenti. A questo punto il file <code>/~/sorgenti/linux-source-3.19/.config</code> conterrà la nostra configurazione del kernel.
Una volta finita la configurazione, uscite e salvate i cambiamenti. A questo punto il file <code>~/sorgenti/linux-source-3.19/.config</code> 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.30 --> 2.6.32), 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.
{{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.30 --> 2.6.32), 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.
Riga 117: Riga 118:
Per completezza si segnalano le altre interfacce grafiche che è possibile usare per configurare il kernel al posto di <code>make menuconfig</code>.
Per completezza si segnalano le altre interfacce grafiche che è possibile usare per configurare il kernel al posto di <code>make menuconfig</code>.


;<code>make xconfig</code>: per usare una interfaccia grafica '''QT''' per la configurazione (servirà il [[pacchetto]] <code>libqt4-dev</code>);
;<code>make xconfig</code>: per usare una interfaccia grafica '''QT''' per la configurazione (serviranno i [[pacchetto|pacchetti]] <code>libqt4-dev</code> e <code>pkg-config</code>);
;<code>make gconfig</code>: per usare una interfaccia grafica '''GTK''' per la configurazione.
;<code>make gconfig</code>: per usare una interfaccia grafica '''GTK''' per la configurazione.


Riga 129: Riga 130:
$ fakeroot make-kpkg --append-to-version -nomepersonalizzato --revision=1 kernel_image
$ fakeroot make-kpkg --append-to-version -nomepersonalizzato --revision=1 kernel_image
</pre>
</pre>
{{Box|Nota|Dopo la versione 3.0 del kernel make-kpkg è  considerato  deprecato il supporto è stato mantentenuto per  retrocompatibilità il comando da dare ora è il seguente:
{{Box|Nota|Dopo la versione 3.0 del kernel make-kpkg è  considerato  deprecato il supporto è stato mantenuto per  retrocompatibilità il comando da dare ora è il seguente:
<pre>$ make KDEB_PKGVERSION=1.0 deb-pkg
<pre>$ make KDEB_PKGVERSION=1.0 deb-pkg
</pre> Per il nomepersonalizzato si deve modificare il valore di CONFIG_LOCALVERSION del file .config (il file di configurazione che si trova nella cartella del sorgente) con il valore -nomepersonalizzato.
</pre> Per il nomepersonalizzato si deve modificare il valore di CONFIG_LOCALVERSION del file .config (il file di configurazione che si trova nella cartella del sorgente) con il valore -nomepersonalizzato.
Riga 193: Riga 194:
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 linux-image-3.19.1_nomepersonalizzato-_1-amd64.deb
# dpkg -i linux-image-3.19.1_nomepersonalizzato_1_amd64.deb
</pre>
</pre>


Riga 250: Riga 251:
Con un editor di testo è necessario decommentare l'opzione <pre>#GRUB_DISABLE_LINUX_UUID=true</pre> rimuovendo il simbolo "#". Il passaggio conclusivo consiste nell'eseguire <pre># update-grub</pre> per aggiornare la configurazione di grub.<br/>
Con un editor di testo è necessario decommentare l'opzione <pre>#GRUB_DISABLE_LINUX_UUID=true</pre> rimuovendo il simbolo "#". Il passaggio conclusivo consiste nell'eseguire <pre># update-grub</pre> per aggiornare la configurazione di grub.<br/>


Per un kernel ricompilato, l'initrd è generalmente inutile e rende l'avvio leggermente più lento. È anche facile sbagliare se non attivate le giuste opzioni nel kernel (vedi [[#Ma se io devo usare l'initrd assolutamente?|FAQ successiva]]), in tal caso otterreste un <code>kernel panic</code> all'avvio. L'initrd serve soprattutto per i kernel ufficiali delle distribuzioni che devono supportare tutti i controller esistenti e una gran varietà di filesystem. Sarebbe assurdo compilare tutti questi supporti staticamente e quindi vengono inseriti come moduli nel ram disk. L'initrd è necessario anche se si vuole usare un bootsplash, ma questa è un'altra storia:
Per un kernel ricompilato, l'initrd è generalmente inutile e rende l'avvio leggermente più lento. È anche facile sbagliare se non attivate le giuste opzioni nel kernel (vedi [[#Ma se io devo usare l'initrd assolutamente?|FAQ successiva]]), in tal caso otterreste un <code>kernel panic</code> all'avvio. L'initrd serve soprattutto per i kernel ufficiali delle distribuzioni che devono supportare tutti i controller esistenti e una gran varietà di filesystem. Sarebbe assurdo compilare tutti questi supporti staticamente e quindi vengono inseriti come moduli nel ram disk. <--


* [[Compilazione Kernel 2.6.11 con Bootsplash]]
*** ATTENZIONE *** PARTE COMMENTATA *** ATTENZIONE ***
* [[Kernel2.6.10 - Framebuffer - Gensplash Patch]]
 
L'initrd è necessario anche se si vuole usare un bootsplash, ma questa è un'altra storia:
 
* [[Old:Compilazione Kernel 2.6.11 con Bootsplash]]
* [[Old:Kernel2.6.10 - Framebuffer - Gensplash Patch]]
 
*** FINE PARTE COMMENTATA *** -->


La risposta lunga è quindi no, non usate l'initrd quando questo non sia strettamente necessario.
La risposta lunga è quindi no, non usate l'initrd quando questo non sia strettamente necessario.
Riga 339: Riga 346:
* [http://www.debian.org/doc/manuals/reference/ch-kernel.it.html Manuale di Riferimento Debian: Capitolo 7 - Il kernel Linux su Debian]
* [http://www.debian.org/doc/manuals/reference/ch-kernel.it.html Manuale di Riferimento Debian: Capitolo 7 - Il kernel Linux su Debian]
* [http://kernel-handbook.alioth.debian.org/index.html Debian Linux Kernel Handbook ]: ottimo documento sulla gestione dei kernel Debian delle relative patch (''in inglese'').
* [http://kernel-handbook.alioth.debian.org/index.html Debian Linux Kernel Handbook ]: ottimo documento sulla gestione dei kernel Debian delle relative patch (''in inglese'').
* [http://a2.pluto.it/a2/a218.htm#almltitle282 Appunti di informatica Libera: Kernel Linux]: Il capitolo dedicato al kernel della monumentale opera di ''Daniele Giacomini'' contiene sia istruzioni generiche che istruzioni per Debian. Inoltre c'è una descrizione dettagliata della configurazione delle varie voci del kernel!
* [http://a2.pluto.it/a2/a219.htm#almltitle282 Appunti di informatica Libera: Kernel Linux]: Il capitolo dedicato al kernel della monumentale opera di ''Daniele Giacomini'' contiene sia istruzioni generiche che istruzioni per Debian. Inoltre c'è una descrizione dettagliata della configurazione delle varie voci del kernel!
* [http://kernel.xc.net/ Linux Kernel Configuration Archive]: database che permette di ricercare tra le voci di configurazione (e le loro descrizioni) per varie versioni di kernel.
* [http://kernel.xc.net/ Linux Kernel Configuration Archive]: database che permette di ricercare tra le voci di configurazione (e le loro descrizioni) per varie versioni di kernel.


Riga 349: Riga 356:
:[[Utente:TheNoise|~ The Noise]]
:[[Utente:TheNoise|~ The Noise]]
: [[Utente:Lorenzoz|Lorenzoz]] 09:57, 11 ott 2014 (CEST)
: [[Utente:Lorenzoz|Lorenzoz]] 09:57, 11 ott 2014 (CEST)
:[[Utente:Oscarandrea|Oscarandrea]]  14:50, 8 giu 2015 (CEST)
|Estesa_da=
|Estesa_da=
:[[Utente:TheNoise|~ The Noise]]
:[[Utente:TheNoise|~ The Noise]]
:[[Utente:fw_crocodile| fw_crocodile]]
:[[Utente:fw_crocodile| fw_crocodile]]
:[[Utente:Lorenzoz|Lorenzoz]] 09:57, 11 ott 2014 (CEST)
:[[Utente:Lorenzoz|Lorenzoz]] 09:57, 11 ott 2014 (CEST)
|Numero_revisori=2
|Numero_revisori=3
}}
}}


[[Categoria:Linux]]
[[Categoria:Linux]]
3 581

contributi

Menu di navigazione