Traccia: bootsplash

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.

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:

  1. Applicare la patch di bootsplash al kernel, configurare e ricompilare.
  2. Installare il pacchetto bootsplash.
  3. Installare un tema.
  4. Creare un initial ramdisk.
  5. Configurare bootsplash e il bootloader.
  6. Adattare i bootscript.

Prima di poter iniziare comunque, occorrerà scaricare alcuni pacchetti.

Pacchetti Richiesti:

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 1024×768, semplicemente rimpiazzare 1024×768 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 1024×768, 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.

640×480 600×800 1024×768 1280×1024
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]
  1. Rilevato Maintainer.
  2. Convertito hint a nuovo formato.
  3. Aggiornato per le istruzioni per kernel 2.6 e grub.
  4. Pubblicato hint sul mio sito.
  • [2005-04-07]
  1. Aggiunta nota circa la versione del pacchetto in uso.
  • [2005-04-24]
  1. Rimosse le note aggiunte il 2005-04-07.
  2. Aggiornamento a bootsplash-3.2.
  3. Aggiunta una patch che esegue la compilazione di bootsplash più pulita.
  4. Altre correzioni.
  • [2005-07-31]
  1. Aggiornato URI primario

FIXME da completare inserimento

 
bootsplash.txt · Ultima modifica: 2015/08/08 14:22 (modifica esterna)