[Splashy-devel] Bug#486400: a hack that WORKS !!!

Eric Doviak eric at doviak.net
Thu Jul 3 04:38:36 UTC 2008


Hi Luis,

After days of struggling with the "resume bug," I have finally found a 
hack that fixes the problem. It's not ideal, but it squashes the bug and 
it provides laptop users with a boot splash without compromising the 
quality that desktop users currently enjoy.

Specifically, I started by adding the following code after line 44 of 
the "/usr/share/initramfs-tools/scripts/init-top/splashy" file:

if [ ! -z "${resume}" ]; then
        SPLASH=false
fi

That condition allows me to resume from hibernation, but it causes 
Splashy to start rather late in the boot sequence. Specifically, it 
starts when the "init-bottom" scripts are run. Adding such a condition 
to Splashy would be useful to laptop users, but the late start would 
degrade Splashy in the eyes of desktop users.

I see no reason why desktop users should be penalized just to make 
laptop users happy, so I created another condition that only runs the 
condition above if "laptop" is passed as a kernel argument. The code is 
below.

By creating a "laptop" kernel argument, desktop users would continue to 
see a splash screen early in the boot sequence and laptop users would 
get a user-space boot splash system that works during start-up, 
shutdown, suspend and resume.

It certainly isn't the ideal solution that I had in mind a few days ago 
(when I thought we could provide everyone with a splash screen that 
starts early in the boot sequence), but it squashes the bug and it makes 
Splashy usable for laptop users. Importantly, it achieves those 
objectives without degrading Splashy's performance on desktop computers.

Let me know if there's anything else I can do,
- Eric


SPLASH=false
LAPTOP=false
SINGLE=false
FBMODESET=false

for x in $(cat /proc/cmdline); do
    case $x in
        single)
            SINGLE=true
        ;;
        splash)
            SPLASH=true
        ;;
        laptop)
            LAPTOP=true
        ;;
        nosplash)
            SPLASH=false
        ;;
        vga=*|video=*)
            FBMODESET=true
        ;;
    esac
done

test $LAPTOP != "true" || if [ ! -z "${resume}" ]; then SPLASH=false ; fi
test $SINGLE = "false" || exit
test $SPLASH = "true" || exit
test $FBMODESET = "true" || exit




-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.alioth.debian.org/pipermail/splashy-devel/attachments/20080703/51de2fb4/attachment.htm 


More information about the Splashy-devel mailing list