Fbsplash

From ArchWiki

Fbsplash (formerly gensplash) is a user-space implementation of a splash screen for Linux systems. It provides a graphical environment at system startup using the Linux framebuffer layer.

Installation

Fbsplash

Install the fbsplashAUR package.

To have a background image of your virtual terminals you will need to install a kernel patched with fbcondecor, see below.

Themes

Themes are available as packages and can also be found at GNOME-Look.org or KDE-Look.org.

Configuration

Preview

To choose from the themes that you will have installed without restarting or configuring anything, you can use splash_manager command.

This command must not be executed under X, but from a TTY).

For example to test the arch-black theme, after having installed it of course, in silent mode without restarting:

# splash_manager -c demo -t arch-black --steps 100

For more information:

$ splash_manager --help

Configuration file

Add the theme (s) you installed in /etc/conf.d/splash. You can also specify screen resolutions to save some space:

/etc/conf.d/splash
...
SPLASH_THEMES = "
   arch-black
   arch-banner-icons/1280x1024.cfg
   arch-banner-noicons/1280x1024.cfg "
...

Kernel command line

To work with Fbsplash, you must pass certain options to your kernel via your bootloader:

console = tty1 splash = silent, theme: theme name

GRUB

For GRUB, directly edit /boot/grub/grub.cfg:

/boot/grub/grub.cfg
...
linux /boot/vmlinuz-linux root=/dev/... quiet console=tty1 splash =silent,theme:arch-banner-icons
...

Or better yet, go through /etc/default/grub and add the kernel options to the GRUB_CMDLINE_LINUX_DEFAULT line:

/etc/default/grub
...
GRUB_CMDLINE_LINUX_DEFAULT="quiet console=tty1 splash=silent,theme:arch-banner-icons"
...

Do not forget to regenerate grub.cfg.

Other chargers

For GRUB Legacy, LILO or Syslinux, all you have to do is add the options to the kernel in the appropriate configuration file (respectively /boot/grub/menu.lst, /etc/lilo.conf or /boot/syslinux/syslinux.cfg).

Start Fbsplash

Tip: The F2 key will allow you to toggle between splash and Arch messages on startup. Think about it if the splash does not appear or if you find your startup taking a long time.

Normal launch

Once installed and configured, without doing anything more, fbsplash should load automatically the next time you boot, right after a few Arch messages on boot (right after udev).

Early launch

If you find these few messages unsightly (or just to enjoy your splash longer), it is possible to start fbsplash before the first messages at startup.

Just add fbsplash to HOOKS array in mkinitcpio.conf:

/etc/mkinitcpio.conf
...
HOOKS = (base fbsplash ...)
...

or:

/etc/mkinitcpio.conf
...
HOOKS = (base udev ... resume fbsplash ...)
...

or, in case of encryption of the system:

/etc/mkinitcpio.conf
...
HOOKS = (base ... keymap encrypt fbsplash ...)
...

Then, regenerate the initramfs.

Note: In case of problems with fbsplash if your machine uses KMS (check Kernel mode setting#Late KMS start to see which cards do), add the appropriate driver to the MODULES line of mkinitcpio.conf, see Kernel mode setting#Early KMS start.
Warning: To guard against any problem with fbsplash that would block your startup, it might be a good idea not to generate the fallback image with this HOOK.

Edit /etc/mkinitcpio.d/kernel.preset

/etc/mkinitcpio.d/kernel.preset
...
fallback_options = "-S autodetect,fbsplash"
...

Then, regenerate the initramfs.

Console background images

With a kernel that supports Fbcondecor (e.g., one with a framebuffer console decoration patch applied), you can have a background image of your virtual consoles.

Configuration

Note: fbcondecor-systemdAUR provides a systemd service "to activate console decorations on system start".

There is also a configuration file, /etc/conf.d/fbcondecor, to define the virtual terminals that will support this display mode.

Add the appropriate entries to your boot loader file, this kernel called vmlinuz-linux-fbcondecor and its images initramfs-linux-fbcondecor.img and initramfs-linux-fbcondecor-fallback.img.

Tip: This time you can also use splash = verbose to take advantage of background messages at startup as a replacement for the splash.

See also