PDA

View Full Version : Script:animated boot and shutdown splash w/o kernel patch



probono
02-15-2004, 08:56 PM
This script uses the Knoppix background (which you can easily change on the CD, it's in knoppix/background.jpg) during boot *and* shutdown.

Also, shutdown is made faster by using poweroff -f (which should be fine as long as you are running purely from CD - otherwise you should take that part out before using the script.)

Call this script splash.sh, put it inside knoppix/ on your CD, choose a nice knoppix/background.jpg, and there you go. No more colorful Knoppix messages...


#!/bin/sh

################################################## #######
#
# splash.sh 1.0
# by probono
# GPL
#
# burn this file to your Knoppix CD in /knoppix
# and boot with cheatcode "splash"
#
# displays knoppix/background.jpg
# during boot and shutdown
# and makes shutdown faster (by using poweroff -f)
# NO WARRANTIES, USE THIS ON YOUR OWN RISK
#
################################################## #######

#
# display splash at boot time
#

fbi \
/cdrom/knoppix/background.jpg \
-t 1 --quiet --device /dev/fb0 < /dev/tty1 > /dev/tty1 2>/dev/null

################################################## #######
# uncomment line below if you don't want
# xsession to be changed (e. g. if you have your own)
# exit 0
################################################## #######

#
# modify xsession script to display splash at halt and be faster
#

mv /etc/init.d/xsession /etc/init.d/xsession.~
cp /KNOPPIX/etc/init.d/xsession /etc/init.d/xsession

perl -pi -e 's|# After xsession exits, end X-Server|sudo nohup fbi /cdrom/knoppix/background.jpg -t 1 --quiet --device /dev/fb0 < /dev/tty1 > /dev/tty1 2>/dev/null & \n poweroff -f|' /etc/init.d/xsession

#
# remove that voice
#

perl -pi -e 's|OGGPLAY=/usr/bin/ogg123|OGGPLAY=echo|' /etc/init.d/xsession
perl -pi -e 's|PLAY=/usr/bin/wavp|PLAY=echo|' /etc/init.d/xsession

#
# give control back to init
#

exit 0

probono
02-16-2004, 12:27 PM
Btw, this can easily be extended to include animations, a progress bar, truetype text etc. using the userland tools from http://www.bootsplash.org/user.html

Other than what the site suggests, the userland tools can also be used *without* the kernel patch.

For example, to have a nice progress bar animation (taken from http://www.bootsplash.org/themes.html):


#!/bin/sh

# userlandsplash 1.0
# fancy uslerlandsplash stuff
# by probono

# get the screen resolution
RESOLUTION=`/cdrom/knoppix/splash/fbresolution`
WIDTH=`echo $RESOLUTION | cut -f1 -d x`
HEIGHT=`echo $RESOLUTION | cut -f2 -d x`

# calculate the x and y coordinates for the animation
XCOORD=`perl -l -e "print ($WIDTH/2-101);"`
YCOORD=`perl -l -e "print ($HEIGHT*0.75);"`

#
# do some animation
# a progress bar could be done based on what is written
# to the console...
# /cdrom/knoppix/splash/progress $YCOORD $XCOORD 50 50 999999
# sleep 1
# /cdrom/knoppix/splash/progress $YCOORD $XCOORD 50 50 000000
# sleep 1
#

# display the animation
/cdrom/knoppix/splash/fbmngplay \
/cdrom/knoppix/splash/progress.mng -x $XCOORD -y $YCOORD &

# let this thing run until we are up and running
until [ "$RUNLEVEL" = "N 5" ]
### until ps -A | grep xsession
do
sleep 30
RUNLEVEL=`runlevel`
done

# then kill (softly, so that fbmngplay fades out) and exit
killall -INT fbmngplay
exit 0[/quote]

Incubii
02-17-2004, 02:38 AM
Excellent tip there, i think ill use this one tonight for my remaster :)

veuf
04-05-2004, 12:17 PM
This is very interesting stuff!!
But I need some more infos to understand this stuff:

- Are all scripts put into /cdrom/knoppix/ executed?
- If yes, when are they executed?

Do I habe to install the splash (userland?) software?

Thanks

probono
04-05-2004, 11:24 PM
Are all scripts put into /cdrom/knoppix/ executed?

No, just knoppix.sh and in the newer Knoppix versions also splash.sh


If yes, when are they executed?

knoppix.sh after the init process
splash.sh early in the init process (before the hw detection starts)


Do I habe to install the splash (userland?) software?

Yes. Simply put the executables (fbmngplay etc...) in /cdrom/knoppix/splash for example and call them in the script from there.

veuf
04-07-2004, 04:08 PM
Thanks for the tips!

I compiled fbmngplay.
But I didn't succees in showing picture with fbi AND showing the nimation with fbmngplay at the same time.

Where in your script is the boot-picture being loaded? I can only see fbmngplay.

I'd like to do:

fbi -q -a /cdrom/KNOPPIX/splash/bootsplash.png
fbmngplay -x XXX -y YYY /cdrom/KNOPPIX/splash/animation.mng < ... > ...

Can this be done lika that?

Thanks

probono
04-19-2004, 02:36 PM
http://mentors.debian.net/debian/dists/unstable/main/binary-i386/
has the bootsplash tools as debian packages which you can simply unpack with "unp -u" so that you don't have to compile them yourself.

The picture is loaded with

fbi \
/cdrom/knoppix/background.jpg \
-t 1 --quiet --device /dev/fb0 < /dev/tty1 > /dev/tty1 2>/dev/null

veuf
04-20-2004, 03:17 PM
Thank you.

Using a code similar to the following, first the boot-splash is shown, then the animation is started. But following things are not okay yet:

1. I don't know the string for special Keys as "Esc", "F2" ... to stop the animation & splash
2. When I use the your proposed code that waits until init=5, the following happens: when the knoppix-background is loaded, the anmimation stays on top of the screen.
3. When a key is pressed after the splash image is shown AND before the animation starts, fbi quits, and only the animation will be shown (ugly)



#!/bin/sh

# get the screen resolution
RESOLUTION=`remaster/bin/fbresolution`
WIDTH=`echo $RESOLUTION | cut -f1 -d x`
HEIGHT=`echo $RESOLUTION | cut -f2 -d x`

# calculate the x and y coordinates for the animation
XCOORD=`perl -l -e "print ($WIDTH/2-101);"`
YCOORD=`perl -l -e "print ($HEIGHT*0.65);"`

# display the splash-screen and the animation
fbi -q -a /cdrom/KNOPPIX/bootsplash.png < /dev/tty1 > /dev/tty1 2>/dev/null &
sleep 2
fbmngplay /cdrom/KNOPPIX/animation.mng -S -x $XCOORD -y $YCOORD &

while read input; do
if [ "$input" = "Esc" ]; then # ??? Which special string ?
killall -INT fbmngplay
sleep 1
killall -INT fbi
exit 0
fi
done

exit 0

probono
04-22-2004, 01:24 PM
Fabian is working on this:
http://debian.tu-bs.de/knoppix/experiments/

BillBBB
07-10-2009, 04:54 PM
I know this is an old thread, but I tried this in v6.0.1 and I cannot seem to make it work. The splash cheatcode appears to do nothing. Is there an alternative method to accomplish this in 6.0.1?

-B