LinHES Forums
http://forum.linhes.org/

R5E50 Bootsplash progress bar no longer works
http://forum.linhes.org/viewtopic.php?f=6&t=13500
Page 1 of 2

Author:  Escher0 [ Sun Jan 14, 2007 1:54 am ]
Post subject:  R5E50 Bootsplash progress bar no longer works

On older versions, the progress bar on my machine worked but ever since the upgrade to R5E50, the progress bar hasn't worked. I tried diving into setting up bootsplash manually but most of it is over my head. I tried updating bootsplash with
Code:
apt-get install bootsplash
and rerunning
Code:
/usr/local/bin/add_bootsplash.sh
but to no avail. I even edited the add_bootsplash script to look at the /etc/bootsplash/themes/current/config/bootsplash-800x600.cfg.working and rerunning but again, nothing. I also tried a different theme downloaded from a site.

I'm not really sure where to go from here. I did find this: http://mysettopbox.tv/phpBB2/viewtopic. ... bootsplash but it looks like it may be outdated. Any suggestions? Thanks in advance.

Author:  tjc [ Sun Jan 14, 2007 12:08 pm ]
Post subject: 

I think you mean R5E50...

Author:  Escher0 [ Sun Jan 14, 2007 10:52 pm ]
Post subject: 

yeah, brain fart.

Author:  cecil [ Sun Jan 14, 2007 11:09 pm ]
Post subject: 

Yeah... I thought it more important to release than debug. Perhaps I'll get to it before the next release.

Author:  Escher0 [ Mon Jan 15, 2007 11:10 am ]
Post subject: 

ok, so this is a known issue? I only saw a couple mentions of it across the forum so I thought it might have been isolated. thanks.

Author:  maverik044 [ Sat Jan 20, 2007 3:26 pm ]
Post subject: 

Here's a mod to get progress bar to work. Works for startup and shutdown

Boot message text "Booting system please wait" does not appear. Something that rc starts resets the screen and causes it to disappear. Probably X.

Change /etc/init.d/rc for the following (be sure to fix lines that didn't wrap properly in the cut&paste):

Code:
#! /bin/sh
#
# rc
#
# Starts/stops services on runlevel changes.
#
# Optimization: A start script is not run when the service was already
# configured to run in the previous runlevel.  A stop script is not run
# when the the service was already configured not to run in the previous
# runlevel.
#
# Authors:
#       Miquel van Smoorenburg <miquels@cistron.nl>
#       Bruce Perens <Bruce@Pixar.com>

PATH=/sbin:/usr/sbin:/bin:/usr/bin
export PATH

# Un-comment the following for debugging.
# debug=echo

# source the bootsplash config file
test -f /etc/default/bootsplash && . /etc/default/bootsplash

#
# Update bootsplash stuff. (progress bar, animations...)
#

# 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.
#if type usplash_write >/dev/null 2>&1; then
#    SPLASH=true
#else
#    SPLASH=false
#fi
if [ "$SPLASH" = yes ] ; then
     SPLASH=true
fi

progress=0
export progress

# 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

. /etc/default/rcS
export VERBOSE

if [ -f /lib/lsb/init-functions ] ; then
    . /lib/lsb/init-functions
else
    log_daemon_msg() { echo $@; }
fi

#
# Stub to do progress bar ticks (currently just for usplash) on startup
#
startup_progress() {
    $@
    test "$SPLASH" != "no" && /sbin/splash.sh "$script start"
    if [ "$SPLASH" = true ] ; then
        step=$(($step + $step_change))
        progress=$(($step * $progress_size / $num_steps + $first_step))
#        $debug usplash_write "PROGRESS $progress" || true
    fi
}

#
# let bootsplash know if we are shutting down or starting up
#
echo "runlevel $runlevel"
if [ "$runlevel" = "S" -o "$runlevel" = "5" -o "$runlevel" = "0" -o "$runlevel" = "6" ]
  then
    test "$SPLASH" != "no" && /sbin/splash.sh "bootsplash stop"
    echo "ok"
fi

#
# Start script or program.
#
case "$CONCURRENCY" in
  shell)
        log_daemon_msg "Using shell-style concurrent boot"
        startup() {
                action=$1
                shift
                scripts="$@"
                sh=sh
                # Debian Policy §9.3.1 requires .sh scripts in runlevel S to be sourced
                # However, some important packages currently contain .sh scripts
                # that do "exit" at some point, thus killing this process.  Bad!
                #[ S = "$runlevel" ] && sh=.
                backgrounded=0
                for script in $scripts ; do
                        case "$script" in
                          *.sh)
                                if [ "." = "$sh" ] ; then
                                        set "$action"
                                        RC_SAVE_PATH="$PATH"
                                        startup_progress $debug . "$script"
                                        PATH="$RC_SAVE_PATH"
                                else
                                        startup_progress $debug $sh "$script" $action
                                fi
                                ;;
                          *)
                                startup_progress $debug "$script" $action &
                                backgrounded=1
                                ;;
                        esac
                done
                [ 1 = "$backgrounded" ] && wait
        }
        ;;
  startpar)
        log_daemon_msg "Using startpar-style concurrent boot"
        startup() {
                action=$1
                shift
                scripts="$@"
                sh=sh
                # Debian Policy §9.3.1 requires .sh scripts in runlevel S to be sourced
                # However, some important packages currently contain .sh scripts
                # that do "exit" at some point, thus killing this process.  Bad!
                #[ S = "$runlevel" ] && sh=.
                # Make sure .sh scripts are sourced in runlevel S
                if [ "." = "$sh" ] ; then
                        newscripts=
                        for script in $scripts ; do
                                case "$script" in
                                  *.sh)
                                        set "$action"
                                        RC_SAVE_PATH="$PATH"
                                        startup_progress $debug . "$script"
                                        PATH="$RC_SAVE_PATH"
                                        ;;
                                  *)
                                        newscripts="$newscripts $script"
                                        ;;
                                esac
                        done
                        scripts="$newscripts"
                fi

                # startpar is not able to handle time jumps.  So the
                # hwclock.sh scripts should not be executed from
                # within startpar.  The .sh hack above make this
                # problem irrelevant. [pere 2005-09-10]
                [ -n "$scripts" ] && startup_progress $debug startpar -a $action $scripts
        }
        ;;
  none|*)
        startup() {
                action=$1
                shift
                scripts="$@"
                sh=sh
                # Debian Policy §9.3.1 requires .sh scripts in runlevel S to be sourced
                # However, some important packages currently contain .sh scripts
                # that do "exit" at some point, thus killing this process.  Bad!
                #[ S = "$runlevel" ] && sh=.
                for script in $scripts ; do
                        case "$script" in
                          *.sh)
                                if [ "." = "$sh" ] ; then
                                        set "$action"
                                        RC_SAVE_PATH="$PATH"
                                        startup_progress $debug . "$script"
                                        PATH="$RC_SAVE_PATH"
                                else
                                        startup_progress $debug $sh "$script" $action
                                fi
                                ;;
                          *)
                                startup_progress $debug "$script" $action
                                ;;
                        esac
                done
        }
        ;;
