Questo How-to spiega come installare e configurare correttamente il bootsplash nella nostra linuxbox. La distribuzione presa in esame è un Slackware 12.1 con kernel 2.6.24-* (kernel default).

Bootsplash è un’applicazione che permette di visualizzare un’immagine all’avvio della nostra linuxbox nascondendo in modalità “silent” i messaggi di caricamento del kernel. Permette inoltre di avere un’immagine di sfondo nelle console in modalità “verbose”, con l’ausilio del framebuffer.

Bisogna tener presente che il progetto: “bootsplash” è stato piano piano emarginato e sostituito da sistemi di customizzazione di shell login grafici differenti.

NOTA (personale, e umile): io ritengo che la vecchia cara patch del progetto bootsplash originale (ossia questa presa in esame nell’how-to) sia sempre il miglior metodo di customizzazione di shell login grafico.

NB: procedura valida con tutti i kernel 2.6.x

#

Per prima cosa ci procuriamo i sorgenti del kernel in uso, questo nel caso in cui avessimo deciso di non installarli di default all’installazione della nostra cara slackware. Si può decidere di usare i pacchetti precompilati nel disco slack oppure scaricarli manualmente da http://www.kernel.org.

NB: Dopo aver scaricato il source del kernel desiderato (nel nostro caso 2.6.24-5) lo scompattiamo nella directory /usr/src/ e creeremo il link simbolico “linux” al kernel di riferimento, esempio:

~# cp kernel-source-scaricato_versione_2.6.24-5.* /usr/src/
~# cd /usr/src/
~# tar jxvf kernel-source-2.6.24-5.tar.bz2
~# ln -s /usr/src/linux-2.6.24.5/ linux

Risolta la questione “kernel source” procediamo a scaricare la patch kernel:

~# cd /usr/src/linux
~# wget bootsplash-2.6.24.diff.gz

NB: i links per reperire le patch sono cambiati; essendo il vecchio sito jaguarlinux non più disponibile. 
Quindi come da segnalazione a fine post di jpage89 "che ringrazio per l'avviso" le patch adesso sono 
disponibili all'url QUI.
Il sito linkato per le patch le fornisce già estratte,quindi potete evitare il passaggio successivo
relativo a gunzip.

NOTA: la patch cambia chiaramente da versione a versione a seconda del kernel scelto.

NB: scaricata e estretta la patch proceremeno quindi ad applicarla al kernel:

~# patch -p1 < bootsplash-2.6.24.diff

otterremo un output simile a questo:

patching file drivers/char/console.c
patching file drivers/char/keyboard.c
patching file drivers/char/n_tty.c
patching file drivers/video/Config.in
patching file drivers/video/Makefile
patching file drivers/video/fbcon-jpegdec.c
patching file drivers/video/fbcon-jpegdec.h
patching file drivers/video/fbcon-splash.c
patching file drivers/video/fbcon-splash.h
patching file drivers/video/fbcon-splash16.c
patching file drivers/video/fbcon.c
patching file include/video/fbcon.h
patching file kernel/panic.c

Patchato il kernel (accertatevi che non vi restituisca errori), non resta che compilare. Potete utilizzare un config già in uso presente nella directory /boot/ e copiarlo in /usr/src/linux/.config per partire da un configurazione attuale e/o in uso oppure procedere col kernel nudo e crudo. Quindi procediamo con la compilazione del kernel abilitando il supporto al boot grafico e accertandoci che i moduli richiedenti siano attivi in maniera statica, con i tool classici: (menuconfig,xconfig ecc).

~# make menuconfig

Modificate queste impostazioni, attivandoli come statici (ovvero selezionateli non come moduli):

Device Drivers -> Block devices -> Initial RAM disk (initrd) support
 Device Drivers -> Graphics support -> support for framebuffer devices
 Device Drivers -> Graphics support -> VESA VGA graphics support
 Device Drivers -> Graphics support -> Console display driver support -> Framebuffer Console support
 Device Drivers -> Graphics support -> Bootsplash Configuration -> Boot splash screen

NB: Eliminate invece il boot classico “tux logo”:

Logo Configuration -> BootupLogo

Modificate le opzioni, salviamo e usciamo.

Prima di compilare possiamo volendo, customizzare la versione kernel in uso modificando EXTRAVERSION, esempio:

~# pico Makefile
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 24
EXTRAVERSION = .5-bootsplash
NAME = Err Metey! A Heury Beelge-a Ret!

Dopo aver salvato le modifiche procediamo con la compilazione:

~# make -j5 bzImage
~# make -j5 modules
~# make modules_install

Compilato il kernel spostiamo il nuovo kernel image e i file di config in /boot/.

NB: Il tempo necessario alla compilazione e/o ricompilazione kernel è vario a seconda della box in uso “30 minuti come possono essere 3 ore”.

~# mv arch/i386/boot/bzImage /boot/image2624_splash
~# mv System.map /boot/System2624_splash.map
~# mv .config /boot/config2624_splash

Terminata la parte più “difficile” , procediamo con l’installazione di bootsplash-utils necessario per creare l’intrd image del nuovo kernel grafico; quindi:

~$ cd /home/user/
~$ wget bootsplash-3.1.tar.bz2
~$ tar jxvf bootsplash-3.1.tar.bz2
~$ cd bootsplash-3.1/Utilities
~$ make splash
~$ strip splash

Provvederemo dopo averlo scompattato e compilato  in una directory esempio, nel nostro caso /home/user/ a copiare l’eseguibile in /sbin/:

~$ su -
~# cp splash /sbin/

Terminato anche questo passaggio, non resta che installare un tema bootsplash grafico sul quale creeremo la nostra immagine initrd grafica.

NB: Il pacchetto usato è un mio tema per bootsplash un pò datato ma che pare aver riscosso molto successo. Nel caso non sia abbastanza gradito vi rimando ad altri temi disponibili su http://www.kde-look.org sezione bootsplash.

~# cd /etc/
~# mkdir bootsplash/ && mkdir bootsplash/themes/
~# cd /etc/bootsplash/themes/
~# wget Tatto's Girl
~# tar jxvf 61403-girltattoo.tar.bz2

Estratto il tema nella directory themes procediamo alla creazione dell’initrd image del tema prescelto, in questo caso girltattoo:

~# /sbin/splash -s -f /etc/bootsplash/themes/girltattoo/config/girltattoo.cfg > /boot/initrd.tattoo

NB: il percorso e il  file di config è relativo al tema prescelto, chiaramente potrebbe variare in base al tema.

Ultima cosa da fare, è la modifica del boot loader, nel nostro esempio lilo:

~# vi /etc/lilo.conf

aggiungeremo i link al nuovo kernel da startare all’avvio:

# Kernel image Bootsplash start
image = /boot/image2624_splash
initrd = /boot/initrd.tattoo
append = "splash=verbose"
root = "/dev/hdaX"
label = "SlackSplash"
vga = 791
read-only
# Kernel image Bootsplash end

NB i parametri aggiunti sono:

Salviamo e restartiamo lilo per rendere permanenti le modifiche:

~# lilo -v

Non resta che riavviare e godersi il boot grafico.

# End