====== Boot Splash ====== * **AUTORE**:Joachim Beckers jbeckers@linuxfromscratch.org \\ * **DATA**: 2005-07-31 \\ * **TRADUTTORE**: Cardelli Sandro sacarde@tiscali.it \\ * **LICENZA**: GNU Free Documentation License version 1.2 \\ * **SYNOPSIS**: Come abbellire il processo di boot nei kernel 2.4/2.6 utilizzando bootsplash. \\ * **PRINCIPALE URI**: http://jbeckers.webhop.org/en/hints.html \\ **DESCRIZIONE:**\\ Questo hint descrive come creare propria grafica di boot utilizzando bootsplash. Bootsplash è un pacchetto che consente di visualizzare immagini in background con o senza animazioni sulle console, durante l'avvio del kernel e durante l'inizializzazione del sistema. Ciò è completamente gestibile tramite temi e utilizza il framebuffer. Ormai funziona bene con il kernel 2.4 come per il 2.6 ed è possibile l'utilizzo di accellerazioni grafiche. \\ **REQUISITI:** \\ Questo hint è stato testato su LFS-5.1.1/kernel-2.6.8.1 e LFS-6.0/kernel-2.6.11.7. Queste combinazioni sono state testate, ma anche altre probabilmente funzioneranno. Occorre prendere soltanto la patch relativa alla versione del vostro kernel. \\ Il pacchetto bootsplash richiede che sia installato libmng. Guardare nel libro BLFS per le istruzioni di compilazione di libmng. \\ HINT \\ **Come devono essere fatte le cose**: \\ L'installazione di bootsplash deve essere fatto in sei fasi: \\ - Applicare la patch di bootsplash al kernel, configurare e ricompilare. - Installare il pacchetto bootsplash. - Installare un tema. - Creare un initial ramdisk. - Configurare bootsplash e il bootloader. - Adattare i bootscript. Prima di poter iniziare comunque, occorrerà scaricare alcuni pacchetti. \\ Pacchetti Richiesti: \\ * La patch bootsplash del kernel: http://www.bootsplash.de/files/ (per le patch del kernel 2.6) o: http://www.bootsplash.de/files/old (per le patch del kernel 2.4) \\ * Il pacchetto bootsplash: http://www.bootsplash.de/files/splashutils/bootsplash-3.2.tar.bz2 \\ * Una patch per il makefile di bootsplash: http://www.linuxfromscratch.org/hints/downloads/attachments/bootsplash/bootsplash-3.2_makefile.patch \\ * Un tema: http://www.bootsplash.de/files/themes/ \\ * Nel caso non si abbiano i sorgenti del kernel, prelevarli da: ftp://ftp.kernel.org/pub/linux/kernel/ \\ Applicare la patch, configurare e ricompilare il kernel: \\ Se si sono appena scaricati i sorgenti del kernel, scompattarli nel punto giusto eseguendo i seguenti comandi: \\ cd /usr/src/ tar -xvjf /path/to/kernel-tarball Adesso spostarsi nella directory contenente i sorgenti del kernel, e applicare la patch: cd /usr/src/linux-2.* patch -p1 -i /path/to/bootsplash-kernel-patch Assicurarsi di includere queste opzioni nel kernel, non come moduli: \\ per il kernel 2.4: Code maturity level options --> Prompt for development and/or incomplete code/drivers Block devices --> RAM disk support --> Initial RAM disk (initrd) support Console drivers --> Video mode selection support --> Frame-buffer support --> Support for frame buffer devices --> VESA VGA graphics console --> Use splash screen instead of boot logo per il kernel 2.6: Device drivers --> Block devices --> RAM disk support --> Initial Ram disk (initrd) support --> Graphics support --> Support for framebuffer devices --> VESA VGA graphics support --> Console display driver support --> Video mode selection support --> Framebuffer console support --> Bootsplash configuration --> Bootup splash screen **Nota**: Se nel kernel c'è un driver del framebuffer per la vostra scheda grafica, può essere utile selezionare l'esatta voce. Questo consentirà di utilizzare l'accelerazione hardware. \\ Completare compilando e installando il nuovo kernel: \\ per il kernel 2.4: \\ make dep make bzImage make modules make modules_install cp ./arch/i386/boot/bzImage /boot/lfskernel-2.4.* cp .config /boot/config-2.4.* cp System.map /boot/System.map-2.4.* per il kernel 2.6: \\ make all make modules_install cp ./arch/i386/boot/bzImage /boot/lfskernel-2.6.* cp .config /boot/config-2.6.* cp System.map /boot/System.map-2.6.* Installare il pacchetto bootsplash: \\ Installare il pacchetto bootsplash eseguendo i seguenti comandi: \\ tar -xvjf bootsplash-3.1.tar.bz2 cd ./bootsplash-3.2/ patch -Np1 -i /path/to/bootsplash-3.2_makefile.patch cd ./Utilities/ make cp splash fbresolution fbmngplay /sbin cd ../Scripts/ cp bootanim /sbin chmod +x /sbin/bootanim **Nota**:Del pacchetto bootsplash occorrono solo tre programmi e uno script. Gli altri sono bootscript specifici Suse. Per saperne di più guardare la documentazione in bootsplash-3.2/Documentation. \\ Installare un tema: \\ Installare un tema bootsplash eseguendo i seguenti comandi: \\ mkdir -p /etc/bootsplash/themes cd /etc/bootsplash/themes tar -xvjf /path/to/your/theme Adesso creare un symlink che punta al tema di default che sarà utilizzato: \\ ln -s /path/to/your/theme current Creare un initial ramdisk: \\ Per mostrare una splashimage all'avvio del kernel, bootsplash usa un initial ramdisk. \\ Creare un initial ramdisk eseguendo il seguente comando: \\ /sbin/splash -s -f \ /etc/bootsplash/themes/current/config/bootsplash-1024x768.cfg > \ /boot/bootsplash-initrd **Nota**: Se si vuole eseguire il boot in una risoluzione diversa da 1024x768, semplicemente rimpiazzare 1024x768 con la risoluzione prescelta. Ricordare di fare lo stesso durante le sezioni che seguono. Assicurarsi che il tema supporti la risoluzione che si è scelta. \\ Configurare bootsplash e il bootloader: \\ Bootsplash può visualizzare un'immagine sullo sfondo dei terminali, ma questo è fatto in automatico solo per tty1. Per aggiungere uno sfondo a tty2, tty3, tty4,tty5 and tty6, eseguire il seguente comando, dove * è l'ultimo numero di tty: \\ splash -n -s -u * \ /etc/bootsplash/themes/current/config/bootsplash-1024x768.cfg **Nota**: Per avere un bello sfondo all'avvio su tutti i tty, inserire questo comando in uno script di avvio. \\ Adesso la configurazione del bootloader. Questo hint fornisce le istruzioni per lilo e grub. In caso di utilizzo di un altro bootloader, verificare la relativa documentazione. Le istruzioni saranno probabilmente molto simili. per lilo: * Editare /etc/lilo.conf \\ * Assicurarsi di modificare la voce del kernel con il kernel nuovo. Sotto la voce del kernel, aggiungere: vga=791 initrd=/boot/bootsplash-initrd append="splash=silent" * Adesso applicare le modifiche eseguendo il seguente comando: lilo per grub: * Editare /boot/grub/menu.lst * Assicurarsi di modificare il campo del kernel con il kernel nuovo. Aggiungere la seguente riga alla voce del kernel: vga=791 splash=silent * Sotto alla voce del kernel, aggiungere: initrd /boot/bootsplash-initrd **Nota**: Se si vuole avviare in una risoluzione diversa da 1024x768, modificare "vga=791" col numero equivalente al setup. La tabella di seguito mostra in teoria i valori possibili. Notare che alcune di queste risoluzioni non sono ancora state implementate. | | 640x480 | 600x800 | 1024x768 | 1280x1024 | | 8 bit | 769 | 771 | 773 | 775 | | 15 bit | 784 | 787 | 790 | 793 | | 16 bit | 785 | 788 | 791 | 794 | | 24 bit | 786 | 789 | 792 | 795 | Adattare i bootscript: \\ Bootsplash può non soltanto visualizzare immagini, può anche supportare animazioni. E' possibile adattare i bootscript per visualizzare una barra in progressione durante l'avvio, o visualizzare un'animazione al verificarsi di un evento. Per utilizzare questo in modo ordinato, aggiungere il seguente codice allo script /etc/rc.d/init.d/functions: \\ progressbar() { if [ $# != 1 ] then echo "Usage: progressbar {progress}" exit 1 fi echo "show $(( 65534 * $1 / 100 ))" > /proc/splash } animate() { if [ $# = 0 ] then echo "Usage: animate {hook}" exit 1 fi splash "$*" } Per utilizzare la barra in progressione, editare i bootscript in /etc/rc.d/init.d. ogni volta che si vede "evaluate_retval", aggiungere "progressbar XXX" (dove XXX è un numero tra 0 e 100 che equivale alla progressione del boot). Dare un'occhiata a /etc/rc.d/rcsysinit e /etc/rc.d/rc*.d per sapere l'ordine in cui i bootscript sono eseguiti. \\ Per utilizzare animazioni, occorre sapere su quali eventi il tema può eseguire un'animazione. Dare un'occhiata a /etc/bootsplash/themes/current/config/animations.cfg per determinare questo. Il file animations.cfg probabilmente assomiglierà a questo: \\ fsck start:bootanim start bounce.mng master:bootanim stop shutdown: bootanim start bounce.mng Adesso aggiungere la riga seguente al bootscript che esegue fsck: \\ animate fsck start Piazzare la riga seguente appena prima della fine del bootscript, questo fermerà tutte le animazioni: \\ animate master La riga seguente dovrebbe essere piazzata da qualche parte nello script di shutdown: animate shutdown **Congratulazioni**: è tutto. E' possibile adesso riavviare e godersi la nuova splashimage. \\ RINGRAZIAMENTI: \\ Grazie a Bryan Gale, precedente autore di questo hint. \\ Grazie a Anton Strobl per aver provveduto alla bootsplash-3.2_makefile.patch. \\ ChangeLog. \\ * [2004-09-19] - Rilevato Maintainer. - Convertito hint a nuovo formato. - Aggiornato per le istruzioni per kernel 2.6 e grub. - Pubblicato hint sul mio sito. * [2005-04-07] - Aggiunta nota circa la versione del pacchetto in uso. * [2005-04-24] - Rimosse le note aggiunte il 2005-04-07. - Aggiornamento a bootsplash-3.2. - Aggiunta una patch che esegue la compilazione di bootsplash più pulita. - Altre correzioni. * [2005-07-31] - Aggiornato URI primario FIXME da completare inserimento