Old:Compilazione Kernel 2.6.11 con Bootsplash: differenze tra le versioni
m (→Scompattazione e Patch del Sorgente: typo) |
m (ha spostato Compilazione Kernel 2.6.11 con Bootsplash a Old:Compilazione Kernel 2.6.11 con Bootsplash) |
||
(32 versioni intermedie di 12 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{Old}} | |||
== Introduzione == | == Introduzione == | ||
Questo how-to | 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 | 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 | 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 | PACCHETTO VERSIONE MINIMA COMANDO | ||
binutils 2.12 | |||
e2fsprogs 1.29 | binutils 2.12 ld -v | ||
gcc 2.95.3 | e2fsprogs 1.29 tune2fs | ||
make 3.78 | gcc 2.95.3 gcc --version | ||
module-init-tools 0.9.10 | make 3.78 make --version | ||
procps 3.1.13 | module-init-tools 0.9.10 depmod -V | ||
util-linux 2.10o | 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]] | Con questo comando, [[APT]] scaricherà un archivio <code>.tar.bz2</code> in <code>/usr/src/</code>, contenente proprio il sorgente del [[kernel]]. | ||
È inoltre necessario scaricare una patch apposita da applicare al kernel: | |||
[http://www.bootsplash.de/files/bootsplash-3.1. | [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, | 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 == | ||
Riga 43: | Riga 46: | ||
=== Scompattazione e Patch del Sorgente === | === Scompattazione e Patch del Sorgente === | ||
Bene, prima di procedere con la compilazione, | 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 | Per fare ciò, spostiamoci in <code>/usr/src/</code>, e procediamo con la scompattazione: | ||
<pre> | <pre> | ||
Riga 54: | Riga 57: | ||
</pre> | </pre> | ||
A questo punto | 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: | ||
Riga 60: | Riga 63: | ||
<pre> | <pre> | ||
# cd /usr/src/kernel-source-2.6.11 | # cd /usr/src/kernel-source-2.6.11 | ||
# patch -p1 < /usr/src/bootsplash-3.1. | # 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. | 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. | ||
Riga 109: | Riga 112: | ||
</pre> | </pre> | ||
Ricordiamoci ovviamente di indicare, tra i [ | 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!!! | Se stiamo ricompilando un kernel, ovviamente sono cose che non si dovrebbero dimenticare!!! | ||
=== Compilazione con make-kpkg (debian-way) === | === Compilazione con make-kpkg (debian-way) === | ||
Ora che il kernel | Ora che il kernel è configurato, possiamo procedere alla compilazione (debian-way): | ||
<pre> | <pre> | ||
# make-kpkg clean | # make-kpkg clean | ||
# make-kpkg --initrd -append-to-version -splash binary | # make-kpkg --initrd --append-to-version -splash binary | ||
</pre> | </pre> | ||
Prendiamo in considerazione l'ultimo comando: | Prendiamo in considerazione l'ultimo comando: | ||
'''make-kpkg''' | <code>'''make-kpkg'''</code>: è uno strumento che ci aiuta a creare kernel pacchettizzati in file binari, con estensione <code>.deb</code>. | ||
: --initrd | : <code>--initrd</code> crea il RAMDisk iniziale per mostrare l'immagine al boot; | ||
: -append-to-version -splash | : <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''; | ||
: binary | : <code>binary</code>: questo argomento specifica il ''target'' della nostra compilazione: | ||
<pre> | <pre> | ||
binary specifica che vogliamo compilare kernel_image, kernel_doc, kernel_headers e kernel_source | binary specifica che vogliamo compilare kernel_image, kernel_doc, kernel_headers | ||
kernel_source questo target produce un pacchetto .deb contenente i sorgenti del nuovo kernel che stiamo compilando | e kernel_source | ||
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_source questo target produce un pacchetto .deb contenente i sorgenti del nuovo | ||
kernel_image questo target produce un pacchetto .deb contenente il kernel in formato binario, con tutti i moduli specificati nella configurazione | 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> | </pre> | ||
Una volta terminata la compilazione, troveremo in /usr/src un pacchetto il cui nome | 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! | A questo punto possiamo installare il nostro nuovo kernel! | ||
Riga 145: | Riga 157: | ||
</pre> | </pre> | ||
Controlliamo la presenza del RAMDisk iniziale. Per fare | Controlliamo la presenza del RAMDisk iniziale. Per fare ciò eseguiamo questo comando: | ||
<pre> | <pre> | ||
Riga 157: | Riga 169: | ||
# mkinitrd -o /boot/initrd.img-2.6.11-splash 2.6.11-splash | # mkinitrd -o /boot/initrd.img-2.6.11-splash 2.6.11-splash | ||
</pre> | </pre> | ||
== Installazione di Bootsplash == | == Installazione di Bootsplash == | ||
In questa fase ci viene in aiuto quel repository che abbiamo aggiunto all'inizio al nostro | 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: | Aggiorniamo i nostri archivi APT ed installiamo Bootsplash: | ||
Riga 169: | Riga 180: | ||
# apt-get install bootsplash sysv-rc-bootsplash bootsplash-theme-tuxinfo-debian | # apt-get install bootsplash sysv-rc-bootsplash bootsplash-theme-tuxinfo-debian | ||
</pre> | </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: | |||
Attenzione! L'ultimo pacchetto (bootsplash-theme-tuxinfo-debian) | |||
<pre> | <pre> | ||
Riga 180: | Riga 190: | ||
Scegliamo in questo caso il tema "tuxinfo-debian". | Scegliamo in questo caso il tema "tuxinfo-debian". | ||
Durante l'installazione | 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, | 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 === | === Configurazione del Bootloader === | ||
A questo punto siamo pronti per modificare il nostro bootloader. Facciamo un esempio per i due 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> | <pre> | ||
title Debian GNU/Linux, kernel 2.6.11-splash | title Debian GNU/Linux, kernel 2.6.11-splash | ||
Riga 198: | Riga 230: | ||
</pre> | </pre> | ||
Configurazione per LiLO ( | Configurazione per LiLO (<code>/etc/lilo.conf</code>) | ||
<pre> | <pre> | ||
image=/boot/vmlinuz-2.6.11-splash | image=/boot/vmlinuz-2.6.11-splash | ||
Riga 206: | Riga 238: | ||
</pre> | </pre> | ||
Attenzione! Se usate LiLO come bootloader, | 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> | <pre> | ||
# lilo | # lilo | ||
</pre> | </pre> | ||
== Conclusioni == | == Conclusioni == | ||
Riga 221: | Riga 252: | ||
</pre> | </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 | 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! | Happy Debian! | ||
{{Autori | |||
[[User:Hanska|Hanska]] 20:32, 14 May 2005 (CEST) | |Autore=[[User:Hanska|Hanska]] 20:32, 14 May 2005 (CEST) | ||
|Estesa_da= | |||
:[[Utente:Keltik|keltik]] 05:59, 4 Lug 2006 (EDT) | |||
|Numero_revisori=0 | |||
}} |
Versione attuale delle 11:44, 15 mag 2016
Attenzione. Questa guida è obsoleta. Viene mantenuta sul Wiki solo per motivi di natura storica e didattica. |
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 repository bootsplash:
deb http://www.bootsplash.de/files/debian/ unstable main
Abbiamo poi bisogno delle librerie e/o programmi che utilizzeremo per la compilazione vera e propria:
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
Ora possiamo procedere al download dei sorgenti del kernel:
# apt-get install kernel-source-2.6.11
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:
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:
# cd /usr/src/ # tar -jxvf kernel-source-2.6.11.tar.bz2
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:
# cd /usr/src/kernel-source-2.6.11 # patch -p1 < /usr/src/bootsplash-3.1.6-2.6.11.diff
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:
# make menuconfig
Vediamo cosa selezionare, brevemente.
Selezioniamo il nostro modello di processore:
| Processor type and features |--- Processor family (Athlon/Duron/K7)
Attiviamo qualche altra opzione per il boot:
| Device Drivers |--- Block devices |------ <*> Loopback device support |------ <*> RAM disk support |------ (8192) Default RAM disk size (kbytes) |------ [*] Initial RAM disk (initrd) support
Attiviamo le opzioni necessarie a mostrare la schermata di boot:
| 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
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 è configurato, possiamo procedere alla compilazione (debian-way):
# make-kpkg clean # make-kpkg --initrd --append-to-version -splash binary
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:
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
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!
# dpkg -i /usr/src/kernel-image-2.6.11-splash_10.00.Custom_i386.deb
Controlliamo la presenza del RAMDisk iniziale. Per fare ciò eseguiamo questo comando:
# ls /boot/initrd.img-2.6.11*
Se il comando restituisce un errore, creiamo il nostro RAMDisk:
# cd /boot/ # mkinitrd -o /boot/initrd.img-2.6.11-splash 2.6.11-splash
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:
# apt-get update # apt-get install bootsplash sysv-rc-bootsplash bootsplash-theme-tuxinfo-debian
Attenzione! L'ultimo pacchetto (bootsplash-theme-tuxinfo-debian) è il tema che vedremo al boot. Per vedere quali temi sono disponibili, diamo il seguente comando:
# apt-cache search bootsplash-theme
(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 script di avvio, otterremo un errore del tipo:
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.
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:
# 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
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 (/boot/grub/menu.lst
)
ATTENZIONE Le seguenti indicazioni valgono solo per GRUB e non per GRUB2 |
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
Configurazione per LiLO (/etc/lilo.conf
)
image=/boot/vmlinuz-2.6.11-splash label="2.6.11-splash" initrd=/boot/initrd.img-2.6.11-splash append="splash=silent"
Attenzione! Se usate LiLO come bootloader, è necessario aggiornare la sua configurazione con il seguente comando (dopo la modifica di /etc/lilo.conf
):
# lilo
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:
# dpkg-reconfigure bootsplash
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!
Guida scritta da: Hanska 20:32, 14 May 2005 (CEST) | Debianized 20% |
Estesa da:
| |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |