Search:  
Gentoo Wiki

Bootsplash

Merge-arrows.gifIt has been suggested that this article be Merged into one article with Fbsplash.    (Discuss)

Please format this article according to the guidelines and Wikification suggestions, then remove this notice {{Wikify}} from the article


Contents

2.6.8 and newer kernels

As of 2.6.8 Fbsplash has taken over bootsplash.

From the Gentoo guide on migrating from 2.4 to 2.6:
bootsplash no longer maintained
If you used the gentoo-sources-2.4 kernel, you may have used the bootsplash functionality in order to provide yourself with a colourful framebuffer console.
The developer of bootsplash appears to have lost interest in his project, given some design problems. However, Gentoo developer Michal Januszewski is developing a successor, gensplash, which is included in the gentoo-sources-2.6 kernel. You can follow Michal's Gensplash in 5 easy steps document in order to familiarize yourself with how gensplash is operated."
Note: This HowTo is mainly for BootSplash, go here for Fbsplash, which includes the use of Spock's fabulous bootsplash2fbsplash tool for converting old Bootsplash themes to Fbsplash.

Objectives

Benefits

Drawbacks

High resolution framebuffer & bootsplash

Emerge media-gfx/bootsplash (graphical backgrounds for frame buffer consoles).

Warning: with the latest kernels (from gentoo-sources 2.6.8-r1) bootsplash has been replaced by gensplash and this part of the howto doesn't apply anymore ! for further information, see Fbsplash.
emerge splashutils

Overwrite your old bootsplash configuration files.

etc-update

Check that the symbolic link /usr/src/linux is pointing to the kernel of your choice.

readlink -f /usr/src/linux

Some kernels such as gentoo-sources, gaming-sources and xfs-sources already have the bootsplash patch built in. Check whether your kernel supplies bootsplash and if it does not have it then patch the kernel as below.

Warning: This patch does not apply cleanly to current (Aug 22, 2004) gentoo-sources or development-sources!
bootsplash_patch

Enter the kernel configuration.

make menuconfig

For all kernel trees build these options directly into your kernel. Do NOT make them modules and do not enable nvidia or ATI specific options.

For 2.6.x kernel tree enable the following options.

Linux Kernel Configuration: 2.6.x
General setup  --->
    [*] Prompt for development and/or incomplete code/drivers
Processor type and features  --->
    [*] MTRR (Memory Type Range Register) support
Device Drivers  --->
    Block devices  --->
        <*> Loopback device support
        <*> RAM disk support
        (4096) Default RAM disk size
        [*]   Initial RAM disk (initrd) support
    Graphics support  --->
    [*] Support for frame buffer devices
    [*]   VESA VGA graphics support
        Console display driver support  --->
        [*]   Video mode selection support
        <*> Framebuffer Console support
        Bootsplash configuration  --->
        [*] Bootup splash screen

For 2.4.x kernel tree enable the following options.

Linux Kernel Configuration: 2.4.x
Code maturity level options  --->
    [*] Prompt for development and/or incomplete code/drivers
Processor type and features  --->
    [*] MTRR (Memory Type Range Register) support
Block Devices ->
    [*] Loopback device support
    [*] RAM disk support
    (4096)   Default RAM disk size
    [*] Initial RAM disk (initrd) support
Console Drivers ->
    [*] VGA text console
    [*] Video mode selection support
Console Drivers -> Frame-buffer support ->
    [*] Support for frame buffer devices
    [*] VESA VGA graphics console
    [*] Use splash screen instead of boot logo

For any kernel do NOT enable the following options or else you risk bootsplash not working or framebuffer corruption when switching VTs.

Linux Kernel Configuration: Any kernel
Device Drivers  --->
    Graphics support  --->
            < >   nVidia Riva support  (do not enable!)
        Logo configuration  --->
            [ ] Bootup logo  (do not enable!)

If you have problems later disable the following option in kernel

