LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Software
User Name
Password
Linux - Software This forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.

Notices


Closed Thread
  Search this Thread
Old 08-30-2007, 07:38 PM   #1
johnhamiltion
Member
 
Registered: Aug 2007
Posts: 92

Rep: Reputation: 15
Boot Splash HOWTO.


Boot Splash HOWTO.
A couple of days ago I installed the Debian bootsplash package and rebooted. It simply didn't work, so I went to the internet to find out why. The first site I came across was bootsplash.org and one of the first things I found, was that you need to patch your kernel.

bootsplash.org points you to:

ftp://ftp.openbios.org/pub/bootsplash/kernel/

which has patches for various (including the 2.6.15 2.6.18 2.6.20 and 2.6.21) kernels.

I am using the 2.6.22 kernel and the 2.6.21 kernel patch failed, so the first thing I had to do, was patch the patch.

So, here is a 2.6.22 patch (md5 = 138bd6104e94922464f5866b6a358903).

At the top of every bootsplash.org page, is the prominent notice:

NOTE: The bootsplash project has been superseded by Splashy, a boot splash implementation that does not require a kernel patch and is a lot easier to configure. We suggest you go and update to Splashy. This page will stay up for convenience reasons but no new patches will be posted.

So, I tried Splashy,... and all I can say is, DON'T BOTHER.

Who wants a bootsplash that adds an extra 30 seconds to your boot time and has a progress bar that seems to be tracking the progress of a learner driver. The fact that Splashy does not work well is not totally the fault of its author, it is simply that the whole idea is fatally flawed. In order, to not use a simple kernel patch, the whole frame-buffer machinery has to be crammed into the initial ram disk, then unpacked and fired up at boot, and that all takes extra time.

SuSE will never change from bootsplash, to Splashy. You have to wonder; Why would one want to close down a perfectly acceptable bootsplash arrangement, for one that hardly works and has no hope of working well? Actually, don't wonder. This is just another, albeit subtle, way to sabotage Linux.

It is reminiscent of the NTFS (read-write) kernel driver affair, where the kernel driver was abandoned in favor of the NTFS/fuse user-space driver. Of course, no user-space driver will ever compete favorably with Microsoft's NTFS kernel drivers. But then, that was the whole point, wasn't it?

By lying about the dangers of the NTFS kernel driver, certain kernel "developers" were able to have the driver expelled from the Linux kernel and the NTFS/fuse project crowned as the only way forward. Of course, if the kernel "developers" had actually been concerned about the dangers of the driver, they would have fixed the offending code, not thrown the code away.

Save the kernel and patch somewhere. I chose /usr/src/.

mv bootsplash-3.1.6-2.6.22.diff.bz2 linux-2.6.22.tar.bz2 /usr/src/
cd /usr/src/

Unpackage everything.

tar -jxf linux-2.6.22.tar.bz2
bunzip2 bootsplash-3.1.6-2.6.22.diff.bz2

Change to the new kernel source directory and patch the kernel.

cd /usr/src/linux-2.6.22/
patch -p1 < ../bootsplash-3.1.6-2.6.22.diff

Copy your current kernel configuration file (that came with your distro) to .config

cp /boot/current-kernel-config /usr/src/linux-2.6.22/.config

Replace "current-kernel-config" with whatever it's real name is. By the way, a gzipped copy of the running kernel's configuration, is often available at /proc/config.gz. Now, run menuconfig (or xconfig or gconfig)

make menuconfig

Make sure the following are set (or unset, as the case maybe):

Code:
Device Drivers  --->
    Graphics support  --->
        <*> Support for frame buffer devices
        [*] VESA VGA graphics support
        [ ] Bootup logo  --->
            Bootsplash configuration  --->
            [*] Bootup splash screen
            Console display driver support  --->
            <*> Framebuffer Console support

Device Drivers  --->
    Block devices  --->
        <*> RAM disk support
Make any other desired alterations to the configuration. Then build the kernel packages with:

make binrpm-pkg (SuSE Mandriva Red Hat)
make deb-pkg (Debian)

For help on compiling a kernel, see: Compiling yourself a new Kernel (with Reiser4 support).

If you are using Debian, you should install the packages:

bootsplash
bootsplash-theme-debian
linux-patch-bootsplash
sysv-rc-bootsplash

I have only installed the first 2 so far (as they were on the install DVDs). The 2nd package installs a bootsplash theme (the pictures that will be displayed and a configuration file). If you are not using Debian, then you will have to find and install a theme yourself (if you like, you can use the one from Debian).

If your distribution does not have pre-compiled packages, then you should download

bootsplash_3.3.orig.tar.gz

