PDA

View Full Version : Suse Style framebuffer boot



eadz
02-07-2003, 07:57 PM
I also posted this on the debian-knoppix mailing list and hope klaus adds it.

I mentioned a while ago about a LPP boot.
LPP is the Linux Progress Patch, and introduces a framebuffer progress page
with progress bar. I got it working, but there were some drawbacks -
1) required compiling the image into the kernel
2) required adding CONSOLE=/dev/tty2 to the append line
3) if they didn't have vesa fb then they saw nothing
4) didn't work if it wasn't interactive, i.e if the startup required
interaction, then you would not see it.
conclusion : lpp is suitable for harddrive installs only.

Then I came along the suse kernel patch, with "splash" program

This is the framebuffer bootup that you see on suse machines.
it overcomes _all_ the drawbacks of lpp :
1) the image is stored seperatly ( in miniroot.gz )
2) the console stays on tty1, as it is just written ontop of the image ( in a
set area)
3) if you don't have vesa fb compatible card, you just see normal knoppix
bootup
4) Made in .de ;)
one disadvantage - requires a statically compiled binary to be included in
miniroot.gz

It creates a framebuffer image and draws the console text over top of the
image, which is in jpeg format. I have implemented this in a remaster and it
works well.

I have used isolinux, so size wasn't an issue.
my image is 49KB, but could be smaller if more jpeg compression is used (
again not an issue with isolinux )
The statically compiled splash program is 384K.

Recipe : ( makes 800x600 ;)
Ingredients
- 800x600 Jpg - example attached ( made with gimp - if anyone wants the .xcf
email me )
- config file for the jpg - example attached
- kernel patch - attached
- "splash" program - sources attached
all above programs and additinal documentation can be found at
ftp://ftp.suse.com/pub/people/stepan/bootsplash

What I did Instructions: ( no these wont make sence to everyone just to people
who have remastered or Klaus )

statically compiled the splash.c program ( with gcc --static option ) and put
it in /static of miniroot.gz

made a directory "/splash" in miniroot.gz and put the .jpg and .cfg file there
compiled a kernel with the patch ( after patching, make sure that the
"CONFIG_FBCON_SPLASHSCREEN" is Y - in fb section.) then compile.

replace the vmlinuz and kernel modules both in miniroot.gz, and in
/lib/modules/ etc with the compiled ones. ( you will prolly want to edit the
kernel Makefile and chage the version )

change linuxrc ( in miniroot.gz) to do the bootscreen. I have attached my
linuxrc. basicly the change is adding

splash -s -u 0 /splash/bootsplash-800x600.cfg 2>&1 > /dev/null
where -u is the TTY.

now, for those wanting to see this in action, you can download bootdemo.iso
from my site. Burn this image onto CD as you would knoppix. It's only 1.9M,
but must be burned onto CD as an ISO. It will start loading knoppix, but fail
at the "accessing KNOPPIX on cdrom", as I have left out the KNOPPIX file.
download from http://www.knoppix.net/mirror/bootdemo.iso

As for syslinux vs isolinux
as kernel sized increase ( read 2.6 ) there is need for a larger boot image.
By not limiting the boot sequence to 1.44 M you can achive a lot more :

- nice fb boot screens
- memtest boot option
- localboot option
- multiple kernels ( e.g. non-SMP for dell machines that break when used with
SMP kernel )

you can still include a 1.44M floppy image, without the above features for
people that cannot boot off isolinux (who?), and provide instructions on how
to do this ( easy with nero for example )

Hope this is of interest, and I hope this gets included with KNOPPIX, as the
framebuffer boot is so sexy!!

( as for the attached files, there is no way to attach them to this forum, i reccomend downloading this : http://mailman.linuxtag.org/pipermail/debian-knoppix/2003-February/001860.html and saving the text as an email, opening it up with an email client and then you'll have the files )

Alextreme
02-07-2003, 08:26 PM
Yeah, saw your post on the list, nice one! :D

taking a look at it know, seems doable enough as i already boosted my boot image to 2880 (for more kernel-cruft :)) and i could as well use the left-over space for a cool feature like this. Would you mind if i threw it into my base? :P

eadz
02-07-2003, 08:28 PM
Yeah, saw your post on the list, nice one! :D

taking a look at it know, seems doable enough as i already boosted my boot image to 2880 (for more kernel-cruft :)) and i could as well use the left-over space for a cool feature like this. Would you mind if i threw it into my base? :P

