Splash screen on bootup

So you don't want to see the lines of text scrolling by on boot well here is how you can put a splash screen instead.

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.

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:

Code:
# 	echo 'vesa_load="YES"' >> /boot/loader.conf.local

Add a second line that will load the bitmap kernel module.
Code:
# 	echo 'bitmap_load="YES"' >> /boot/loader.conf.local

Add a third line that will configure the bitmap image to be loaded at start up.

Code:
# 	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.

Code:
# 	cp /path/to/your/image.bmp /boot/kernel/splash.bmp

- or to change the default setting -

Code:
# 	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:
Code:
# 	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.

Code:
# 	echo 'bitmap_load="YES"' >> /boot/loader.conf.local

Add a third line that will configure the PCX image to be loaded at start up.

Code:
# 	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:
Code:
# 	echo 'bitmap_name="/path/to/your/image.pcx"' >> /boot/loader.conf.local

Test by rebooting.
 
I have tried this about week or two ago....
It failed...
It loaded image....
But in my rc.conf i got
allscreens_flags="MODE_279"
and after mode is switched, i could only see blank screen

I think it's allscreens_flags="MODE_279" causing problems
 
Either the mode is incorrect or there are no fonts..

You can check which modes are supported with vidcontrol -i mode.
 
My mode is correct, it works for me well (as long as i don't use splash on boot), i use it all the time, even know....

after that if i remember correct, it switches, and stays blank
 
It may be related to the videocard? I've got a freebsd vmware guest that shows a splash screen and also does a mode switch. Never had any issues with it.
 
Of course he is using i386 and vesa module loaded (as he said it works all the time). You can not even start compiling kernel with VESA if your system is 64 bit.
 
uname -a
Code:
FreeBSD killasmurf86.lv 7.0-RELEASE-p5 FreeBSD 7.0-RELEASE-p5 #5: Thu Nov 13 02:20:27 EET 2008     root@killasmurf86.lv:/usr/obj/usr/src/sys/killabsd  i386

My video card is nvidia geforce 6600le 256M

I use FreeBSD as desktop OS (no dual boot with win).
 
Is the nvidia kernel module loaded? If that's the case it's probably that.
I never had any luck changing video modes with the binary nvidia driver.
Doesn't quite matter for me though. The binary driver is mainly for running X anyway, so I hardly use the console ;)
 
Kitche said:
So you don't want to see the lines of text scrolling by on boot well here is how you can put a splash screen instead.

Requirements

1. root access
...
You forgot about the most important requirement. You have to run i386. ;)
 
well I don't have an AMD64 machine so I didn't know it was for i386 only but I just copied and pasted from BSDGuides since I know there are quite a few old guides out there for FreeBSD and I know the one from BSDGuide works.
 
Thanks for the howto; I appreciate the repetition of information found in dozens of places on the web; could someone please post a valid pcx file for us? There are no galleries available with pcx files; they are all png/jpg/bmp/etc. I probably have a conversion error, but seeing error 19 is not helpful unless I have a valid pcx splash screen file (640x480) to test against. I imagine there could be hundreds of people trying to do this, each staring at error 19 (is it wrong color depth?? video doesn't support?? not single plane??) -- a known, working pcx file from someone could save us some time. Thanks!
 
Now that I've ranted, I borrowed the splash screen from a (fresh) install of PC-BSD 7.01 and used it to test the /boot/loader.conf.local splash lines and my kernel config to verify that, yes, I too can have a splash screen in plain 'ol FreeBSD 7.1-RELEASE.

Then, I loaded the known, good, splash screen image from PC-BSD 7.01 (loading-screen.pcx) into GIMP and noticed that in the title bar, instead of

'loading-screen.pcx (RGB, 1-layer) etc.'

it says

'loading-screen.pcx (Indexed, 1-layer) etc.'

I then scanned the wwwwwww to find out how to convert a GIMP image to 'indexed' I then converted an image I like (I think from the FreeBSD.org gallery) to a 1024x768 pcx image and converted it from RGB to Indexed. This image also loaded as a splash screen during bootup. Hooray! Whooooo!

So, my method of creating a splash-screen'able image of your favorite pic is to:

1) If not a .pcx file, then, using GIMP, load your image and convert format to .pcx by using 'Save As' 'name.pcx' Ensure that the resolution is correct (no more than 1024x768, according to docs). If it is an odd size, you may have to expand until it is an even numbered resolution that exactly matches one of your adapter's modes. Someone could test this...

2) convert the mode from (probably 'RGB') to 'Indexed' using the menus 'Image/Mode' and select 'Indexed' In the Indexed Color Conversion dialog that appears, select 256 colors max and ensure that Color Dithering is set to None.

Save the file agan and copy the result to the location
specified in /boot/loader.conf.local...

Follow the rest of the instructions for creating a splash screen, which, again, appear in dozens of places on the www. If you still can't get a splash screen, do as I did and

1) install PC-BSD on a spare box,
2) uncomment the splash lines in their installed /boot/loader.conf (it's off by default),
3) re-boot to see that you can have their splash screen,
4) copy the emage file (probably '/boot/loading-screen.pcx') to your FreeBSD box, and,
5) test your FreeBSD splash with that file until you are sure you can at least do someone's splash screen, then set about converting your desired image to valid splash file format.

I hope I that I have helped at least one other person create a splash screen. Now, stop wasting time on this and get some real work done :)
 
thomas said:
1) If not a .pcx file, then, using GIMP, load your image and convert format to .pcx by using 'Save As' 'name.pcx' Ensure that the resolution is correct (no more than 1024x768, according to docs). If it is an odd size, you may have to expand until it is an even numbered resolution that exactly matches one of your adapter's modes. Someone could test this...

I tested, and it *can* be an odd size...this image is too big to upload, but it is an odd size (799x531) jpg that can be converted to bmp (or pcx) using steps in my previous post and it works just fine as a splash screen...

http://freebsd-image-gallery.netcode.pl/_freebsd/freebsd.jpg

Cool! :)
 
Back
Top