from Debian and compile, and install it, with the commands:

tar -zxf bootsplash_3.3.orig.tar.gz
cd bootsplash-3.3/Utilities
make

You have to install the programs by hand (ie, copy them to /usr/bin).

You may also wonder why bootsplash.org offers version 3.0.7 (which hasn't been current since 2004) from their "Kernel" page. Interestingly, a different version, though still not current, is offered from their "Userspace" page (version 3.1).

You may also wonder why bootsplash.org suggests that you run make splash instead of make.

The answer to the 2nd question is that make should make the programs splash, splashpbm, fbresolution, fbtruetype and fbmngplay, whereas, make splash, will only make the program splash. The answer to the 1st question should be becoming clear to you by now.

I said "should make" because one, fbmngplay, needs a patch to compile.

Since only Debian provides manual pages for the above commands (except splashpbm) I have packaged them here.

Now that you have the program splash, you can build a new initrd (initial ram disk) containing all the bootsplash apparatus. First, we should deal with the misdirection from bootsplash.org:

bootsplash.org suggests that you build a new initrd with the command:

/sbin/splash -s -f \
/etc/bootsplash/themes/yourtheme/config/bootsplash-1024x768.cfg \
>> /boot/initrd.splash


Now here, bootsplash.org, has strayed from the rule of "plausible deniability" (you do not lie to people unless you can excuse your lie as a simple mistake, or misunderstanding). The command given here could not possibly work, for any form of initrd that I am familiar with. There may be some rare varieties of initrd for which this command would work, however, I do not know of any.

Nearly all distributions (Debian SuSE Mandriva Red Hat etc) now use cpio archives for their initrd and they all compress their initrd with gzip. First, you cannot just dump a few files at the end of a cpio archive (as the above command does) and expect them to be recognized. Cpio archives just don't work that way. And even if you could, you would have to decompress the archive to have any prospect of success with the above command.

Previous to the adoption of cpio archives, initial ram disks, were most commonly, compressed ext2 filesystems images. The bootsplash.org command will not work for these older versions, either.

The bootsplash.org command would actually work, if you had compiled all necessary drivers into your kernel and thus did not use an initial ram disk, previous to installing bootsplash. Of course, almost no one would be in this situation. However, since bootsplash.org claim that you can update your previously existing initial ram disk with their command, you can be sure they intend to mislead you.

You may be wondering why bootsplash.org, and the other web-sites pushing this clearly false command, are misleading you in this way.

So how do you really create a new initial ram disk.

Install the initramfs-tools package. The Debian people have written a small program (a hook) telling update-initramfs (from the initramfs-tools package) to include the bootsplash file, whenever update-initramfs is run. However, a mistake in this program,

/usr/share/initramfs-tools/hooks/bootsplash, has to be corrected first.

Change the last line: splash -s -f $SPLASH_FILE > $DESTDIR/bootsplash

To: $SPLASH_BIN -s -f $SPLASH_FILE > $DESTDIR/bootsplash

Now run update-initramfs:

update-initramfs -u -k 2.6.22 (u for update initramfs) or
update-initramfs -c -k 2.6.22 (c for create initramfs)

If you are not running Debian, then you will have to manually unpack your current initrd file, add the bootsplash file and pack it up again. I will explain how to do this at some later date. It is not hard. It appears that the bootsplash file contains a "magic" header that is recognized by the patched kernel (so it probably doesn't matter what you name the file).

Now you need to edit your /boot/grub/menu.lst file. Mine looks like:
title Debian GNU/Linux -- My Brand New Kernel 2.6.22
root (hd0,0)
kernel /boot/vmlinuz-2.6.22 root=/dev/sda1 vga=791 splash=silent ro
initrd /boot/initrd.img-2.6.22
The needed parameters are in red. The vga parameter determines the frame-buffer resolution:

vga=785 for 640x480
vga=788 for 800x600
vga=791 for 1024x768
vga=355 for 1152x864
vga=794 for 1280x1024
vga=798 for 1600x1200

These correspond to the VESA 16-bit modes. Apparently, if you pass vga as a boot parameter, the kernel assumes you will be using the VESA frame-buffer (which you have compiled into your kernel). It is possible to use various other frame-buffer devices, but since I haven't been able to get the NVIDIA frame-buffer device to work, I won't say anything more about this.

The default Debian 1024x768 theme worked (up to a point), however, a couple of 1280x1024 themes I tried, did not.

Some configuration file causes the bootsplash to flash quickly (6 times) part way though the boot. I haven't been able to track down the cause of this yet, but hopefully, I will soon, as it is rather distracting. This is the sort of thing you expect in a project that is being actively sabotaged.

The default Debian theme has a progress bar. Apparently, one can get that to work if one installs the sysv-rc-bootsplash package, but I haven't tried this yet either.

I have many half completed guides, that were never published because they were not finished to my satisfaction. Lately, I have had a change of heart, and will publish some incomplete work, like this guide. Hopefully, this will not lead to you being too misinformed on the subject.

Last edited by reddazz; 09-09-2007 at 02:37 AM. Reason: remove urls
 
Old 08-31-2007, 05:20 AM   #2
nx5000
Senior Member
 
Registered: Sep 2005
Location: Out
Posts: 3,307

Rep: Reputation: 57
Thanks for the howto.

As a side note, I now use usplash

aptitude install usplash usplash-theme debian

No kernel patch needed, only initrd regeneration, completly userspace.

usplash is started and waits for commands from the startup scripts through a fifo.

Works like a charm for me, not like splashy..
 
Old 08-31-2007, 06:53 PM   #3
johnhamiltion
Member
 
Registered: Aug 2007
Posts: 92

Original Poster
Rep: Reputation: 15
usplash? So who else recommends usplash?
 
Old 09-01-2007, 09:20 AM   #4
johnhamiltion
Member
 
Registered: Aug 2007
Posts: 92

Original Poster
Rep: Reputation: 15
One should also notice that there is a grub-splash, that would appear before the bootsplash.

SuSE seems to have the most developed grub-splash.
 
Old 09-02-2007, 05:31 AM   #5
johnhamiltion
Member
 
Registered: Aug 2007
Posts: 92

Original Poster
Rep: Reputation: 15
Does anyone know of solutions to the various problems?
 
Old 09-03-2007, 09:01 AM   #6
johnhamiltion
Member
 
Registered: Aug 2007
Posts: 92

Original Poster
Rep: Reputation: 15
What would explain the general lack of interest?
 
Old 09-04-2007, 08:41 AM   #7
nx5000
Senior Member
 
Registered: Sep 2005
Location: Out
Posts: 3,307

Rep: Reputation: 57
Your impatience?

Seriously, I haven't read in detail your howto (because as said I have an alternative) but I find it good (detailed/portable). Wait a bit and you'll get some questions/answers.
 
Old 09-05-2007, 08:39 AM   #8
johnhamiltion
Member
 
Registered: Aug 2007
Posts: 92

Original Poster
Rep: Reputation: 15
Quote:
Originally Posted by nx5000 View Post
Your impatience?

Seriously, I haven't read in detail your howto (because as said I have an alternative) but I find it good (detailed/portable). Wait a bit and you'll get some questions/answers.
Somehow, I doubt it.
 
Old 09-06-2007, 09:36 AM   #9
johnhamiltion
Member
 
Registered: Aug 2007
Posts: 92

Original Poster
Rep: Reputation: 15
So nx5000, just like I said,.....
 
Old 09-07-2007, 09:03 AM   #10
johnhamiltion
Member
 
Registered: Aug 2007
Posts: 92

Original Poster
Rep: Reputation: 15
So nx5000, believe me now?
 
Old 09-07-2007, 11:17 AM   #11
nx5000
Senior Member
 
Registered: Sep 2005
Location: Out
Posts: 3,307

Rep: Reputation: 57

Wait a week, a month or maybe a year! No, really! Do you think people were waiting for a howto on bootsplash (you do know that they are maybe a hundred everywhere on internet, don't you..), checking everyday and bam you put it, you are overwhelmed by comments.

And I think you should stop bumping this thread everyday.

Actually there is a place on LQ where to put the howtos, it's the wiki (I think), would be a good idea to copy it overthere.

edit: This thread has been watched 500 times in one week btw.
Maybe they are all trying to get back their grub now and that's why they can't post lol

Last edited by nx5000; 09-07-2007 at 11:20 AM.
 
Old 09-07-2007, 11:06 PM   #12
reddazz
LQ Guru
 
Registered: Nov 2003
Location: N. E. England
Distribution: Fedora, CentOS, Debian
Posts: 16,298

Rep: Reputation: 77
Can you please resubmit this to our tutorial section. Thanks.
 
  


Closed Thread



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
boot splash knobby67 Debian 1 05-16-2006 11:59 AM
Boot splash edison Slackware 8 02-03-2005 05:41 PM
Dual Boot = No Boot (hangs at bios splash screen) nedwardss Debian 4 12-03-2004 04:09 AM
Boot Splash dbzw SUSE / openSUSE 7 11-20-2004 02:21 AM
boot splash noobtesting Mandriva 7 07-17-2004 08:10 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Software

All times are GMT -5. The time now is 02:00 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
Open Source Consulting | Domain Registration