Dann bring ich mal kurz einen Statusbericht:
Habe versucht das mit der Statusanzeige zulösen, indem ich die Patches von [url]http:
www.bootsplash.de/files/misc[/url] anwenden wollte wie es auch im bisherigen Wiki (Bootsplash für Debian Sid) steht. Geht aber leider nicht "6 out of 7 hunks FAILED"
Zu den beiden anderen Problemen:
Das Blinken tritt bei mir auch auf, Lósung dazu kenne ich bislang keine.
F2 oder ESC schalten den silent Bootsplash aus, dass man von der aktiven Anziege wieder in den silent-mode gelangen kann ist mir bislang noch nicht bekannt. Ist unter meiner SuSE 9.2 auch nicht möglich. (Jedenfalls wüsste ich nicht wie).
Gruss
E. coli
EDIT:
Ich habe noch die ganze Zeit versucht herauszufinden, warum die Progressbar nicht funktioniert. Ich vermute mal, dass es an dem Skript /etc/init.d/rc liegt (von
http://www.bootsplash.org/Debian), hier der Teil der dafür verantwortlich ist:
Code: Alles auswählen
# source the bootsplash config file
test -f /etc/default/bootsplash && . /etc/default/bootsplash
#
# Update bootsplash stuff. (progress bar, animations...)
#
rc_splash() {
#test "$SPLASH" != "no" && test "$_rc_splash" -eq 1 && /sbin/splash "$1"
test "$SPLASH" != "no" && /sbin/splash.sh "$1"
# make sure we don't add unless we really made progress
if [ "$1" != "master" -a "$1" != "splash start" -a "$1" != "shutdown" ]
then
progress=$(( $progress + 1 ))
fi
}
# Specify method used to enable concurrent init.d scripts.
# Valid options are 'none', 'shell' and 'startpar'
CONCURRENCY=none
# Make sure the name survive changing the argument list
scriptname="$0"
umask 022
on_exit() {
echo "error: '$scriptname' exited outside the expected code flow."
}
trap on_exit EXIT # Enable emergency handler
# Ignore CTRL-C only in this shell, so we can interrupt subprocesses.
trap ":" INT QUIT TSTP
# Set onlcr to avoid staircase effect.
stty onlcr 0>&1
# Decide if usplash progress bar should be activated or not. Override
# in /etc/default/rcS if required.
#if type usplash_write >/dev/null 2>&1; then
# SPLASH=true
#else
# SPLASH=false
#fi
SPLASH=true
# Now find out what the current and what the previous runlevel are.
runlevel=$RUNLEVEL
# Get first argument. Set new runlevel to this argument.
[ "$1" != "" ] && runlevel=$1
if [ "$runlevel" = "" ]
then
echo "Usage: $scriptname <runlevel>" >&2
exit 1
fi
previous=$PREVLEVEL
[ "$previous" = "" ] && previous=N
export runlevel previous
if [ S = "$runlevel" ]
then
#
# See if system needs to be setup. This is ONLY meant to
# be used for the initial setup after a fresh installation!
#
if [ -x /sbin/unconfigured.sh ]
then
/sbin/unconfigured.sh
fi
fi
. /etc/default/rcS
export VERBOSE
#
# Stub to do progress bar ticks (currently just for usplash) on startup
#
startup_progress() {
$@
# if [ "$SPLASH" = true ] ; then
# step=$(($step + $step_change))
# progress=$(($step * $progress_size / $num_steps + $first_step))
# usplash_write "PROGRESS $progress" || true
# fi
}
##
# Let's just pretend I know what I'm doing
##
#
# initialize boosplash progress bar variables
#
runrcS=/etc/rcS.d
runrc=/etc/rc$runlevel.d
prerc=/etc/rc$previous.d
SSC=($(echo $runrc/S*))
case "$SSC" in
*\*)
sscripts=0 ;;
*)
sscripts=${#SSC[*]} ;;
esac
if [ "$previous" != "N" ]; then
KSC=($(echo $runrc/K*))
case "$KSC" in
*\*)
kscripts=0 ;;
*)
kscripts=${#KSC[*]} ;;
esac
fi
if [ "$previous" = "N" -a "$runlevel" != "S" ]; then
SSC=($(echo $runrcS/S*))
case "$SSC" in
*\*)
sscripts=0 ;;
*)
progress=${#SSC[*]}
sscripts=$((${#SSC[*]} + $sscripts)) ;;
esac
else
if [ "$runlevel" = "S" ]; then
#
# The system is started, let bootsplash know which is next (default)
# runlevel to calculate correct progress bar size.
#
SSC=($(echo $runrcS/S*))
NXT=($( grep initdefault /etc/inittab | sed {s/:/\ /g} ))
nextlevel=${NXT[1]}
nextrc="/etc/rc$nextlevel.d"
NSC=($(echo $nextrc/S*))
sscripts=$((${#SSC[*]} + ${#NSC[*]}))
fi
progress=0
fi
#
# let bootsplash know if we are shutting down or starting up
#
if [ "$runlevel" = "0" -o "$runlevel" = "6" ]
then
kscripts=$(($kscripts+$sscripts))
rc_splash "splash start"
rc_splash "shutdown"
else
rc_splash "splash start"
fi
export sscripts progress kscripts
##
# End of me pretending
##
Ich vermute mal, dass die Variable $progress auf einen falschen Wert gesetzt wird. Leider kann ich aber nicht sagen, wie es richtig gemacht werden muss (kann keine Shell-Programmierung, früher konnte ich nur etwas Perl). Besonders fehlerverdächtig kommt mir folgender Abschnitt der Datei vor:
Code: Alles auswählen
if [ "$previous" = "N" -a "$runlevel" != "S" ]; then
SSC=($(echo $runrcS/S*))
case "$SSC" in
*\*)
sscripts=0 ;;
*)
progress=${#SSC[*]}
sscripts=$((${#SSC[*]} + $sscripts)) ;;
esac
else
if [ "$runlevel" = "S" ]; then
#
# The system is started, let bootsplash know which is next (default)
# runlevel to calculate correct progress bar size.
#
SSC=($(echo $runrcS/S*))
NXT=($( grep initdefault /etc/inittab | sed {s/:/\ /g} ))
nextlevel=${NXT[1]}
nextrc="/etc/rc$nextlevel.d"
NSC=($(echo $nextrc/S*))
sscripts=$((${#SSC[*]} + ${#NSC[*]}))
fi
progress=0
fi
Die Variable $progress tritt auch auf am Ende des Skripts /sbin/splash.sh:
Code: Alles auswählen
#
# Now paint the progressbar. This is done via the proc
# interface of the bootsplash.
#
echo "show $(( 65534 * ( $progress ) / 100 ))" > /proc/splash
Wenn ich in obiger Datei den Wert 100 gegen 60 tausche ist die Progressbar deutlich länger aber es passt immer noch nicht und wenn der Wert für das Booten passt, dann ist die Progressbar beim Shutdown immer noch zu kurz. Also scheint es mir so, dass $progress in dem Skript /etc/init.d/rc mit einem falschen Wert initialisiert wird.
Ich hoffe, dass auf diese Information vielleicht jemand aufbauen kann. Meine Kenntnisse reichen im Moment nicht aus