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
- root access
- 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:
- The image has an invalid pixel size, meaning it is not 320x200, or with vesa loaded, a support pixel size up to 1024x768.
- If a bitmap, the image has more than 256 colors.
- If a PCX image, it is not an 8-bpp single planed image.
- To view availabe image sizes, run the following command from ttyv0:
# |
vidcontrol -i mode | awk '{print $5}' | grep x8 |
Author: Jared Barneck jared at bsdcertification dot com |