Basic linux framebuffer bootsplash daemon, to display configureable boot screen on small, embedded, LCD screens which are supported by a framebuffer driver/module, opening a framebuffer (e.g.: /dev/fb1) device. Originally it was made for a GNUbLIN (http://gnublin.embedded-projects.net) mini LINUX ARM computer with a greyscale LCD for an embedded project. However GnublinBootSplash is now ported to Raspberry PI, tested with ARCH linux (but as well debian and for sure runs with others...). It runs with traditional SystemV startup scripts but as well systemd, using kdbus to obtain boot information.
This is a experimental project shared here. It doesn't claim to be complete neither in code nor in documentation.
- Directfb >= 0.9.20
- Glib >= 2.0
- libsystemd if using together with systemd and kdbus
- kdbus enabled linux kernel
GnublinBootSplash takes a small number of configuration parameters from command line and is configured trough a GLib style configuration file (/etc/gnublinbootsplash.cfg). It is started either as a SystemV or as a systemd daemon. See as well README file
- in "legacy mode" GnublinBootSplash opens a fifo and takes text based messages to be displayed and to set progress bar e.g:
~> echo "message=booting service xyz;percent=20" >/tmp/bootsplash.fifo
Following parameters in messages are understood:
- message= : let GnublinBootSplash print a status message to the display
- percent=<number 0-100> : sets the progress bar of the bootsplash
- help : prints a help to the system log ;-)
- exit : let the bootsplash daemon clean up and exit
multiple parameters might be combined and seperated by a ';', no space has to follow the colon. The bootinformation passed to the fifo need to come from the SystemV startup scripts by adding the above printend "echo" line to the startup scripts.
GnublinBootSplash connects to 0-system kdbus and optains boot information there. Once it is started it works automatically. there is no fifo created and there is no need to pass any message to it.
clone GnublinBootSplash to your local computer and run
./configure
if kdbus/systemd otion should be enabled
./configure --enable-sdbusio
enables systemd mode. next is to do a
make
make install
finally add the bootsplash daemon to startup by creating either a SystemV startup script or a systemd service file.
- start stop scripts for SystemV and systemd
- any handling to quit the daemon in systemd mode, in SystemV mode it might be quit by startx script e.g. by sending
~> echo "quit" >/tmp/bootsplash.fifo
to the deamon to release framebuffer and stop it.