esac

# Is there an rc directory for this new runlevel?
if [ -d /etc/rc$runlevel.d ]
then
        # Find out where in the progress bar the initramfs got to.
        PROGRESS_STATE=0
        if [ -f /dev/.initramfs/progress_state ]; then
            . /dev/.initramfs/progress_state
        fi

        # Split the remaining portion of the progress bar into thirds
        progress_size=$(((100 - $PROGRESS_STATE) / 3))

        case "$runlevel" in
                0|6)
                        ACTION=stop
                        # Count down from 0 to -100 and use the entire bar
                        first_step=0
                        progress_size=100
                        step_change=-1
                        ;;
                S)
                        ACTION=start
                        # Begin where the initramfs left off and use 2/3
                        # of the remaining space
                        first_step=$PROGRESS_STATE
                        progress_size=$(($progress_size * 2))
                        step_change=1
                        ;;
                *)
                        ACTION=start
                        # Begin where rcS left off and use the final 1/3 of
                        # the space (by leaving progress_size unchanged)
                        first_step=$(($progress_size * 2 + $PROGRESS_STATE))
                        step_change=1
                        ;;
        esac

        if [ "$SPLASH" = true ] ; then
            # Count the number of scripts we need to run (for usplash
            # progress bar)
            num_steps=0
            for s in /etc/rc$runlevel.d/[SK]*; do
                case "${s##/etc/rc$runlevel.d/S??}" in
                 gdm|xdm|kdm|ltsp-client|reboot|halt)
                    break
                    ;;
                esac
                num_steps=$(($num_steps + 1))
            done
            step=0
        fi

        # First, run the KILL scripts.
        if [ "$previous" != N ]
        then
                # Run all scripts with the same level in parallel
                CURLEVEL=""
                for s in /etc/rc$runlevel.d/K*
                do
                        level=$(echo $s | sed 's/.*\/K\([0-9][0-9]\).*/\1/')
                        if [ "$level" = "$CURLEVEL" ]
                        then
                                continue
                        fi
                        CURLEVEL=$level
                        SCRIPTS=""
                        for i in /etc/rc$runlevel.d/K$level*
                        do
                                # Check if the script is there.
                                [ ! -f $i ] && continue

                                #
                                # Find stop script in previous runlevel but
                                # no start script there.
                                #
                                suffix=${i#/etc/rc$runlevel.d/K[0-9][0-9]}
                                previous_stop=/etc/rc$previous.d/K[0-9][0-9]$suffix
                                previous_start=/etc/rc$previous.d/S[0-9][0-9]$suffix
                                #
                                # If there is a stop script in the previous level
                                # and _no_ start script there, we don't
                                # have to re-stop the service.
                                #
                                [ -f $previous_stop ] && [ ! -f $previous_start ] && continue

                                # Stop the service.
                                SCRIPTS="$SCRIPTS $i"
                        done
                        startup stop $SCRIPTS
                done
        fi
        # Now run the START scripts for this runlevel.
        # Run all scripts with the same level in parallel
        CURLEVEL=""
#        step=0
        for s in /etc/rc$runlevel.d/S*
        do
                level=$(echo $s | sed 's/.*\/S\([0-9][0-9]\).*/\1/')
                if [ "$level" = "$CURLEVEL" ]
                then
                        continue
                fi
                CURLEVEL=$level
                SCRIPTS=""
                for i in /etc/rc$runlevel.d/S$level*
                do
                        [ ! -f $i ] && continue

                        if [ "$previous" != N ]
                        then
                                #
                                # Find start script in previous runlevel and
                                # stop script in this runlevel.
                                #
                                suffix=${i#/etc/rc$runlevel.d/S[0-9][0-9]}
                                stop=/etc/rc$runlevel.d/K[0-9][0-9]$suffix
                                previous_start=/etc/rc$previous.d/S[0-9][0-9]$suffix
                                #
                                # If there is a start script in the previous level
                                # and _no_ stop script in this level, we don't
                                # have to re-start the service.
                                #
                                [ -f $previous_start ] && [ ! -f $stop ] && progress=$(($progress+2)) && continue
                        fi
                        SCRIPTS="$SCRIPTS $i"
                done
                startup $ACTION $SCRIPTS
        done
fi

if [ S = "$runlevel" ]
then
        #
        # For compatibility, run the files in /etc/rc.boot too.
        #
        [ -d /etc/rc.boot ] && run-parts /etc/rc.boot
fi

[ $runlevel != "S" ] && /sbin/splash.sh "master"   # finish up bootsplash

trap - EXIT # Disable emergency handler

exit 0

Author:  maverik044 [ Mon Jan 29, 2007 8:57 pm ]
Post subject: 

rc file above has been updated for those interested

Author:  Escher0 [ Mon Jan 29, 2007 9:51 pm ]
Post subject: 

Thanks, I just plugged in the file, I'll let you know how it goes.

Author:  Dak48 [ Tue Jan 30, 2007 7:43 am ]
Post subject: 

Quote:
Yeah... I thought it more important to release than debug. Perhaps I'll get to it before the next release.


So we noticed. I'm gonna have the balls to say this, I like KM, but Jesus, R5E50 is full of bugs and little gotchas. How about next time, we place importance on debugging instead of releasing a buggy version?

Author:  maverik044 [ Tue Jan 30, 2007 7:37 pm ]
Post subject: 

hey come on lets not start a flame war here. I think the KnoppMyth team has done a tremendous job, and all at no cost to the users.

Author:  cecil [ Wed Jan 31, 2007 12:32 pm ]
Post subject: 

Dak48 wrote:
So we noticed. I'm gonna have the balls to say this, I like KM, but Jesus, R5E50 is full of bugs and little gotchas. How about next time, we place importance on debugging instead of releasing a buggy version?
Ok smart guy. Put up or shut up. What are you doing to improve KnoppMyth? I tried to get the progress bar working, however it cause more problems. So, I opted to leave it be in E50 and work on it in a future release. There is nothing buggy about E50 because of the lack of a progress bar. The system still boots and that is the bottom line. So, if you like KnoppMyth and want to see it improve, contribute.

Author:  Lofty [ Sat Feb 03, 2007 7:19 am ]
Post subject:  Still no progress bar and now no boot!

I tried to apply this fix to my fresh R5E50 install and found that it just prevented my sytem from fully starting up and didn't fix the progress bar situation.

Am I the only one having this issue?

Has anyone successfully used this fix to correct the non-functioning progress bar in R5E50?

Author:  Escher0 [ Sat Feb 03, 2007 7:58 pm ]
Post subject:  Re: Still no progress bar and now no boot!

Lofty wrote:
I tried to apply this fix to my fresh R5E50 install and found that it just prevented my sytem from fully starting up and didn't fix the progress bar situation.

Am I the only one having this issue?

Has anyone successfully used this fix to correct the non-functioning progress bar in R5E50?

same thing happened to me. do we need to run lilo after applying this?

Author:  cecil [ Mon Feb 05, 2007 2:17 am ]
Post subject: 

It was missing # from the first line. Take another look. Tested and implemented. maverik044 thanks for doing the legwork.

Author:  Escher0 [ Mon Feb 05, 2007 11:54 am ]
Post subject: 

I just tried plugging it in again and again it prevents a full boot. I forgot to write down what the error is but it says something like "INIT:subsystem "c7" replying to fast"

Page 1 of 2 All times are UTC - 6 hours
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/