I think I know how to fix this bug. ... Of course, knowing how to fix
the bug and being able to fix the bug are two totally different things.
If I understand correctly ... When the "vga=791 splash" arguments are
passed to the kernel, some of the first scripts that the initial RAM
disk runs is a script that starts the framebuffer
("init-top/framebuffer") and a script that checks to see if Splashy
should start ("init-top/splashy").
Later, the initial RAM disk checks to see if there's a hibernation image
from which to resume "local-premount/{resume,uswsusp}". If it detects a
resume image, then it loads the resume image. The trouble then occurs
because the resume image also contains Splashy.
So if you could move (some of) the checks for the resume image into the
the "init-top/splashy" script and cause the "init-top/splashy" script to
exit if it detects a resume image, then:
* on a boot following a complete shutdown, the "init-top/splashy"
script would start Splashy
* on a boot following hibernation, the "init-top/splashy" script
would exit and allow the resume features to start Splashy
That would provide the best of both worlds! A userspace bootsplash that
starts early in the boot sequence and a bootsplash that is capable of
working with hibernation!
I hope this helps! Please let me know if there's anything else I can do!
Thanks,
- Eric