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

Riga 5: Riga 5:


== 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 [[I_repository_ed_il_loro_utilizzo | repository]] bootsplash:
Anzitutto, editiamo il nostro '''/etc/apt/sources.list''' aggiungendo il repository bootsplash:


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


Abbiamo poi bisogno delle librerie e/o programmi che utilizzeremo per la compilazione vera e propria:
Abbiamo poi bisogno delle librerie e/o programmi che utilizzeremo per la compilazione vera e propria:
<pre>
PACCHETTO          VERSIONE        COMANDO
binutils            2.12            ld -v
e2fsprogs          1.29            tune2fs
gcc                2.95.3          gcc --version
make                3.78            make --version
module-init-tools  0.9.10          depmod -V
procps              3.1.13          ps --version
util-linux          2.10o          fdformat --version
kernel-package
initrd-tools
libncurses-dev
</pre>
Ora possiamo procedere al download dei sorgenti del kernel:
<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]].
&Egrave; 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]
In caso si tenti questa procedura con altri kernel, &egrave; possibile scaricare la patch relativa, basta cercare in http://www.bootsplash.de/files/.
== Compilazione ==
=== Scompattazione e Patch del Sorgente ===
Bene, prima di procedere con la compilazione, &egrave; necessario applicare la patch bootsplash (vedi sopra) al nostro kernel.
Prima di tutto, scompattiamo l'archivio contenente i sorgenti.
Per fare ci, spostiamoci in '''/usr/src/''', e procediamo con la scompattazione':
<pre>
# cd /usr/src/
# tar -jxvf kernel-source-2.6.11.tar.bz2
</pre>
A questo punto verr&agrave; creata una nuova directory, '''/usr/src/kernel-source-2.6.11/'''.
Spostiamoci dunque nella nuova directory e applichiamo la patch che abbiamo scaricato:
<pre>
# cd /usr/src/kernel-source-2.6.11
# patch -p1 < /usr/src/bootsplash-3.1.4-sp3-2.6.8.1.diff
</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.
A questo punto, possiamo procedere con la compilazione del kernel.
=== Configurazione del Kernel ===
Anzitutto, configuriamo il kernel stesso:
<pre># make menuconfig</pre>
Vediamo cosa selezionare, brevemente.
Selezioniamo il nostro modello di processore:
<pre>
| Processor type and features
|--- Processor family (Athlon/Duron/K7)
</pre>
Attiviamo qualche altra opzione per il boot:
<pre>
| Device Drivers
|--- Block devices
|------ <*> Loopback device support
|------ <*> RAM disk support
|------ (8192) Default RAM disk size (kbytes)
|------ [*]  Initial RAM disk (initrd) support
</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 [[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 compilato, 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:
'''make-kpkg''' uno strumento che ci aiuta a creare kernel pacchettizzati in file binari, con estensione *.deb.
: --initrd - Crea il RAMDisk iniziale per mostrare l'immagine al boot;
: -append-to-version -splash - 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''.
: binary - 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 /usr/src un pacchetto il cui nome sar&agrave; qualcosa di molto simile a '''kernel-image-2.6.11-splash_10.00.Custom_i386.deb'''.
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&ograve; 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 '''/etc/apt/sources.list'''.
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) &egrave; 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&agrave; una finestra per la configurazione, che ci chieder&agrave; quale immagine utilizzare per il nostro boot.
Selezioniamo l'immagine creata in precedenza, cio&egrave; '''initrd.img-2.6.11-splash'''.
=== Configurazione del Bootloader ===
A questo punto siamo pronti per modificare il nostro bootloader. Facciamo un esempio per i due bootloader pi&ugrave; comuni: GRUB e LiLO:
Configurazione per GRUB ('''/boot/grub/menu.lst''')
<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 ('''/etc/lilo.conf''')
<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, &egrave; necessario aggiornare la sua configurazione con il seguente comando (dopo la modifica di /etc/lilo.conf):
<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!
----
[[User:Hanska|Hanska]] 20:32, 14 May 2005 (CEST)
10

contributi