no go right ahead :) let me know how it goes :)

p.s. did the bootdemo.iso work ?

Alextreme
02-07-2003, 09:08 PM
Yeah, it worked great! Nice pic too :D

playing around now with splash, seems easy enough. Together with changing the framebuffer (sorry tux!) and an animated boot/shutdown screen (saw that option in splash, would be fun :)) any distro would rock!

Hmm, think i should ask some favours from a few graphic-minded friends (i'm a hopeless artist ;))

audioaficionado
02-08-2003, 10:27 AM
Hmmm...

I guess I got the regular 1.44Mb floppy boot image. as I couldn't load all the SuSe framebuffer on a floppy. I still see KDE3.1 and the differant menu with less visible options.

It still boots into the CD from the floppy and that's the bottom line for me.

Other than the fancy boot graphics, what else won't the standard floppy boot do?

What apps don't load? Can they be loaded after boot?

eadz
02-08-2003, 07:56 PM
Hmmm...

I guess I got the regular 1.44Mb floppy boot image. as I couldn't load all the SuSe framebuffer on a floppy. I still see KDE3.1 and the differant menu with less visible options.

It still boots into the CD from the floppy and that's the bottom line for me.

Other than the fancy boot graphics, what else won't the standard floppy boot do?

What apps don't load? Can they be loaded after boot?

You should try that boot manager http://btmgr.sourceforge.net/ installed onto a floppy, it will turn your non-cdrom booting manchine, into a cd-rom booting machine :)

bhsx
02-08-2003, 10:41 PM
I found the knoppix-orig-boot.img and that works fine, but what's the syntax you used for the final mkisofs?
mkisofs -l -r -J -V "knoppix" -hide-rr-moved -v -b [[WHAT GOES HERE??]] -c [[WHAT ABOUT HERE?]] -o /mnt/whereiremaster/myknop.iso /mnt/mst


Thanks for all your help, you're awesome d00d ;)

eadz
02-08-2003, 11:07 PM
I found the knoppix-orig-boot.img and that works fine, but what's the syntax you used for the final mkisofs?
mkisofs -l -r -J -V "knoppix" -hide-rr-moved -v -b [[WHAT GOES HERE??]] -c [[WHAT ABOUT HERE?]] -o /mnt/whereiremaster/myknop.iso /mnt/mst


Thanks for all your help, you're awesome d00d ;)

I don't have the exact line I used.. something like

mkisofs -pad -l -r -J -v -V "KnoppixKDE" -b isolinux/isolinux.bin -c isolinux/boot.cat -hide-rr-moved -no-emul-boot -boot-load-size 4 -boot-info-table -o /some/where/myknoppix.iso /mnt/hda1/master

( when you're in the final iso root directory so that "./isolinux/isolinux.bin" is actually a file.. )

bhsx
02-10-2003, 06:03 PM
That was perfect. I'm now messing around with splash. I did make a few desktop changes (i'm remastering this for an 8yo little girl) that didn't make it. i did a cp -Rp /home/knoppix/.kde/* /mnt/source/KNOPPIX/etc/skel/
along with .kde/share but it didn't take. Is there something I'm missing?

Also, printing doesn't seem to be working, even for an older hpIV. "Connection to cups server failed", don't know what the problem is.

probono
02-10-2003, 09:42 PM
Works perfect. I really hope this kernel patch makes it into the official Knoppix kernel.

There are good themes to study on http://linux01.gwdg.de/suse/ftp.suse.com/people/stepan/bootsplash/RPM/bootsplash/ to study, including "instsplash" files and animations.

Did anyone of you figure out the meaning of "instsplash" files?

It would also be great if we could have an animated progress bar and a animation "it is now safe to turn off your computer". This seems to be possible in the latest release of bootsplash, look at the suse theme from the link above.

probono
02-10-2003, 09:55 PM
Does the CONSOLE=/dev/tty2 trick also work in conjunction with bootsplash? (Reason: I don't want any text on the animated bootsplash, but in case something goes wrong, I want to be able to see the text by switching to another console).

Appending CONSOLE=/dev/tty2 at the LILO prompt (yes, I copied everything to HD) didn't do the trick... ideas?

jaco
03-04-2003, 08:30 AM
Great find. I've been looking at what you did and tried my hand at it. One thing I cannot seem to get right is a different foreground color for the actual text. In your demo, the "base" text is black, making it unreadable. In mine I have the same. I've tried to set the "fgcolor" parameter but this just seems to change the color of the cursor, not the actual text displayed.

Any ideas? Or am I being completely clueless?

eadz
03-04-2003, 08:41 AM
the linuxrc script also sets colors. Check that out.

jaco
03-04-2003, 09:26 AM
the linuxrc script also sets colors. Check that out.

*grin* Agreed. However setting the colours won't do the full trick. It must be possible to change the default display colour via the bootsplash config. For instance, in your demo disk you are dropped to a shell which results in black text at the ash prompt.

Now doing an echo with the correct escape codes will work for a fixed information display (eg. bootup sequence in either linuxrc or your bootup scripts) but won't if you are at the prompt. (For instance going into runlevel 3 instead of 5) I suppose one way (long/wrong way) around it would be to change the text background to something whiter (In your case it is currently black in my case it is dark blue) instead of changing the default text color to something lighter.

jaco
03-04-2003, 09:35 AM
However setting the colours won't do the full trick. It must be possible to change the default display colour via the bootsplash config. For instance, in your demo disk you are dropped to a shell which results in black text at the ash prompt.

Ok, I think I have the solution. In one of the SuSE themes (also version 2 config file), the fgcolor is lister as "15" instead of a hex value eg. "FFFFFF". I'll try that out, ie. using the 'normal' screen color values instead of the hex value. (Won't give me exactly the result I was hoping for, but should be close enough.)

cli
03-09-2003, 02:04 AM
hi,
I am trying to compile a kernel with splash screen. i patched the followings:

-----------------------------------------------------------------------

ftp://ftp.suse.com/pub/people/stepan/bootsplash/kernel/boot_splash_complete.2.4.19-vanilla.patch
ftp://ftp.suse.com/pub/people/stepan/bootsplash/kernel/bootlogo-ver-2.4.5.diff

------------------------------------------------------------------------

i also added "CONFIG_FBCON_SPLASHSCREEN=y" to the config file...

but i dont have any image show... actually i have error message when booting says:
---------------------------------------------------------------
Kernel panic: no init found. Try passing init= option to kernel
---------------------------------------------------------------

do i need to change rc too?

can someone please give a complete list of things i need to do to make a 2.4.18 kernel boots with a splash screen showing

i am very grateful for all your helps :)

