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.
- ~# gunzip -d bootsplash-2.6.24.diff.gz
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:
- image = percorso dell’immagine kernel patchata e compilata precedentemente.
- initrd = percorso immagine initrd grafico creato con /sbin/splash.
- append = modalità di avvio bootsplash “verbose” (shell di sfondo senza progress barr).
- root = device root relativo alla propria configurazione di sistema. Sostituire X con /dev/hda1 ad esempio (dove 1 è il device root su cui è installato il sistema).
- label = Nome da visualizzare nel menù di lilo.
- vga = risoluzione schermo all’avvio grafico.
Salviamo e restartiamo lilo per rendere permanenti le modifiche:
~# lilo -v
Non resta che riavviare e godersi il boot grafico.
# End