Linux Kernel Configuration: Any kernel
Device Drivers  --->
    Character devices  --->
        < > /dev/agpgart (AGP Support)

And add the following line to your /etc/X11/XF86Config[-4] or /etc/X11/xorg.conf file.

Option          "NvAGP"         "1"
make && make modules_install
make dep && make clean bzImage modules modules_install

Install your kernel as below but do NOT unmount /boot and do NOT reboot until asked to later.

mount /boot
mv /boot/bzImage /boot/bzImage.old
cp /usr/src/linux/arch/i386/boot/bzImage /boot/

If you get errors during kernel compilation or missing options during configuration do as below.

cd /usr/src/linux/
mv .config ~/kernel.config
make mrproper
mv ~/kernel.config .config
make oldconfig
make menuconfig

Assuming /boot is mounted set an image to appear during the boot process.

/sbin/splash -s -f /etc/bootsplash/default/config/bootsplash-1280x1024.cfg >> /boot/initrd-1280x1024

Or you can copy an already exisiting initrd image that is provided with the bootsplash package.

cp /usr/share/bootsplash/initrd-1280x1024 /boot/

Edit your /boot/grub/grub.conf file. The example below has been provided for your convenience. Here are the meanings of the various parameters.

video= goes on kernel line and controls display options such as ywrap and mtrr which speed up framebuffer scrolling
vga= goes on kernel line and controls the resolution and colour depth of framebuffer
splash= goes on kernel line and takes either 'silent' or 'verbose' but silent boots may not work
initrd= goes on a new line after kernel line and loads an image during the booting process.
default 0
timeout 10
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
 
# With both framebuffer and bootsplash
title=Gentoo GNU/Linux 1.4 (+fb +splash)
root=(hd0,0)
kernel=/bzImage root=/dev/hda3 video=vesafb:ywrap,mtrr vga=0x31A splash=silent
initrd=/initrd-1280x1024
 
# With framebuffer but without bootsplash
title=Gentoo GNU/Linux 1.4 (+fb -splash)
root=(hd0,0)
kernel=/bzImage root=/dev/hda3 video=vesafb:ywrap,mtrr vga=0x31A
 
# Without both framebuffer and bootsplash
title=Gentoo GNU/Linux 1.4 (-fb -splash)
root=(hd0,0)
kernel=/bzImage root=/dev/hda3

Here is a lilo.conf example configuration courtesy of ophidia.

image = /boot/vmlinuz
 
       root = /dev/hdaX
       label = Gentoo
       initrd = /boot/initrd (/boot/initrd is symbolic link on your initrd)
       vga = 0x317
       append="video=vesafb:ywrap,mtrr:2 splash=silent"     #(generally in that order) for 2.6.13 kernel onwards
  1. append="video=vesafb:ywrap,mtrr splash=silent" #(generally in that order) for 2.6.x kernel
#       append="video=vesa:ywrap,mtrr splash=silent"       #                                for  2.4.x kernel
       read-only

Note that in the above grub and lilo configuration examples the keyword 'vesafb' is applicable to 2.6.x kernels. For 2.4.x kernels it should be changed to 'vesa'.

Kernel mode numbers

Here is a chart of kernel mode numbers for the 'vga=' boot parameter.
Colours 640x400 640x480 800x600 1024x768 1152x864 1280x1024 1400x1050 1600x1200
4 bits ? ? 0x302 ? ? ? ? ?
8 bits 0x300 0x301 0x303 0x305 0x161 0x307 ? 0x31C
15 bits ? 0x310 0x313 0x316 0x162 0x319 0x340 0x31D
16 bits ? 0x311 0x314 0x317 0x163 0x31A 0x341 0x31E
24 bits ? 0x312 0x315 0x318 ? 0x31B 0x342 0x31F
32 bits ? ? ? ? 0x164  ? ? ?

Note that 32-bit video modes do not support bootsplash images.

Look at the following reference files if you need more detailed information.

Add bootsplash to the default run level so that it starts on every boot.