cli
03-09-2003, 03:21 AM
do i have to have SuSE in order to get this splash screen work for me?

probono
03-15-2003, 06:31 PM
no, KnoppixKDE also uses it! I was successful in changing the KnoppixKDE splash image, but unfortely no animations or progress bar yet...

Alextreme
03-16-2003, 04:05 AM
Yeah, and it looks sweet :D

was just wondering: has anyone gotten this to work with 2.4.20? forgot which one KnoppixKDE used, but i thought it was 2.4.19. Did try to get it working on 2.4.20, but somehow it didn't work right. (could be my own stupid fault though :P)

probono
03-17-2003, 08:57 AM
has anyone got animations to work? (as SusE does)

j0rd
03-27-2003, 02:37 AM
the creator of bootsplash has put up a website recently. http://bootsplash.org , he says they will be putting documentation and such on there shortly. There is also a new version (3.x) of the kernel patch which has a patch for vanilla kernel 2.4.20. I have modified this patch to work with vanilla-kernel 2.4.18. If you would like this patch you can get it here: http://142.232.66.118/kernel/linux/files/bootsplash-3.0.7-2.4.18-vanilla.patch . I am also interested in getting the animations to work, if any one could provide documentation on how to do this it would be of help.

Getting bootsplash to work with the kernel patch.

Step 1: patch kernel
Step 2: add `"CONFIG_FBCON_SPLASHSCREEN" is Y' to kernel cfg
Step 3: recompile kernel
Step 4: create a bootsplash.cfg with a jpeg and such
Step 5: download and compile splashutils
Step 6: run `./splash -s -f $cfgname >> $ramdisk'
// where $ramdisk is your initrd or what ever
Step 7: add `initrd=$ramdisk vga=$rez' to kernel append line
//where $rez is 788 for 800x600 or whatnot

that should do it. I've never used knoppix so i dont know if this is of any help but i thought i should post.

probono
04-01-2003, 05:55 AM
Would there be any disadvantage if Klaus Knopper applied this patch to the official Knoppix Kernel? He still could have the splash disabled *by default*, but it would allow us to burn custom CDs with bootsplash without remastering. So, are there any disadvantages?