Important: You are required to change your passwords used for Gentoo services and set an email address for your Wiki account if you haven't done so. See the full announcement and Wiki email policy change for more information.

fbsplash

From Gentoo Wiki
Jump to: navigation, search

External resources

fbsplash is a Gentoo implementation of a bootsplash screen to provide some eye candy during boot up, shut down or while working on a terminal without X. It is currently available in portage as media-gfx/splashutils. A more modern alternative that also offers systemd support, but no eye-candy on the terminal is Plymouth.

Installation

You can install media-gfx/splashutils with the following command:

root # emerge --ask splashutils

To also install the Gentoo themes which are also used on the Live CD/DVD:

root # emerge --ask media-gfx/splash-themes-gentoo

And more themes with:

root # emerge --ask media-gfx/bootsplash-themes

The build might fail, because many libraries need to have static libraries to be available at boot time, here is a list of USE flags which could be put into /etc/portage/package.use (03/07/2012):

File/etc/portage/package.use

# for boot-splash
media-libs/freetype static-libs
media-libs/libpng static-libs
media-libs/lcms static-libs
virtual/jpeg static-libs
media-libs/libjpeg static-libs
media-libs/libjpeg-turbo static-libs
media-libs/libmng static-libs
sys-libs/zlib static-libs
app-arch/bzip2 static-libs

Remember to update the packages after changing the USE flags:

root # emerge --ask --changed-use --deep @world

USE Flags

→ Information about USE flags
USE flag Default Recommended Description
hardened No No activate default security enhancements for toolchain (gcc, glibc, binutils)
png Yes Yes Adds support for libpng (PNG images)
truetype Yes Yes Adds support for FreeType and/or FreeType2 fonts
mng Yes Yes Adds support for libmng (MNG images)
gpm No Adds support for sys-libs/gpm (Console-based mouse driver)
fbcondecor No Yes Support for the fbcondecor kernel patch.

Requirements

To use a splash image the kernel needs to support initramfs.

Kernel

Enable framebuffer console decorations:

Kernel configurationKernel framebuffer configuration

Device Drivers ->
    Graphics support ->
        <*> Support for frame buffer devices --->
            -*-   Enable Video Mode Handling Helpers
            [ ]   Enable Tile Blitting Support
            <*>   Userspace VESA VGA graphics support
            [*]   VESA VGA graphics support        
        Console display driver support --->
            [*] VGA text console
            [*]   Enable Scrollback Buffer in System RAM
            (64)    Scrollback Buffer Size (in KB)
            <*> Framebuffer Console support
            -*-   Map the console to the primary display device
            [ ]   Framebuffer Console Rotation
            [*]   Support for the Framebuffer Console Decorations
            [ ] Select compiled-in fonts

Enable Keyboard support for framebuffer themes:

Kernel configurationEnabling the Event Interface

Device Drivers --->
    Input Device Support --->
        <*> Event Interface

Using either radeon, intel or nouveau drivers provides a framebuffer capable device which is well implemented into the operating system. For users with the binary nVidia or AMD driver, there are workarounds using uvesafb to get frambuffer support.

Usage

General usage screnarios.

Themes

Important
this requires the fbcondecor USE flag

The different themes are stored in /etc/splash where the folder represents the theme name. To test some of them on the console use:

root # splash_manager -c set --theme=natural_gentoo --tty=1

This will change the theme on tty1 to natural_gentoo. You can choose any theme in /etc/splash that matches your current resolution. Now to see the theme go to tty1 by pressing Ctrl+Alt+F1.

If you want to preview a theme in silent mode without reboot, then try

root # splash_manager -c demo -t natural_gentoo -m s --steps=100
Note
Don't run this command under X window.

For more reference please refer to

root # splash_manager --help

Genkernel

If the initramfs is created using genkernel, the configuration in /etc/genkernel.conf should be changed to the theme used.

File/etc/genkernel.conf

# Enable splashutils in early space (initrd). Default is "no".
SPLASH="yes"

# Use this splash theme. If commented out - the "default" name theme is used.
# Also, SPLASH="yes" needs to be enabled for this one to one work.
# This supersedes the "SPLASH_THEME" option of /etc/conf.d/splash (in early space).
SPLASH_THEME="emerge-world"

Alternatively the /etc/conf.d/splash could be used to configure the theme, which will be loaded after initramfs.

Append

To append the theme to an existing initramfs:

root # splash_geninitramfs --verbose --res NxN --append /path/to/initramfsimage theme

Generate

To create a new initramfs for our theme:

root # splash_geninitramfs --verbose --res NxN --generate /boot/initramfs-bootsplash theme

Copy

To create a new initramfs with the content of an existing one to add our theme:

root # splash_geninitramfs --verbose --res NxN --copy /path/to/initramfsdir theme

Bootloader

In GRUB2 the parameters can be added to the variable GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub.

Codekernel commandline

... video=uvesafb:1920x1080-32,mtrr:3,ywrap splash=verbose,theme:emerge-world ...

Then run:

root # grub2-mkconfig -o /boot/grub2/grub.cfg

This enables the verbose version of the emerge-world theme, a full list of parameters can be found in /usr/share/doc/splashutils*/kernel_parameters. The parameter video=1920x1080 is optional, but will choose the proper resolution for the image.

Screenshot

To make screenshots of the framebuffer console, the tool media-gfx/fbgrab can be used:

user $ fbgrab fbscreen.png

Bootsplash.png