The boot splash utility, which is part of the Gentoo gensplash project, provides a background image and a progress bar during Linux kernel boot and the services loading phase. In this page we will refer to version 1.5.3.4, available as update for STLinux-2.3 distribution
You can choose between two boot modes: silent and verbose:
Summarizing, splash screen is a stand alone application that, with a feature enabled on kernel, also allows to interact with the system consoles.
If you choose to initialise your system using the initramfs,
documentation on how to do this can be found in the kernel source directory
Documentation/early-userspace, and there are also useful references at
the linuxdevices web page
and the timesys web page.
To fully acquire know-how about all splash available commands, it is strictly recommended to read package documentation distributed with binaries.
To allow boot splash to fully work you need to have:
To use the boot splash utility you have to enable the framebuffer in your linux kernel. If you also like to display a background image for all your system consoles, you have to enable splash features in your linux kernel.
Open the kernel menuconfig and pay attention to enable (if they already aren't) the following features:
Device Drivers ---> Graphics Support ---> Support for framebuffer devices
System type ---> Memory management options ---> Big Physical Area version 2
Device Drivers ---> Character Devices ---> Virtual Terminal
Device Drivers ---> Character Devices ---> Support for console on virtual terminal
Device Drivers ---> Graphics Support ---> Console display driver support ---> Framebuffer console support
Device Drivers ---> Graphics Support ---> Enable Software Drawing
Device Drivers ---> Graphics Support ---> Console display driver support ---> Support for the Framebuffer Console DecorationsWhen booting the kernel, splashutils is controlled by a number of kernel command line options. They are:
Note: Either CONSOLE=/dev/tty1 or console=tty1 must be supplied and they are usually provided for all kernel command line.
There are also options to control the bootsplash behaviour. The options below must all follow a splash= kernel option. As usual, splash options are separated by commas and they should form a continuous configuration string. Options are:
splash=silent,theme:st_theme CONSOLE=/dev/tty1 or splash=silent,theme:st_theme console=tty1
fbsplashd.static -t _theme_echo "_command_" > /lib/splash/cache/.splashTo use the boot splash application you must first load the framebuffer modules. Supposing you like to display a progress bar during kernel boot, one thing you can implement is to modify the /etc/init.d/rcS script.
Here is an example of a modified rcS file for an stx7109 cut3 board:
... insmod <path_to_stmcore>/stmcore-display-stx7109c3.ko insmod <path_to_stmfb>/stmfb.ko display0=<your_init_parameters> mount -t proc proc /proc max_progress=`ls /etc/rc.d/rcS.d/S* | wc -l` k=`expr 65534 / $max_progress` j=$k /sbin/fbsplashd.static -t st_theme echo "set mode silent" > /lib/splash/cache/.splash for i in /etc/rc.d/rcS.d/S* ; do ./$i echo "progress $j" > /lib/splash/cache/.splash j=`expr $j + $k` done ...
In this example, all services are started inside the 'for' cycle. After each service starts (./$i), the progress bar is updated with the given command.
max_progress, k and j are useful variables to calculate the amount of the progress bar increment (depending on the number of services).
path_to_stmcore, path_to_stmfb and your_init_parameters are user dependent.