Luis Mondesi wrote:
When $resume is not set, does Splashy start from initramfs init-top? Why does Splashy starts "late"?


Hi Luis,

I ran some diagnostics using the hack that I sent yesterday.

Specifically, I ran "splashy_config -s kubuntusplashy" but I did NOT run "update-initramfs -u". That enables me to see when Splashy is running from the initial RAM disk and when it is running from the regular file system. When I see "debian-moreblue," then I know that Splashy is running from the initial RAM disk. When I see "kubuntusplashy," then I know that Splashy is running from the regular file system.

Or more simply: "'Debian' is right. 'Kubuntu' is wrong." ;-)


When I pass the arguments "vga=791 splashy", I see:

* Start-up  -- Debian
* Shut-down -- Kubuntu

* Hibernate -- Kubuntu
* Resume    -- Debian  -- and then it freezes


When I pass the arguments "vga=791 splashy laptop", I see:

* Start-up  -- Kubuntu
* Shut-down -- Kubuntu

* Hibernate -- Kubuntu
* Resume    -- Debian  -- resumes successfully


==  ==  ==  ==  ==  ==  ==  ==  ==  ==  ==  ==  ==


IMPLICATION #1

Those tests tell me that the line:

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

always evaluates to "SPLASH=false" because "${resume}" is never zero in length. Then when the script reads:

test $SPLASH = "true" || exit

it exits.

When the "laptop" kernel argument is passed during start-up, Splashy starts when the initial RAM disk quits and the regular file system takes over. The Kubuntu splash screen at start-up confirms this.

For further confirmation, I also paid very close attention to the boot messages that I saw during start-up. Here (more or less) are the last lines that I saw prior to Splashy starting:

Running scripts/init-bottom
Done.
INIT version 2.86 Booting
* (Re)generating splash steps for
* rc2.d ...
* rc0.d ...
* rc6.d ...
Starting boot manager Splashy
Splashy ERROR connection refused
Splashy ERROR connection refused

I think the "connection refused" messages occur because it's trying to connect to a running version of Splashy (but none is running, of course).


==  ==  ==  ==  ==  ==  ==  ==  ==  ==  ==  ==  ==


IMPLICATION #2

OK, so what does this mean in terms of the "resume bug?" Why doesn't Splashy allow my computer to resume from hibernation without my hack?

In my amateur opinion, there are two ways of finding a "real solution."

One way is to determine what "${resume}" should look like when the system is starting-up and what it should look like when it is resuming. Once we determine that, we can have the "init-top/splashy" script perform the appropriate tests. My hack simply doesn't perform the correct test. "${resume}" is always non-zero in length.

The other way is to fix the connection between the part of Splashy that runs immediately upon boot and the part of Splashy that runs when the resume process begins. The fact that the Debian splash screen always appeared during resume (i.e. when I passed "vga=791 splashy" and when I passed "vga=791 splashy laptop") indicates that this connection occurs entirely within the initial RAM disk.


==  ==  ==  ==  ==  ==  ==  ==  ==  ==  ==  ==  ==


That's about all I can think of. I hope this helps and I apologize if I'm driving you nuts about this bug.

Have a great weekend,
- Eric


Reply via email to