Old:Compilazione Kernel 2.6.11 con Bootsplash: differenze tra le versioni

m
Nessun oggetto della modifica
 
(63 versioni intermedie di 14 utenti non mostrate)
Riga 1: Riga 1:
{{Old}}
== Introduzione ==
== Introduzione ==


Questo how-to spiegher� il procedimento da seguire per compilare (alla debian-way) un kernel 2.6.11 con la patch bootsplash.
Questo how-to spiegherà il procedimento da seguire per compilare, alla debian-way, un kernel 2.6.11 con la patch bootsplash.




== Software richiesto ==
== Software richiesto ==
In ambiente Debian, ci viene in aiuto il tool '''[[APT]]''' (Advanced Package Tool), che ci fornir� tutto (o quasi) ci� di cui abbiamo bisogno.
In ambiente Debian, ci viene in aiuto il tool '''[[APT]]''' (Advanced Package Tool), che ci fornirà tutto (o quasi) ciò di cui abbiamo bisogno.
Anzitutto, editiamo il nostro '''/etc/apt/sources.list''' aggiungendo il repository bootsplash:
Anzitutto, editiamo il nostro <code>/etc/apt/sources.list</code> aggiungendo il [[I_repository_ed_il_loro_utilizzo | repository]] bootsplash:


<pre>deb http://www.bootsplash.de/files/debian/ unstable main</pre>
<pre>deb http://www.bootsplash.de/files/debian/ unstable main</pre>
Riga 13: Riga 14:


<pre>
<pre>
PACCHETTO          VERSIONE       COMANDO
PACCHETTO          VERSIONE MINIMA    COMANDO
binutils            2.12           ld -v
 
e2fsprogs          1.29           tune2fs
binutils            2.12               ld -v
gcc                2.95.3         gcc --version
e2fsprogs          1.29               tune2fs
make                3.78           make --version
gcc                2.95.3             gcc --version
module-init-tools  0.9.10         depmod -V
make                3.78               make --version
procps              3.1.13         ps --version
module-init-tools  0.9.10             depmod -V
util-linux          2.10o           fdformat --version
procps              3.1.13             ps --version
util-linux          2.10o               fdformat --version
kernel-package
kernel-package
initrd-tools
initrd-tools
Riga 30: Riga 32:
<pre># apt-get install kernel-source-2.6.11</pre>
<pre># apt-get install kernel-source-2.6.11</pre>


Con questo comando, [[APT]] scaricher� un archivio .tar.bz2 in '''/usr/src/''', contenente proprio il sorgente del [[kernel]].
Con questo comando, [[APT]] scaricherà un archivio <code>.tar.bz2</code> in <code>/usr/src/</code>, contenente proprio il sorgente del [[kernel]].


&Egrave; inoltre necessario scaricare una patch apposita da applicare al kernel:
È inoltre necessario scaricare una patch apposita da applicare al kernel:


