Prima di procedere con qualsiasi cosa bisogna patchare il kernel, infatti questa feature non e' ancora contemplata nel kernel ufficiale, quindi, ci scarichiamo la patch; le versioni del kernel al momento testate sono: dalla 2.4.18 alla 2.4.22 e la 2.6.0-test9. Tuttavia le patch vengono regolarmente aggiornate per le nuove relase del kernel.
Una volta scaricata la patch andate in /usr/src (assicuratevi di avere i sorgenti del kernel, di norma si trovano in questa directory; assicuratevi di avere un symlink di nome "linux" che punti ai sorgenti della versione del kernel che volete patchare) entrate nella directory linux e date il seguente comando:
patch -p1 < /percorso/per/bootsplash-x.x.x-x.x.x.diff
se non restituisce errori strani, complimenti! avete appena patchato un kernel (se invece restituisce errori strani assicuratevi che quella patch sia giusta, oppure potete postare nella mail list del progetto, o, nel caso estremo scrivetemi). Entrate nel menu di configurazione del kernel (io uso make menuconfig ma potete usare anche gli altri tool messi a disposizione) e, se lo avevate gia configurato prima, vi basta solo aggiungere queste voci:
--
Device Drivers --->
Graphics support ---> Bootsplash configuration ---> [*] Bootup splash screen
--
Non e' sempre assicurato che i driver del kernel siano compatibili con questa feature, infatti, il supporto e' assicurato solo per il driver generico, quindi, bisognera' utilizzare questo driver e togliere gli altri:
--
Device Drivers --->
Graphics support ---> [*] Support for frame buffer devices [...] [*] VESA VGA graphics support
--
--
Device Drivers --->
Graphics support ---> Console display driver support ---> <*> Framebuffer Console support
--
Visto che dovremo utilizzare un initrd per l'immagine all'avvio dobbiamo assicurarci di avere il supporto:
--
Device Drivers --->
Block devices ---> <*> RAM disk support (quella_di_default_va_bene) Default RAM disk size [*] Initial RAM disk (initrd) support
--
Ok! ora possiamo uscire e salvare la nuova configurazione, ricompilate il kernel e aggiungetelo al vostro bootloader preferito (qui faro' sempre riferimento a lilo), per quanto riguarda l'intrd poi la creremo e la aggiungeremo a lilo, compresa l'opzione per vga.
3. SCARICARE IL NECESSARIO E PREPARARE IL SISTEMA
Ora che il livello kernel e' stato sistemato, abbiamo a disposizione tante belle applicazioni per giocare un po con il tutto, quindi, scaricatevi questo pacchetto:
ftp://ftp.suse.com/pub/people/stepan/bootsplash/rpm-sources/bootsplash/bootsplash-3.0.7.tar.bz2
conterra' le seguenti applicazioni:
e due script:
N.B. in realta' le cose sono un po di +, ma, ai fini questa guida queste bastano.
Estraete i file dal tar.bz2 e compilateli (a volte capita che dia un errore, in questo caso potete compilarli singolarmente e non dovrebbe dare problemi)
a questo punto metteteli tutti in una dir per eseguibili (io ho utilizzato /sbin che e' quella consigliata nelle pagine del progetto), fatto questo avrete tutti i vostri eseguibili e, possiamo passare a patchare i due file rc e rcS:
apt-get install sysv-rc-bootsplash
Lo so, anche tutti gli applicativi sono installabili con apt-get ma, a me dava problemi di dipendenze quindi, se volete, potete provare tranquillamente e vedere se a voi funziona, e magari dirlo anche a me :)
4. MODIFICA DEI FILE
C'e' un unico file, che non e' da modificare ma solo da spostare (ricordo che tutta questa cosa e' stata creata per SuSE quindi utilizza la struttura del suo fs):
il tutto si potrebbe fare anche modificando gli script per fare in modo che il controllo per il file bootsplash sia in /etc/default ma anche cosi va bene :)
5. CREARE UN INTIRD
Finalmente siamo arrivati al succo, ora creiamo un intrd che servira' per fare caricare l'immagine al boot:
consiglio il secondo link che e' un po piu' fornito e meno "SuSE-like", infatti da li potete scaricare, per esempio, un tema per Debian:
. http://dediziert.org/~tyrant/linux/bootsplash/themes/Theme-Debian.tar.bz2
scompattatelo e mette la directory creata in /etc/bootsplash/themes create un symlink in /etc/bootsplash/themes di nome "current" che punti a /etc/bootsplash/themes/debian (cioe' il nome della directory che ci avete appena messo)
a questo punto possiamo creare il nostro initrd:
lanciamo il seguente comando:
splash -s -f /etc/bootsplash/themes/current/config/bootsplash-1024x768.cfg >> /boot/initrd
. in questo caso si presume che utiliziate una risoluzione 1024x768 se non sapete quale state usando lanciate il comando fbresolution . l'initrd potete chiamarla come volete (specialmente se ne avate piu' di una) . se volete vedere che cosa apparira' sul vostro schermo potete andare in /etc/bootsplash/themes/current/images e vedere l'immagine con la risoluzione scelta da voi e se la volete provare al volo potete lanciare il seguente comando
splash -s -u 5 /etc/bootsplash/themes/current/config/bootsplash-1024x768.cfg
. il 5 si riferisce al numero di tty su qui verra' visualizzata l'immagine (sempre se avete gia riavviato con il kernel nuovo e patchato)
Scelta l'immagine, visualizzata e creato l'intrd non ci resta altro che associarla al nostro kernel in lilo, quindi aprite lilo, e, nella sezione precedentemente aggiunta riguardo al kernel nuovo basta aggiungere le seguenti righe:
initrd=/boot/initrd
append="splash=silent"
vga=791
. initrd si intende quella da voi creata . altre opzioni le potete trovare sul sito di riferimento
Salvate, uscite e ridate lilo per scrivere il tutto sull'MBR.
6. SCHEDULER RCS
Arrivati a questo punto, dovrebbe funzionare tutto, avrete al riavvio il vostro bootsplash con relativa barra d'avanzamento, cosi' come all'avvio, e, sullo sfondo, l'immagine scelta; solo che, l'immagine scelta da mettere sullo sfondo, sara' riferita solo alla tty1 (o 0 come volete), qui ci viene in aiuto rcS (mi raccomando deve essere patchato) e l'utility splash. Se l'immagine che avate scelto e' quella di default e la volete su tutte le tty (ricordo che potete scegliere altre immagini o, anche, un immagine diversa per ogni tty, basta che abbiate scritto il file .cfg) potete proseguire cosi:
splash -s -u 5 /etc/bootsplash/themes/tema_che_hai_scelto/config/bootsplash-1024x768.cfg
/sbin/splash -n -s -u N /etc/bootsplash/themes/tema_che_hai_scelto/config/bootsplash-1024x768.cfg
.dove N rappresenta il numero di tty (quindi devi ripetere quella stringa modificando N per ogni tty che vuoi modificare)
. ATTENZIONE: ricordatevi ora di modificare il file in /etc/sysconfig/bootsplash modificando almeno le suguenti righe:
THEME="SOLO il nome del tema che state utilizzando" SPLASH=" "yes" se volete visualizzato lo splash"
ora siamo veramente pronti, se volete, ora date un bel reboot (meglio shutdown -r now ;) ) e, se avete fatto tutto bene, preparatevi a lustrarvi gli occhi :)
7. CREARNE UNA PERSONALIZZATA
questa parte e' la piu' facile! avete gia tantissimi esempi (tratti dai vari temi), avrete gia capito che ogni tema deve avere una struttura rigida di sottodirectory per trovare quello che cerca, e che, il tutto, e' gestito via .cfg, tutto e' spiegato bene per filo e per segno su bootsplash.org e, precisamente su:
http://www.bootsplash.org/config.html
di solito io faccio cosi (non e' il metodo piu' elegante, ma funziona sempre ed e' agile :P):
. copio un tema (tutto, dir e sotto dir)
. creo con gimp un immagine che mi piace (e qui c'e' davvero da sbizzarrirsi)
. sistemo il tutto
. comincio a modificare il file .cfg per fargli aggiustare il testo il colore ecc
. per vedere se funziona, ad ogni cambiamento do il comando splash -s -u N /etc/bootsplash/themes/tema_che_hai_creato/config/bootsplash-XXXXxXXX.cfg
questo mi permette di vedere le modifiche e di scegliere la configurazione migliore
8. FINE
spero di essere stato d'aiuto, a me e' piaciuto molto scoprire questa cosa e smanettarci per vedere come funziona (specialmente le animazioni mng mi hanno lasciato a bocca aperta), ho seguito il metodo che ho ritenuto migliore per me sia per scoprire come funziona il tutto, sia per scrivere la guida (che serve + a me per ricordarmi come si fa, se no me lo dimentico :P). La guida puo' essere migliorata quindi se volete scrivermi per, lascarmi un fb (feedback ;P) per scleri e commenti di ogni tipo:
jagan NOSPAM at i-sciences dot net
Questa guida potete usarla senza nessuna limitazione, quindi prendetela, usatela, modificatela, fate come volete, naturale che se la utilizzate come fonte o se la includete da qualche parte, mi fa piacere essere citato :P.
alla prossima
jagan