# Splash screen on bootup



## Kitche (Nov 17, 2008)

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:


```
# 	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.


----------



## graudeejs (Nov 17, 2008)

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


----------



## SirDice (Nov 17, 2008)

Your kernel probably needs "option SC_PIXEL_MODE".


----------



## graudeejs (Nov 17, 2008)

SirDice said:
			
		

> Your kernel probably needs "option SC_PIXEL_MODE".



Nope, i have it in my kernel config


----------



## SirDice (Nov 17, 2008)

Either the mode is incorrect or there are no fonts..

You can check which modes are supported with *vidcontrol -i mode*.


----------



## graudeejs (Nov 17, 2008)

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


----------



## richardpl (Nov 17, 2008)

Let me guess:
You are using i386 and vesa module is loaded?

Your machine dont need to support working *MODE_279*


----------



## SirDice (Nov 17, 2008)

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.


----------



## bsddaemon (Nov 17, 2008)

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.


----------



## graudeejs (Nov 17, 2008)

uname -a

```
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).


----------



## SirDice (Nov 17, 2008)

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


----------



## graudeejs (Nov 17, 2008)

ye nvidia is loaded...
(i don't really care about splash either, just wanted to try out)


----------



## kamikaze (Nov 17, 2008)

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
> 
> ...


You forgot about the most important requirement. You have to run i386.


----------



## Kitche (Nov 18, 2008)

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.


----------



## thomas (Jan 27, 2009)

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!


----------



## thomas (Jan 27, 2009)

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 (Jan 28, 2009)

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!


----------



## SoulStealer (Apr 5, 2009)

I have a problem, the splash screen loads with improper colors, used 256 colors, 16 colors, still colors messed up, here the pic
http://www.kde-look.org/content/show.php/FreeBSD+boot+splash?content=46075


----------



## nikobordx (Apr 7, 2009)

Hi,

Have you loaded the vesa module ?

Nicolas.


----------

