Slackware bootsplash and animations
By johngreenwood at 2006-12-27 17:52
This is a guide on how to add an animation to your bootsplash.
Any steps followed from this guide are done so at your own risk
I accept no responsibilty if it goes wrong,
It is simply documentation of what I did to get bootsplash animations to work.
I'm pretty sure there is another way, but I don't know how.
Please note, I did this using Slackware 11, and it may not work for other distros.
So, here it is (it's quite long):
Firstly, if you haven't already done so, you need to patch your kernel for bootsplash support.
You can get the patch from ftp://ftp.openbios.org/pub/bootsplash/kernel/
I am using the 22.214.171.124 kernel, the patch for which is ftp://ftp.openbios.org/pub/bootsplash/kernel/bootsplash-3.0.7-2.4.30-van...
Once you have the patch for your kernel, you need to make sure your kernel source is in /usr/src/linux
If so, then patch the kernel by running
patch -p1 < /path/to/bootsplash-3.0.7-2.4.20-vanilla.diff
or whichever patch it is you have, from the command line. The -p1 is a number one, not an l.
Now that the kernel is patched you will have to recompile it.
from command line do: cd /usr/src/linux
then do: make menuconfig
If using the 2.4 kernel, you need to got to "Console Drivers->", "Frame-Buffer Support" and select "VESA VGA graphics console" and turn on "Use splash screen instead of boot logo"
I think it is different for 2.6 kernels, so, you'll have to look around.
Also, make sure that "Initial Ramdisk support" is enabled in "Block Devices"
After you have done all that, exit, save your kernel configuration, and recompile.
To compile a 2.4 kernel do this:
make dep clean modules modules_install bzImage
it is important that bz Image has an "I" and not an "i"
also, if this kernel is the same one you have been using, and you have changed nothing but the stuff for bootsplash, you probably don't need to install the modules, so I just do:
make dep clean bzImage
For 2.6 kernel dep and clean are not necessary.
The compile may take a while, so go and make a cup of coffee or something while it does it's thing.
After the compile is completed, the new kernel will be installed under /usr/src/linux/arch/i386/boot as bzImage
if you are using a different achitecture, it may be in /usr/src/linux/arch/somwhere_else/boot
Now you have a new kernel, now you need a bootsplash, I use this one to test that it works, http://www.kde-look.org/content/show.php?content=29662
extract the archive somewhere on your computer and edit the /fingerprint-bs/config/bootsplash-1024x768.cfg file so that the jpeg= and silentjpeg= point to the correct locations which will be /path/to/fingerprint-bs/fingerprint-bs/images/name_of_file.jpg
Now to attach them to an initrd, download the splash utility from ftp://ftp.openbios.org/pub/bootsplash/rpm-sources/bootsplash/bootsplash-...
extract it and do
cp splash /sbin
and for animations later on,
cp fbmngplay /sbin
To attach you images to an initial ramdisk, issue this command
splash -s -f /path/to/fingerprint-bs/config/bootsplash-1024x768.cfg >> /path/to/where_you_want_the_initrd/initrd.splash
I place the initrd in the folder of the corresponding bootsplash.
Next edit lilo
add a new entry, that is the same as your existing one, but pointing to the new kernel and initrd.
image = /usr/src/linux/arch/i386/boot/bzImage
root = /dev/hdaX
label = Distro
initrd = /path/to/initrd.splash
append = splash=(silent for silent, verbose for verbose, and 0 for off)
If it works, congratulations, you have bootsplash.
Now if you want an animation during boot up its quite simple.
Make an animation in the GIMP, a spinning globe or something, just to test it.
Save it as filetype .mng
Now edit /etc/rc.d/rc/S (Remember, this is Slackware, other distros may vary, and always, always, remember to make a backup before editing)
add this command,
fbmngplay -x [X Coordinate eg. 450] -y [Y Coordinate eg. 234] /path/to/animation.mng &
so it'll look like:
fbmngplay -x 450 -y 234 /path/to/animation.mng &
I have it after: #mount /proc right away:
/sbin/mount/-v proc /proc -n -t proc
The animation will die when runlevel 3 is reached, so if you want the animation to continue, you will have to edit /etc/rc.d/rc.M also.
Add the same command somewhere near the beginning of rc.M
Reboot, and see if it worked.
If it has, you will notice that the animation keeps playing and when you startx you will have some ugly lines moving as a result of the animation. The process is still alive.
find out the process ID by doing
and looking for fbmngplay, on my system it is 68
now you know the process ID, edit /etc/rc.d/rc.M again and add at the end:
kill 68 (or what ever ID it has on your system)
Now when you reboot, the animation will be killed by the time you reach the login prompt.
Be aware though, if you add a new process to start during bootup, you should get rid of the kill line in rc.M, the process ID could change and you may kill a process you don't want to kill, you will have to find out the new ID and add that to rc.M
And that should be it, I hope you have as much fun with this as I did.
Thanks for reading,
All times are GMT -5. The time now is 05:47 AM.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.