Print View

FreeBSD Splash Screen
Updated: 03/24/2007


General Information

FreeBSD allows for the configuration of a splash screen to replace the text displayed while booting.  Often an image is preferred over plain text.  Adding a splash screen will not eliminate the text that would have been displayed while booting.  This text is always available by running dmesg.

Requirements

  1. root access
  2. This requires either a bitmap or a ZSOFT PCX image file.  The image must be 256 colors (8 bit) or less and must be a supported resolution.  By default the largest resolution supported is 320x200.  However, if the vesa module is loaded, other resolutions up to 1024x768 may be possible, though 256 colors remains the maximum.

Configuration

This guide will demonstrate the configuration changes that must be made to loader that are required for a splash screen.  These changes can be made in the /etc/loader.conf or in a /etc/loader.conf.local file.  This guide will use /etc/loader.conf.local for all examples.

Using a Bitmap Image

Create /boot/loader.conf.local and add a line to it that will load the vesa kernel module.  This can be done as root in one command:
# echo 'vesa_load="YES"' >> /boot/loader.conf.local
Add a second line that will load the bitmap kernel module.
# echo 'bitmap_load="YES"' >> /boot/loader.conf.local
Add a third line that will configure the bitmap image to be loaded at start up.
# echo 'splash_bmp_load="YES"' >> /boot/loader.conf.local
By default /boot/kernel/splash.bmp is the image that will be loaded.  Copy the image to /boot/kernel/splash.bmp or this setting can be changed by specifying the path to the bitmap file using bitmap_name.
# cp /path/to/your/image.bmp /boot/kernel/splash.bmp
- or to change the default setting -
# echo 'bitmap_name="/path/to/your/image.bmp"' >> /boot/loader.conf.local
Test by rebooting.

Using a ZSOFT PCX Image

Create /boot/loader.conf.local and add a line to it that will loader the vesa kernel module.  This can be done as root in one command:
# echo 'vesa_load="YES"' >> /boot/loader.conf.local
Add a second line that will loader the bitmap kernel module.  This is needed even though a PCX image is being used.
# echo 'bitmap_load="YES"' >> /boot/loader.conf.local
Add a third line that will configure the PCX image to be loaded at start up.
# echo 'splash_pcx_load="YES"' >> /boot/loader.conf.local
By default /boot/kernel/splash.bmp is the image that will be loaded.  To use a PCX file the bitmap_name setting needs to be changed:
# echo 'bitmap_name="/path/to/your/image.pcx"' >> /boot/loader.conf.local
Test by rebooting.

Troubleshooting

If the splash screen does not load, an error message will be available in /var/log/messages.  Below is and example of two of such error messages.

Example 1
Feb  2 14:05:17 FreeBSD kernel: module_register_init: MOD_LOAD (splash_bmp, 0xc0a419e4, 0) error 2
Error 2 has been seen when the path to the image is incorrect or when bitmap_load is not set to YES.

Example 2
Feb  2 14:08:22 FreeBSD kernel: module_register_init: MOD_LOAD (splash_bmp, 0xc0a418c2, 0) error 19
Error 19 is common when the image is not a supported format.  This means one of two things:
  1. The image has an invalid pixel size, meaning it is not 320x200, or with vesa loaded, a support pixel size up to 1024x768.
  2. If a bitmap, the image has more than 256 colors.
  3. If a PCX image, it is not an 8-bpp single planed image.
  4. To view availabe image sizes, run the following command from ttyv0:
# vidcontrol -i mode | awk '{print $5}' | grep x8


Author: Jared Barneck
rhyous at yahoo dot com

Find this guide useful?
Support the author:



1 Comment

Posted by mato on April 25, 2008 at 4:28:25 pm EEST

Should you like to use more than one splash image, you may find the following port useful -- http://www.freshports.org/sysutils/bsd-splash-changer/ -- It will randomly choose from as many boot splash images as you provide it with.


Copyright 2003 - 2010 BSD Guides.  All rights reserved.

About | Terms of Use | Privacy | Contact