Spice up your boot screen!

Bootsplash Software

For Linux

Presented by:

Andy Stewart

14-june-2004

Created with OpenOffice.org 1.1.1 on a SuSE Linux 9.1 system

Introduction

Some people find scrolling text at boot time boring...

Unless debugging, why look at the text?

Let's configure the computer to display something graphically pleasing during boot.

Leave the option to see the text (just in case)

Software packages gfxboot and bootsplash will be discussed in this presentation.

Jazz up the Boot Menu

The GRUB menu is functional but (IMHO) not very pretty.

The gfxboot software can retain the function and make the graphics more pleasing.

Available on recent SuSE distros – works with LILO, Syslinux, GRUB. License = GPL.

Make the message file:

/usr/sbin/mkbootmsg \
-L /usr/share/gfxboot/themes/SuSE \
-c <config> <outfile>

mv <outfile> /boot/message

HOWTO

LILO

Add “message=/boot/message” to /etc/lilo.conf

GRUB

Add “gfxmenu (hd0,1)/boot/message” (or similar) to
/boot/grub/menu.lst

Reboot the computer

You should see a graphically pleasing boot menu

Normal GRUB Menu

gfxmenu for GRUB

Bootsplash

Bootsplash hides the scrolling text normally seen during boot.

Two choices: silent or verbose

Silent:

Screen contains graphic and progress bar

Press F2 to go to verbose screen

Verbose:

Graphic with text region overlay and progress bar (can't go back to silent screen...sorry!)

Install the Software

Install bootsplash and bootsplash-theme packages

Download sources from http://www.bootsplash.org

Many bootsplash themes already exist !

Download themes from http://bootsplash.de

Configure the Kernel

Install kernel sources

One must apply the bootsplash kernel patch

Patch rev must match your kernel rev !

cd /usr/src/linux

patch -p1 < bootsplash_patch_file

Your distribution's kernel might already have this patch applied (SuSE kernel is OK)

Configure kernel (zless /proc/config.gz)
(slightly different 2.4 vs. 2.6, see next slides)

Compile and install kernel

Linux 2.4.x kernel config

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

Linux 2.6.x kernel config

Code maturity level options --->

[*] 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

Bootsplash Installation

Bootsplash software attaches picture to initrd file

SuSE:

point to desired theme in /etc/sysconfig/bootsplash

mkinitrd -s <resolution>

Example: mkinitrd -s 640x480

Generic:

Run “splash” program

Example: splash -s -f <config_file> >> /boot/initrd

SuSE: /etc/sysconfig/bootsplash

## Path: System/Boot

## Description: selects bootsplash graphics theme

## Type: string

## Default: SuSE

# Choose the bootsplash theme. It should be based in

# /etc/bootsplash/themes

#THEME="SuSE"

#THEME="TuxNTosh"

#THEME="KillBillTux-Yellow"

THEME="FrozenBubble"

## Path: System/Boot

## Description: enables/disables bootup graphics

## Type: yesno

## Default: yes

#

# SPLASH can be set to "no" to turn off the splash-screen on console 1

# at boot time (after kernel load).

#

# SPLASH=no to disable the splash screen

#

# SPLASH=yes to show the splash screen

#

SPLASH="yes"

Kernel Boot Parameters

When booting, add “vga=<number>” to indicate resolution.

Also add “splash=silent”

VGA table: resolution and color depth
Depth 640x480 800x600 1024x768 1280x1024
8 769 771 773 775
15 784 787 790 793
16 785 788 791 794
24 786 789 792 795

/usr/src/linux/Documentation/
kernel-parameters.txt

Bootsplash Themes

Many themes already exist

Hack existing themes to create your own !

Theme config files are small but tedious to create...no creation GUI exists.

JPEG image file must follow naming convention

bootsplash-<res>.jpg

silent-<res>.jpg

Config files must follow naming convention

config/bootsplash-<res>.cfg

Themes: /etc/bootsplash/themes/<THEME>/

subdirs: bootloader, config, images

Creating your own Theme

Copy existing theme to <your_theme_dir>

Replace images with your own

one image for each supported resolution

follow naming conventions

Edit config files to your liking

this is a bit tedious

Gimp helps figure out pixel coordinates

kcolorchooser helps with hex color values

one config for each supported resolution

Edit /etc/sysconfig/bootsplash to point to your theme

Append to /boot/initrd (splash or mkinitrd)

Reboot to test or try “splash -s -u <console#> <cfg>”

Themes Demo

Show slideshow of themes with Kuickshow

Demo real boot in VMware

Conclusion

gfxboot will make the GRUB menu pretty

bootsplash will either:

hide the scrolling boot text

make it pretty with a graphical background

Press F2 to see text messages

All of this software is GPL.

2004-06-14T21:29:07