LinuxQuestions.org
Help answer threads with 0 replies.
Go Back   LinuxQuestions.org > Linux Answers > Applications / GUI / Multimedia
User Name
Password

Notices

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 2.4.33.3 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:

cd /usr/src/linux
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

cd /path/to/bootsplash-3.0.7/Utilities
make splash
cp splash /sbin

and for animations later on,

make fbmngpay
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
read-only
append = splash=(silent for silent, verbose for verbose, and 0 for off)

Reboot.
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

ps -A
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,

johngreenwood

by johngreenwood on Mon, 2007-02-19 12:37
Is it possible to change the part about killing the process to say
Code:
kill $(pidof fbmngplay)
?


  



All times are GMT -5. The time now is 03:49 AM.

Main Menu
Advertisement

My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration