splash-tty1.jpgscreenshot-vt2.jpg
If you have ever seen screen shots of Gentoo Linux then you may have wondered how the virtual terminals have graphical images in the background.
This is possible using a Kernel patch and splash utils writen by Michal Januszewski http://dev.gentoo.org/~spock/projects/fbcondecor/
As this is a Kernel patch, you will need to recompile the Linux kernel to use the splash utils.
There are some old Debian packages available for splash utils e.g.
http://forums.linuxmint.com/viewtopic.php?f=42&t=20973
However these are getting a little long in the tooth. Also there are some issues when trying to compile them manually, e.g.
http://ubuntuforums.org/showthread.php?t=1503255
Grab the latest version of the fbcondecor patch from http://dev.gentoo.org/~spock/projects/fbcondecor/ or
older versions are available here http://dev.gentoo.org/~spock/project...decor/archive/
There are many guides available on how to compile a Linux kernel, and there are many guides available on compiling it the Ubuntu way. If you are interested check out these guides
https://help.ubuntu.com/community/Kernel/Compile
http://www.ubuntuforums.org/showthread.php?t=311158
http://blog.avirtualhome.com/2010/05...-lucid-kernel/
I will describe what works for me!
Start a terminal session then do the following
Code:
mkdir fbcondecor
cd fbcondecor
wget http://dev.gentoo.org/~spock/projects/fbcondecor/archive/fbcondecor-0.9.6-2.6.38.patch
sudo apt-get install linux-source
sudo adduser $USER src
su $USER
cd /usr/src
mkdir linux-source
tar xvjf linux-source-2.6.38.tar.bz2 -C linux-source
cd linux-source/linux-source-2.6.38
sudo apt-get install build-essential bin86 kernel-package libqt3-headers libqt3-mt-dev libncurses5 libncurses5-dev
cp -v /boot/config-$(uname -r) .config
make menuconfig
Now navigate to Drivers->Graphics Support->Console Display Driver Support
kernelconfig.png
Currently the options we require isn't available, we need to patch the kernel and disable some graphics drivers.
Exit out of the menuconfig
The first line is a dry run, you can use this to check that the patch will apply without errors. The second line applies the patch to the Kernel source code.
Code:
patch -p1 <~/fbcondecor/fbcondecor-0.9.6-2.6.38.patch --dry-run
patch -p1 <~/fbcondecor/fbcondecor-0.9.6-2.6.38.patch
Now we need to disable some Framebuffer drivers which are not compatible with the fbcondecor patch and will prevent us from selecting the Kernel option, do the following.
Code:
sed -i 's/CONFIG_FB_S3=m/CONFIG_FB_S3\ is\ not\ set/' .config
sed -i 's/CONFIG_FB_VT8623=m/CONFIG_FB_VT8623\ is\ not\ set/' .config
sed -i 's/CONFIG_FB_ARK=m/CONFIG_FB_ARK\ is\ not\ set/' .config
sed -i 's/CONFIG_FB_TILEBLITTING/CONFIG_FB_TILEBLITTING\ is\ not\ set/' .config
Now run make menuconfig and navigate to Drivers->Graphics Support->Console Display Driver Support
Now you have the Support for the Framebuffer Console Decorations option,[*] enable it!
Exit and save the config
fbcondecor.png
Code:
sudo INSTALL_MOD_STRIP=1 CONCURRENCY_LEVEL=3 fakeroot make-kpkg --initrd --append-to-version=-fb kernel_image kernel_headers modules_image
It will take a while!
Once completed there will be two debian packages in the parent directory waiting to be installed.
Code:
cd ../
sudo dpkg -i linux-image-2.6.38.2-fb_2.6.38.2-fb-10.00.Custom_i386.deb linux-headers-2.6.38.2-fb_2.6.38.2-fb-10.00.Custom_i386.deb
Reboot into your new kernel
Now lets setup the splashutils. We will also need miscsplashutils for one binary which we will compile and install manually, called fbres.
Code:
cd ~/fbcondecor
wget http://dev.gentoo.org/~spock/projects/fbsplash/current /splashutils-1.5.4.3.tar.bz2
wget http://dev.gentoo.org/~spock/projects/fbsplash/current/miscsplashutils-0.1.8.tar.bz2
tar zxvf splahutils-1.5.4.3.tar.bz2
cd splashutils-1.5.4.3
sudo apt-get install libgpm-dev libklibc-dev fbset
You only need to do this step if you have the initial release of Natty Narwal.
There is a bug in the release version of klibc, see https://launchpad.net/ubuntu/+source....5.20-1ubuntu6 without fixing this splashutils will fail to compile. This is not really the prober way, it is just quick and dirty, remember after you have succesfully compiled you may want to remove the symlink
Code:
cd /usr/lib/klibc/include
sudo ln -sf ../../../include/i386-linux-gnu/asm asm
Now you are ready to compile the splashutils.
Code:
cd ~/fbcondecor/splashutils-1.5.4.3/
./configure
make
sudo make install
We need to patch the script splash_manager so it correctly locates our files, copy and paste the following into a file called splash_manager.patch
Code:
*** /usr/bin/splash_manager 2010-08-15 15:37:07.000000000 +0100
--- splash_manager 2010-08-15 15:43:17.772646002 +0100
***************
*** 25,34 ****
spl_util=splash_util.static
spl_daemon=fbsplashd.static
spl_decor=fbcondecor_ctl
! spl_dir="//lib/splash"
spl_fifo=${spl_dir}/cache/.splash
spl_pidfile=${spl_dir}/cache/daemon.pid
! themedir="//etc/splash"
spl_daemon_exename="$(basename ${spl_daemon})"
spl_daemon_short="${spl_daemon:0:9}"
--- 25,34 ----
spl_util=splash_util.static
spl_daemon=fbsplashd.static
spl_decor=fbcondecor_ctl
! spl_dir=""
spl_fifo=${spl_dir}/cache/.splash
spl_pidfile=${spl_dir}/cache/daemon.pid
! themedir="/etc/splash"
spl_daemon_exename="$(basename ${spl_daemon})"
spl_daemon_short="${spl_daemon:0:9}"
Code:
sudo patch -p1 /usr/bin/splash_manager < splash_manager.patch
Now for fbres. You will get compile errors don't worry about these, we are only interested in the fbres binary
Code:
cd ../
tar xvjf miscsplashutils-0.1.8
cd miscsplashutils-0.1.8
make
sudo cp -v fbres /bin/fbres
OK now get a sample theme file.
Code:
wget http://dev.gentoo.org/~spock/projects/fbsplash/current/fbsplash-theme-gentoo-r2.tar.bz2
tar xvjf fbsplash-theme-gentoo-r2.tar.bz2
sudo mikdir /etc/splash
cp -Rv gentoo /etc/splash/
Study the config files in gentoo/*.cfg use these as your template, replace the directory path in the .cfg files for any themes you create and for any images etc fbsplash is used on Gentoo for the boot splash screen, so you won't need to worry about the silentpic line which is used for during boot.
You can have different backgrounds for each of your virtual terminals. To set your theme edit the file /etc/rc.local as root and before the exit statement e.g.
Code:
for i in 1 2 3 4 5 6 7 ; do splash_manager -c set -t gentoo --tty=${i}; done
To test, switch to a virtual terminal and manually type
Code:
sudo splash_manager -c set -t gentoo --tty=1
Assuming you are on virtual terminal 1, you will see the Gentoo sample backdrop. You can remove the errors by editing the config file and removing the lines which specify the fonts it can't find.
gentoo-splash.png
TROUBLESHOOTING
1. Check that /dev/fbcondecor exists
2. Check that your image file conforms to supported types, is the correct size
3. Check that your config files have the correct paths for your images
REVERSING THE CHANGES
1. sudo dpkg -r linux-image-2.6.38.2-fb linux-headers-2.6.38.2-fb
2. If you haven't removed your splashutils directory cd ~/fbcondecor/splashutils-1.5.4.3 ; sudo make uninstall
3. Don't forget you will have to manually remove the /bin/fbres binary
Bookmarks