Old:Kernel2.6.10 - Framebuffer - Gensplash Patch

Da Guide@Debianizzati.Org.

Versione delle 11:57, 12 giu 2016, autore: HAL 9000 (Discussione | contributi)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Emblem-important.png Attenzione. Questa guida è obsoleta. Viene mantenuta sul Wiki solo per motivi di natura storica e didattica.

Indice

Introduzione

Chi di voi non ha mai visto un boot di Linux con lo splash screen attivo, magari su una rivista o da un amico, e si è chiesto quanto fosse difficile metterlo in pratica?. Bene, dopo questa guida scoprirete il contrario.
Mi raccomando, occhio a quello che fate; molti comandi descritti in questa guida vanno impartiti con i permessi di root.

Passi preliminari alla compilazione del kernel

Innanzitutto, se già non li abbiamo, ci servono i sorgenti del kernel:

$ wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.bz2
# cd /usr/src
# tar xvfj /path/linux-2.6.10.bz2
# rm linux (in caso avessimo già ricompilato questo link è da eliminare , e da ricreare)
# ln -s linux-2.6.10 linux

poi ci occorre la patch per lo splash:

# wget http://dev.gentoo.org/~spock/projects/gensplash/archive/fbsplash-0.9.1-2.6.10-rc3-bk6.patch

Immagino che qualcuno stia dicendo: "ti sei sbagliato". Ma non mi sono sbagliato, so che la patch è per il 2.6.10-rc, ma questa è la ultima versione disponibile e con una minima modifica andrà benone per il nostro scopo.

# mv fbsplash-0.9.1-2.6.10-rc3-bk6.patch linux
# cd linux
# patch -p1 < fbsplash-0.9.1-2.6.10-rc3-bk6.patch linux

Se il comando patch restituisce un errore, dobbiamo editare il file che genera l'errore:

# vi include/linux/sysctl.h

(usate il vostro editor preferito)

Andate alla riga 138 e subito dopo la riga:

KERN_COMPUTE=68, /* adjust timeslices for a compute server */

aggiungete questa riga:

KERN_FBSPLASH=69, /* string: path to fbsplash helper */

salvate il file. È giunta ora di configurare le impostazioni per la compilazione del nostro kernel.

# make menuconfig

(usate pure il metodo che più vi aggrada)

Scegliamo le opzioni che ci servono per il nostro kernel, non scendo nei particolari perché esula dall'argomento trattato da questa guida.
Nella sezione Device Driver/Graphic Support controlliamo che la voce Support for frame buffer devices sia impostata come statica, ovvero contrassegnata con l'asterisco (*) e che anche le voci VGA 16-color graphics support e VESA VGA graphics support siano sempre settate statiche.
Mi raccomando, non attiviamo la voce Logo configuration ma attiviamo quella successiva, ovvero: Support for the framebuffer splash
Ora finite di settare la vostra configurazione.

Compilazione del kernel

Partiamo con la compilazione: diamo, sempre da root, il comando:

# make -j4

(il -j4 serve per avviare 4 processi di compilazione paralleli, in pratica si ottimizza la compilazione)
Se non riceviamo errori di sorta procediamo all'installazione delle splashutils quindi:

deb http://ftp.nluug.nl/ftp/pub/os/Linux/distr/esware/kenny/i386/ ./
#apt-get update
#a apt-get install splashutils

dopodiché dobbiamo creare il file che conterrà la nostra immagine di splash. Prima, però, è meglio creare un backup di questo file:

# cp usr/initramfs_data.cpio.gz usr/initramfs_data.cpio-old.gz

Ora procediamo. Dobbiamo avere il nostro tema estratto in /etc/splash. Ad esempio:

matrix:~# ls /etc/splash/
linux

matrix:~# ls /etc/splash/linux/
bootsplash-debblue-1280x1024.jpg
1280x1024.cfg vt-debblue-1280x1024.jpg

Diamo il comando:

# splash_geninitramfs -g usr/initramfs_data.cpio.gz -r 1280x1024 NOME_TEMA

sostituite 1280x1024 con la risoluzione che usate al boot e NOME_TEMA con il nome del tema che avete scelto e precedentemente estratto in /etc/splash
Prima di procedere controllate il file di configurazione del tema per verificare che punti all'immagine giusta. Nel mio caso il file contiene:

# name of the picture file (full path recommended)
jpeg=/etc/splash/linux/vt-debblue-1280x1024.jpg
silentjpeg=/etc/splash/linux/bootsplash-debblue-1280x1024.jpg

verificate anche l'esistenza dei file che contengono le immagini di splash:

matrix:/etc/splash/linux# ls | grep jpg
bootsplash-debblue-1280x1024.jpg
vt-debblue-1280x1024.jpg

controlliamo per scrupolo anche che il file initramfs_data.cpio.gz contenga davvero l'immagine:

# ls -l usr/initramfs_data.cpio.gz
-rw-r--r-- 1 root root 125245 2005-01-10 20:53 usr/initramfs_data.cpio.gz

cosa che si può ricavare dall'aumento della dimensione del file.
Ricreiamo l'iimmagine del kernel:

# make -j4 bzImage

in seguito creiamo e installiamo i moduli del kernel:

# make modules && make modules_install

se avete già un altra versione del kernel 2.6.10, raccomando di eliminare i vecchi moduli.
Bene, dopo che sarà terminata la compilazione del kernel, dobbiamo copiarlo nella directory /boot:

# cp System.map /boot/System.map-2.6.10-gensplash
# cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.10-rc3-ck1

Il kernel adesso è installato correttamente. Non rimane che creare la nostra immagine initrd e siamo quasi al termine:

# mkinitrd -o /boot/initrd-2.6.10-gensplash.img -r /dev/hdax 2.6.10

sostituite hdx con la vostra partizione di boot. Per finire non resta che modificare il file di configurazione di LILO oppure quello di GRUB:

# vi /etc/lilo.conf
image=/boot/vmlinuz-2.6.10-gensplash
label=2.6.10-gensplash
read-only
append="video=vesafb:1280x1024x256 splash=silent,theme:TEMA_LINUX"
initrd=/boot/initrd-2.6.10-gensplash.img

nella seconda riga occorre sostituire 1280x1024 con la vostra risoluzione e TEMA_LINUX con il nome del tema scelto.
Potrebbe essere interessante modificare l'opzione splash=silent con splash=verbose, in questo modo potrete vedere i messaggi di boot. Ricordo che se utilizzate l'opzione silent potete cambiare la modalità di visualizzazione in verbose premendo F2.
Adesso non resta altro che far rileggere a LILO le nuove impostazioni:

#lilo -v

se non ci mostra errori possiamo riavviare e goderci il nostro splash.

Ringraziamenti

Volevo ringraziare ldonesty e debianizzati.org per il supporto nella stesura di questa guida, in caso di problemi postate pure.




Guida scritta da: Noise

Swirl-auth20.png Debianized 20%

Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized


Strumenti personali
Namespace
Varianti
Azioni
Navigazione
Risorse
Strumenti