Note: This page uses fbsplash (aka gensplash) for its graphical boot procedure. This kernel patch and userspace software is different from and mutually exclusive to the patch and procedures detailed in the ArchLinux Bootsplash HOWTO.
- 1 Having problems?
- 2 The Easy Way
- 3 The Hard Way
- 4 Getting gensplash themes
- 5 Optional: Install patched initscripts to support silent splash
- 6 Pre-reboot checks
- 7 Troubleshooting
- 8 Bootloader splashes
- 9 References
See the Troubleshooting section at the bottom
The Easy Way
I created a special gensplashutils package that contains everything you should need to get gensplash working. This includes examples for lilo and grub, a splash rc.d script, called gensplash, to start the backgrounds on the virtual terminals (and a config file to support this), and the darch theme, created by Rensel.
The gensplashutils package that I created can now be installed from the [community] repo. Uncomment the following lines in
/etc/pacman.conf or add them if you don't have them there:
[community] Server = ftp://ftp.archlinux.org/community/os/i686/
Then install it:
# pacman -Sy gensplashutils
Create the initcpio image for your preferred theme
This is very easy and not at all as hard as it sounds!
If you use kernel26beyond (formerly known as kernel26archck) package from [extra], edit your
/etc/mkinitcpio.conf to enable fbsplash and set the name of the theme and its resolution.
Add the hook to enable fbsplash and specify at the end of the file the theme you'll use and at which resolution. Try 'darch', it's included in the gensplashutils. The conf file shall look like this:
HOOKS="base udev autodetect ide resume fbsplash" FBTHEMES="darch" FBRES="1024x768"
mkinitcpio -p kernel26beyond
That's it, now you can skip to updating your bootloader.
Note: To use silent mode, you need to install gensplashutils and initscripts-gensplash from community.
The Hard Way
Patch a kernel with fbsplash
Gensplash support, through fbsplash, is not in the standard kernel tree, so you will have to patch the kernel with either a patchset that features fbsplash or with the fbsplash patch from the developers repository. See the Kernel Patches and Patchsets page for more details.
There are several methods you can use to patch your kernel. I would recommend using the Custom_Kernel_Compilation_with_ABS_(2.6.9_and_later) howto but you could also use one of the following to guide you:
Which ever method you choose but be sure to choose the following settings at the
Device Drivers Block Devices RAM disk support (BLK_DEV_RAM) = Y Inital RAM disk (initrd) support(BLK_DEV_INITRD)=Y Graphics Support Support for framebuffer devices (FB) = Y VESA VGA graphics support (FB_VESA) = Y VESA driver type vesafb (FB_VESA_STD) = Y (see note 1) vesafb-tng (FB_VESA_TNG) = N (see note 2) "Card Specific" display support (FB_"CARD") = N (see note 3) Logo Configuration Bootup logo (LOGO) = N Support for the framebuffer splash (FB_SPLASH) = Y
- If you are NOT running 32bit x86 (eg. 64 bit) you should compile vesafb support INSTEAD of vesafb-tng.
- Even if you are running 32bit x86 I DO NOT recommend vesafb-tng over vesafb, it is slow and requires different configs to vesafb, switching framebuffer types between kernels will cause you grief. If you have previously used vesafb keep using it!
- There are several card specific framebuffer options. You may try them if you want, but you should only compile the VESA driver or a card specific one, not both. Also, be aware the ATI drivers may be prone to incorrect color pallete problems.
Building and installing Splashutils
You need the splashutils userspace utilites to make fbsplash work properly. There are several utilities in the package but we are mainly interested in splash_helper, splash_geninitramfs, bootsplash2fbsplash, and splash_util. Splashutils needs to link to your patched kernel source if you build it yourself.
About the most important tools:
- splash_helper = actual code to make the splash screen work
- splash_geninitramfs = generates a RAM disk image containing splash_helper and the graphics we choose
- bootsplash2fbsplash = convert older bootsplash themes into the new fbsplash format
- splash_util = allows us to control the silent mode progress bar from the init scripts
Or you use the one of the following PKGBUILDs to make the package yourself. The first allows you to build the same pkg as i have in my repo but based on your kernel sources and includes my tools pkg. The second simply builds the vanilla splashutils pkg and doesn't incorporate the additional files I have collected.
All my splashutils files (current version 0.1.9) can be found here http://dtw.jiwe.org/share/gensplash/
Current gensplashutils PKGBUILD and splashutils.install can be found here - maintained by dibblethewrecker
Kernels without initcpio support
If you use another kernel then you need to perform the following:
Simply use splash_geninitramfs:
splash_geninitramfs -v -g /boot/fbsplash-theme-1024x768 -r 1024x768 theme
where theme is the theme you want to use
Here is what the splash_geninitramfs options mean:
-v tells splash_geninitramfs to go into verbose mode -g tells splash_geninitramfs to generate the initramfs image file /boot/fbsplash-newtheme-1280x1024 -r tells splash_geninitramfs to use the 1280x1024 resolution -the 'newtheme' part tells splash_geninitramfs to look in the /etc/splash/newtheme directory for the .cfg files
To see a description of all splash_geninitramfs' options:
Example for the splashutils.install file.
To install the darch theme run the following as root: splash_geninitramfs -v -g /boot/fbsplash-darch-1024x768 -r 1024x768 darch
Getting gensplash themes
This step is optional. If you are happy with the default theme called darch, which is included in the gennsplashutils package, you can skip to the next step.
Now we need some themes before we go any further. For starters, all gensplash themes should be installed in
/etc/splash/, my pkg installs one there straight off. However, currently there are not many prebuilt gensplash themes about, you can find a few on http://dev.gentoo.org/~spock/projects/gensplash . However, they are very easy to make, I made the ArchMetal theme very easily, by looking at other theme cfgs and the Gentoo's fbsplash HowTo. Probably the easiest way to get started is to download some themes for bootsplash and convert them!
Converting bootsplash themes into fbsplash format.
It's VERY easy:
- you will need to extract the themes to /etc/bootsplash/ dir.
- to convert them into fbsplash format simply run
# bootsplash2fbsplash bootsplashthemename
- you don't need the path or anything - this will install a new version of the theme in gensplash format in
Update your bootloader (pre 2.6.19-beyond)
Now it's time to update the configuration file for your boot loader. Important: add a new bootload entry, do not replace your existing one. If there are problems, you want to be able to fallback on your known good configuration.
If you do not use kernel26beyond from [extra], the following examples will work:
The example configs can be also found in
/etc/splash/ dir, but take care that this files are not updated to reflect initcpio changes.
The following are working GRUB entries for kernel26beyond kernel. You may need to modify kernel image and initcpio names and partitions:
# Verbose mode title Arch root (hd0,0) kernel (hd0,0)/boot/vmlinuz26beyond root=/dev/hda1 video=vesafb:ywrap,mtrr,1024x768-32@60 splash=verbose,theme:darch console=tty1 initrd (hd0,0)/boot/kernel26beyond.img # Silent mode title Arch root (hd0,0) kernel (hd0,0)/boot/vmlinuz26beyond root=/dev/hda1 video=vesafb:ywrap,mtrr,1024x768-32@60 splash=silent,theme:darch console=tty1 quiet initrd (hd0,0)/boot/kernel26beyond.img
And LILO entries:
# Verbose mode image=/boot/vmlinuz26beyond label=Arch root=/dev/hda1 append="video=vesafb:ywrap,mtrr,1024x768-32@60 splash=verbose,theme:darch console=tty1" initrd=/boot/kernel26beyond.img # Silent mode image=/boot/vmlinuz26beyond label=Arch root=/dev/hda1 append="video=vesafb:ywrap,mtrr,1024x768-32@60 splash=silent,theme:darch console=tty1 quiet" initrd=/boot/kernel26beyond.img
Update your bootloader (2.6.19-beyond and later)
These following bootloaders are examples, adjust them to your need, taking note of the root, initrd and kernel options to suit your own system's partitions.
For verbose mode, remove the 'quiet' flag from the bootloader line and change silent to verbose.
For a resolution other than 1024x768-24, you may pick a different vga= value from the lookup table below.
title Arch root (hd0,0) kernel (hd0,0)/boot/vmlinuz26beyond root=/dev/hda1 vga=792 video=vesafb:mtrr:3,ywrap splash=silent,kdgraphics,theme:darch console=tty1 quiet initrd (hd0,0)/boot/kernel26beyond.img
image=/boot/vmlinuz26beyond label=Arch root=/dev/hda1 append="vga=792 video=vesafb:mtrr:3,ywrap splash=silent,kdgraphics,theme:darch console=tty1 quiet" initrd=/boot/kernel26beyond.img
Table of vga= values
|640x480||- 800x600||- 1024x768||- 1280x1024||- 1152x864||- 1600x1200|
|8 bit||769||- 771||- 773||- 775||- 353||- 800|
|15 bit||784||- 787||- 790||- 793||- 354||- 801|
|16 bit||785||- 788||- 791||- 794||- 355||- 802|
|24 bit||786||- 789||- 792||- 795||- 803|
Optional: Install patched initscripts to support silent splash
You'll need to patch your initscripts to get the silent splash. The patched version of the latest initscripts can be found in [community] repo:
# pacman -S initscripts-gensplash
Note: these pkgs depend on splashutils, both gensplashutils and splashutils provide splashutils
This package will replace your existing initscripts and therefore your /etc/rc.local, rc.conf and inittab will be OVERWRITTEN. However, it will create their backups as /etc/rc.local.pacsave, rc.conf.pacsave and inittab.pacsave respectively. You need to modify the files again if you have made some changes to them before.
Current PKGBUILD and patch are here
Just before you reboot, let's check and make sure that everything is ready:
- If the new kernel has different modules compiled/loaded, have you updated your
/etc/rc.localto remove compiled in or added newly modular modules?
- Is the path in your bootloader configuration for the initrd command correct?
- Does the resolution in the video= boot parameter match the resolution(s) provided by your fbsplash theme?
- If you're using LILO, did you run LILO to update the boot sector?
- Do you have SystemRescueCD or Knoppix standing by in case your machine is unable to boot?
splashutils-1.1.9 saw a major architecture change and so some major changes to the scripts and operation of the application. The changes have bought some problems for a few people so please check this section out!
NO splash screens at all:
- check you are using a kernel patch that includes fbsplash-0.9.2-2.6.11 or later - this was essentially introduced in 2.6.11 patchsets - so if you are using pre 2.6.11 you probably don't have the right fbsplash patch
- ensure your patchset is compatible with your source, most major patchsets are not compatible with the 2.6.x.y branches
- if you have checked all this and still have no luck try rebuilding gensplash for yourself against the kernel source you wish to use, all the required materials are linked above
Text overwriting your screen in silent mode:
- If you are having issues with text overwriting your screen in silent mode please check that are using the console=tty1 and quiet options in your bootloader config.
Backgrounds not being set on vc's at boot
- This is a weird issue and possibly an upstream bug - it may be related to Arch's init order however. To fix this issue try setting
CONSOLEFONT=default8x16.psfu.gz in rc.conf