806
contributi
m (firma) |
|||
Riga 1: | Riga 1: | ||
== Introduzione == | |||
Questo how-to spiegherà il procedimento da seguire per compilare (alla debian-way) un kernel 2.6.11 con la patch bootsplash. | |||
== 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. | |||
Anzitutto, editiamo il nostro '''/etc/apt/sources.list''' aggiungendo il [[I_repository_ed_il_loro_utilizzo | repository]] bootsplash: | |||
<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: | |||
<pre> | |||
PACCHETTO VERSIONE MINIMA 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]]. | |||
È inoltre necessario scaricare una patch apposita da applicare al kernel: | |||
[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, 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 == | |||
=== 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. | |||
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à 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.6-2.6.11.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. È 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. | |||
=== 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 [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: | |||
'''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à 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ò 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) è 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è '''initrd.img-2.6.11-splash'''. | |||
=== Errore di post-installazione sysv-rc-bootsplash === | |||
Nel caso in cui sysv-rc-bootsplash non riesca a patchare gli scripts 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 scripts 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 ('''/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, è 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)<br /> | |||
Verificato e esteso: [[Utente:Keltik|keltik]] 05:59, 4 Lug 2006 (EDT) | |||
[[Categoria:Kernel]] |
contributi