rc-update add bootsplash default

Reboot and bask in the glory of bootplash wonder. To remind yourself of what kernel parameters you booted with do as below.

cat /proc/cmdline

Setting framebuffer without bootsplash!

To have a framebuffer only without bootsplash for greater area remove bootsplash from your default run level and reboot.

rc-update del bootsplash default

Remove or comment out this line from your chosen menu entry in grub.conf.

initrd=/boot/initrd-1280x1024

Smaller fonts on framebuffer for greater area!

Open /etc/rc.conf and change the following variable. For Gentoo 2005.0 you find it in /etc/conf.d/consolefont

CONSOLEFONT="default8x9"

To see what other fonts are available for use look in the following location and add the name without the extension to /etc/rc.conf.

/usr/share/consolefonts

Extending consolefont, framebuffer and bootsplash to all 12 virtual terminals!

Open /etc/init.d/consolefont and change all instances of

for x in 1 2 3 4 5 6 7 8 9 10

to

for x in {1..12}

If you cannot find "for x in 1 2 3 4 5 6 7 8 9 10" in /etc/init.d/consolefont then it might be possible that you have to change /etc/conf.d/rc Change

RC_TTY_NUMBER=11

to

RC_TTY_NUMBER=12

Open /etc/conf.d/bootsplash.conf and change the following variable as below.

BOOTSPLASH_TTYS="0 1 2 3 4 5 7 8 9 10 11"

For the above changes to take effect you can either reboot or restart the above init.d scripts as below. Voila!

/etc/init.d/consolefont restart
/etc/init.d/bootsplash restart

Personalising your bootsplash theme!

Create your own directory structure called 'personal'.

mkdir -p /etc/bootsplash/personal/images/
cp -r /etc/bootsplash/gentoo/config /etc/bootsplash/personal/

Change the symbolic link for the default theme.

rm /etc/bootsplash/default
ln -s /etc/bootsplash/personal /etc/bootsplash/default

Open /etc/conf.d/bootsplash.conf and change it as below.

BOOTSPLASH_THEME=default

Copy images of your choice and of correct resolution and depth into /etc/bootsplash/personal/images/. Make sure images have a resolution of 96x96 and not 300x300. Note that this is not image size but rather 'pixels per inch'. For more information look here. Open /etc/bootsplash/default/config/bootsplash-1280x1024.cfg and change paths below to point to your images.

File: /etc/bootsplash/default/config/bootsplash-1280x1024.cfg
jpeg=/etc/bootsplash/default/images/bootsplash-1280x1024.jpg
silentjpeg=/etc/bootsplash/default/images/silent-1280x1024.jpg

To have your image appear during boot add it to /boot otherwise omit this step.

mount /boot
/sbin/splash -s -f /etc/bootsplash/default/config/bootsplash-1280x1024.cfg >> /boot/initrd-1280x1024

Or with a newer version do:

mount /boot
/sbin/bootsplash_initrdgen default
cp /usr/share/bootsplash/initrd-default-1280x1024 /boot/initrd-1280x1024

Note: you can replace default with any themename you want. Reboot, test and post feedback.

Taking screenshots

emerge fbgrab
fbgrab ~/console.png

Trivia

For trivia first emerge aalib, svgalib and DirectFB. You can set additonal USE flags for MMX and SSE for DirectFB.

Try out this link.

emerge links
chown root:root /usr/bin/links2
chmod +s /usr/bin/links2
links2 -g www.gentoo.org -driver directfb.

Other drivers are X, vesa, svgalib and fb. Try them all and see what works best for you. How did links go for you? For the fb driver you may have to enable gpm. Edit the gpm config file and start it through the init.d script.

Note: If you have the 2.6.8 version of the linux kernel, this will not work. Check out Fbsplash for a suitable replacement.

See also

Retrieved from "http://www.gentoo-wiki.info/Bootsplash"

Last modified: Sat, 30 Aug 2008 07:57:00 +0000 Hits: 254,817