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.