[http://www.bootsplash.de/files/bootsplash-3.1.4-2.6.11.diff Patch per Kernel 2.6.11]
[http://www.bootsplash.de/files/bootsplash-3.1.6-2.6.11.diff Patch per Kernel 2.6.11]


In caso si tenti questa procedura con altri kernel, &egrave; possibile scaricare la patch relativa, basta cercare in http://www.bootsplash.de/files/.
In caso si tenti questa procedura con altri kernel, oppure, essendo la pagina soggetta ad aggiornamento, il file risulti inesistente, è possibile scaricare la patch di interesse cercandola in http://www.bootsplash.de/files/


''formato: bootsplash-versione_patch-versione_kernel.diff''


== Compilazione ==
== Compilazione ==


Bene, prima di procedere con la compilazione, &egrave; necessario applicare la patch bootsplash (vedi sopra) al nostro kernel.
=== Scompattazione e Patch del Sorgente ===
 
Bene, prima di procedere con la compilazione, è necessario applicare la patch bootsplash (vedi sopra) al nostro kernel.


Prima di tutto, scompattiamo l'archivio contenente i sorgenti.
Prima di tutto, scompattiamo l'archivio contenente i sorgenti.


Per fare ci�, spostiamoci in '''/usr/src/''', e procediamo con la scompattazione':
Per fare ciò, spostiamoci in <code>/usr/src/</code>, e procediamo con la scompattazione:


<pre>
<pre>
Riga 52: Riga 57:
</pre>
</pre>


A questo punto verr&agrave; creata una nuova directory, '''/usr/src/kernel-source-2.6.11/'''.
A questo punto verrà; creata una nuova directory, <code>/usr/src/kernel-source-2.6.11/</code>.


Spostiamoci dunque nella nuova directory e applichiamo la patch che abbiamo scaricato:
Spostiamoci dunque nella nuova directory e applichiamo la patch che abbiamo scaricato:


<pre>
<pre>
# cd /usr/stc/kernel-source-2.6.11
# cd /usr/src/kernel-source-2.6.11
# patch -p1 < /usr/src/bootsplash-3.1.4-sp3-2.6.8.1.diff
# patch -p1 < /usr/src/bootsplash-3.1.6-2.6.11.diff
</pre>
</pre>


Non dovrebbe essere segnalato alcun errore nella patch a questo punto. In caso contrario, rimuoviamo la directory dei sorgenti e ripetiamo la procedura dall'inizio. &Egrave; importante applicare la patch bootsplash prima di qualunque altra patch, cio&egrave; sul kernel debian originale preso da APT.
Non dovrebbe essere segnalato alcun errore nella patch a questo punto. In caso contrario, rimuoviamo la directory dei sorgenti e ripetiamo la procedura dall'inizio. È importante applicare la patch bootsplash prima di qualunque altra patch, cioè sul kernel debian originale preso da APT.


A questo punto, possiamo procedere con la compilazione del kernel.
A questo punto, possiamo procedere con la compilazione del kernel.
=== Configurazione del Kernel ===


Anzitutto, configuriamo il kernel stesso:
Anzitutto, configuriamo il kernel stesso:
Riga 77: Riga 84:
</pre>
</pre>


Attiviamo la CPU-Scaling (cos da ottimizzare il lavoro del processore):
<pre>
| Power management options (ACPI, APM)
|--- CPU Frequency scaling
|------ [*] CPU Frequency scaling
</pre>


Attiviamo qualche altra opzione:
Attiviamo qualche altra opzione per il boot:


<pre>
<pre>
Riga 94: Riga 94:
|------ (8192) Default RAM disk size (kbytes)
|------ (8192) Default RAM disk size (kbytes)
|------ [*]  Initial RAM disk (initrd) support
|------ [*]  Initial RAM disk (initrd) support
|------ [*] Support for Large Block Devices</pre>
</pre>
 
 
Attiviamo le opzioni necessarie a mostrare la schermata di boot:
 
<pre>
| Device Drivers
|--- Graphics support
|------ <M>  VGA 16-color graphics support
|------ <*>  VESA VGA graphics support
|------ Console display driver support
|--------- [*] VGA text console
|--------- [*]  Video mode selection support
|--------- <*> Framebuffer Console support
|------ Bootsplash configuration
|--------- [*] Bootup splash screen
</pre>
 
Ricordiamoci ovviamente di indicare, tra i [http://it.wikipedia.org/wiki/Filesystem Filesystem], quelli che utilizziamo sulla nostra macchina in aggiunta a quello ''ROM'', che viene utilizzato per le immagini initrd, le schede che abbiamo, etc.
 
Se stiamo ricompilando un kernel, ovviamente sono cose che non si dovrebbero dimenticare!!!
 
=== Compilazione con make-kpkg (debian-way) ===
 
Ora che il kernel è configurato, possiamo procedere alla compilazione (debian-way):
 
<pre>
# make-kpkg clean
# make-kpkg --initrd --append-to-version -splash binary
</pre>
 
Prendiamo in considerazione l'ultimo comando:
 
<code>'''make-kpkg'''</code>: è uno strumento che ci aiuta a creare kernel pacchettizzati in file binari, con estensione <code>.deb</code>.
: <code>--initrd</code> crea il RAMDisk iniziale per mostrare l'immagine al boot;
: <code>--append-to-version -splash</code>: aggiunge la stringa '-splash' alla versione del kernel che stiamo creando. In questo modo, se stiamo già utilizzando un kernel 2.6.11, il nostro nuovo kernel sarà il '2.6.11-splash', così in caso di problemi al boot potremo sempre tornare al kernel ''funzionante'';
: <code>binary</code>: questo argomento specifica il ''target'' della nostra compilazione:
 
<pre>
binary          specifica che vogliamo compilare kernel_image, kernel_doc, kernel_headers
                e kernel_source
 
kernel_source    questo target produce un pacchetto .deb contenente i sorgenti del nuovo
                kernel che stiamo compilando
 
kernel_headers  questo target produce un pacchetto .deb contenente gli header inclusi nel
                nuovo kernel
 
kernel_doc      questo target produce un pacchetto .deb contenente la documentazione
                relativa al nuovo kernel
 
kernel_image    questo target produce un pacchetto .deb contenente il kernel in formato
                binario, con tutti i moduli specificati nella configurazione
</pre>
 
Una volta terminata la compilazione, troveremo in <code>/usr/src</code> un pacchetto il cui nome sarà qualcosa di molto simile a <code>'''kernel-image-2.6.11-splash_10.00.Custom_i386.deb'''</code>.
 
A questo punto possiamo installare il nostro nuovo kernel!
 
<pre>
# dpkg -i /usr/src/kernel-image-2.6.11-splash_10.00.Custom_i386.deb
</pre>
 
Controlliamo la presenza del RAMDisk iniziale. Per fare ciò eseguiamo questo comando:
 
<pre>
# ls /boot/initrd.img-2.6.11*
</pre>
 
Se il comando restituisce un errore, creiamo il nostro RAMDisk:
 
<pre>
# cd /boot/
# mkinitrd -o /boot/initrd.img-2.6.11-splash 2.6.11-splash
</pre>
 
== Installazione di Bootsplash ==
 
In questa fase ci viene in aiuto quel repository che abbiamo aggiunto all'inizio al nostro <code>/etc/apt/sources.list</code>.
 
Aggiorniamo i nostri archivi APT ed installiamo Bootsplash:
 
<pre>
# apt-get update
# apt-get install bootsplash sysv-rc-bootsplash bootsplash-theme-tuxinfo-debian
</pre>
Attenzione! L'ultimo pacchetto (bootsplash-theme-tuxinfo-debian) è il '''tema che vedremo al boot'''. Per vedere quali temi sono disponibili, diamo il seguente comando:
 
<pre>
# apt-cache search bootsplash-theme
</pre>
 
(Suggerimento: conviene inviare l'output in pipe a ''more'' o ''less'', dato che esistono numerosi temi!)
 
Scegliamo in questo caso il tema "tuxinfo-debian".
 
Durante l'installazione comparirà una finestra per la configurazione, che ci chiederà quale immagine utilizzare per il nostro boot.
 
Selezioniamo l'immagine creata in precedenza, cioè <code>'''initrd.img-2.6.11-splash'''</code>.
 
=== Errore di post-installazione sysv-rc-bootsplash ===
Nel caso in cui sysv-rc-bootsplash non riesca a patchare gli script di avvio, otterremo un errore del tipo:
<pre>Testing if patches apply cleanly...
4 out of 5 hunks FAILED -- saving rejects to file /etc/init.d/rcS.rej
Patches would not apply cleanly.</pre>
In questo caso dobbiamo ovviare al problema manualmente, poiché il pacchetto non riesce a applicare le modifiche necessarie ad abilitare la progress-bar di bootsplash.
 
Procediamo come segue:
<pre># mkdir /tmp/patch
# cp /etc/init.d/rc /etc/init.d/rc.originale
# cp /etc/init.d/rcS /etc/init.d/rcS.originale
# wget http://ftp.it.debian.org/debian/pool/main/s/sysvinit/sysv-rc_2.86.ds1-1_all.deb
# dpkg --extract sysv-rc_2.86.ds1-1_all.deb /tmp/patch
# cp /tmp/patch/etc/init.d/rc /etc/init.d/rc
# cp /tmp/patch/etc/init.d/rcS /etc/init.d/rcS
# apt-get install sysv-rc-bootsplash</pre>
 
In poche parole quel che abbiamo fatto non è stato altro che fare una copia di backup degli scripts esistenti, scaricare il vecchio pacchetto sysv-rc (con cui la patch funziona), copiare gli script dal pacchetto alla directory corretta (senza installarlo effettivamente) e quindi applicare la patch.
 
=== Configurazione del Bootloader ===
 
A questo punto siamo pronti per modificare il nostro bootloader. Facciamo un esempio per i due bootloader più comuni: GRUB e LiLO:
 
Configurazione per GRUB (<code>/boot/grub/menu.lst</code>)
 
{{Warningbox| Le seguenti indicazioni valgono '''solo''' per GRUB e non per GRUB2}}
 
<pre>
title          Debian GNU/Linux, kernel 2.6.11-splash
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.11-splash root=/dev/hda1 ro bootkbd=it
initrd          /boot/initrd.img-2.6.11-splash
savedefault
boot
</pre>
 
Configurazione per LiLO (<code>/etc/lilo.conf</code>)
<pre>
image=/boot/vmlinuz-2.6.11-splash
        label="2.6.11-splash"
        initrd=/boot/initrd.img-2.6.11-splash
        append="splash=silent"
</pre>
 
Attenzione! Se usate LiLO come bootloader, è necessario aggiornare la sua configurazione con il seguente comando (dopo la modifica di <code>/etc/lilo.conf</code>):
<pre>
# lilo
</pre>
 
== Conclusioni ==
 
Bene, adesso siamo in grado di riavviare la nostra macchina e gustarci un bel bootsplash!
Nel caso vogliate cambiare tema, dopo aver installato il relativo pacchetto '''bootsplash-theme-*''', basta fare:
 
<pre>
# dpkg-reconfigure bootsplash
</pre>
 
Bisogna poi selezionare il nuovo tema che abbiamo installato, di nuovo initrd.img-2.6.11-splash come initrd, ricontrolliamo LiLO / GRUB e riavviamo.
 
Happy Debian!
 
{{Autori
|Autore=[[User:Hanska|Hanska]] 20:32, 14 May 2005 (CEST)
|Estesa_da=
:[[Utente:Keltik|keltik]] 05:59, 4 Lug 2006 (EDT)
|Numero_revisori=0
}}
3 581

contributi