Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 705304

Summary: genkernel fails if SPLASH=yes apparently because splash_geninitramfs not found
Product: Gentoo Hosted Projects Reporter: Jack <ostroffjh>
Component: genkernelAssignee: Gentoo Genkernel Maintainers <genkernel>
Status: RESOLVED CANTFIX    
Severity: normal CC: dan
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Jack 2020-01-12 18:33:21 UTC
See https://ahelpme.com/linux/gentoo/genkernel-error-unable-to-generate-splash-splash_geninitramfs-was-not-found/ for a longer explanation, but with SPLASH=y in genkernel.conf, genkernel fails in creating initramfs with "ERROR: Unable to generate splash, 'splash_geninitramfs' was not found!" although there is no further info in genkernel.log.  The above link states that splash_geninitramfs was removed from media-gfx/splashutils, but I can't find that package at all in portage.

In addition, the log has

* >> Ensure that required kernel options for Splash support are set ...
*          - Adding option 'CONFIG_FB_SPLASH' with value 'y' to '/usr/src/linux/.config'...
*          - Option 'CONFIG_VT=y' already set in '/usr/src/linux/.config'; Skipping ...
*          - Option 'CONFIG_TTY=y' already set in '/usr/src/linux/.config'; Skipping ...
*          - Option 'CONFIG_FB=y' already set in '/usr/src/linux/.config'; Skipping ...
*          - Option 'CONFIG_FRAMEBUFFER_CONSOLE=y' already set in '/usr/src/linux/.config'; Skipping ...
*          - Adding option 'CONFIG_FB_CON_DECOR' with value 'y' to '/usr/src/linux/.config'...

but I can find no evidence of CONFIG_FB_SPLAH or CONFIG_FB_CON_DECOR anywhere in .config or the kernel docs.
I am not certain whether I had SPLASH set for genkernel:3, but I'm pretty sure I did, and it worked fine.

In case it matters, I will attach the full genkernel.log.

Reproducible: Always
Comment 1 Jack 2020-01-12 18:37:40 UTC
genkernel.log is 7.2M so I'll only attach (gzipped) if requested.
Comment 2 Thomas Deutschmann gentoo-dev Security 2020-01-12 23:58:10 UTC
This is not a genkernel-4 issue: --splash feature requires splash_geninitramfs and there is no package in repository providing that binary. Or in other words: --splash is a dead feature since media-gfx/splashutils was removed 2+ years ago.

I am going to close this as CANTFIX because there is not much we can do here. :(

My plan is to look into plymouth at some point. Maybe we can get it working without udev but given nobody complaint in past 2 years this on the bottom of my todo/genkernel wish list. Of course, patches welcome ;)
Comment 3 Jack 2020-01-13 00:04:15 UTC
I won't reopen for this, but if SPLASH=YES cannot be honored, then why not either drop it as a valid line in the config file, or just ignore it with a note in the output that it was requested but can't be honored.  Simply blowing up having failed to create the initramfs just seems wrong to me, especially if the reason is that well known.
Comment 4 Thomas Deutschmann gentoo-dev Security 2020-01-13 00:54:33 UTC
Where's SPLASH=yes coming from? It's _not_ enabled by default.

For now I plan to keep the code - it doesn't really hurt. I have a change pending which will make genkernel fail early when splash_geninitramfs is missing so you don't wait x minutes just to learn about the problem.
Comment 5 Jack 2020-01-13 01:00:41 UTC
It's in /etc/genkernel.conf.  I'm assuming it was there before the upgrade to genkernel:4.
Comment 6 Thomas Deutschmann gentoo-dev Security 2020-01-13 04:18:02 UTC
Yes, all config options, including SPLASH=, are listed in /etc/genkernel.conf. However, this option was always disabled by default.
Comment 7 Jack 2020-01-13 04:28:03 UTC
True, but a default value of "no" doesn't give any reason not to change it to "yes" and expecting it to work, without some comment that it won't work and will fail so "don't do this."  I'd still prefer it to just ignore the option with a note as to why, but just failing as it currently does is just not good.
Comment 8 Larry the Git Cow gentoo-dev 2020-01-14 01:36:25 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=a6223abe3b87bc544445f1b2ee51019084209181

commit a6223abe3b87bc544445f1b2ee51019084209181
Author:     Thomas Deutschmann <whissi@gentoo.org>
AuthorDate: 2020-01-13 00:04:17 +0000
Commit:     Thomas Deutschmann <whissi@gentoo.org>
CommitDate: 2020-01-13 23:36:56 +0000

    gen_initramfs.sh: append_splash(): Move check for splash_geninitramfs to determine_real_args()
    
    This will allow us to fail early if splash_geninitramfs isn't available.
    
    Bug: https://bugs.gentoo.org/705304
    Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>

 gen_determineargs.sh | 8 ++++++++
 gen_initramfs.sh     | 5 -----
 2 files changed, 8 insertions(+), 5 deletions(-)
Comment 9 dan 2020-09-11 05:20:00 UTC
If --splash is basically a dead option, how (for a newbie) do we add bootsplash screens to new installs? 

Thanks!
Comment 10 Thomas Deutschmann gentoo-dev Security 2020-09-11 08:00:24 UTC
I have one report from someone who kept that binary and he said it is still working for him in latest genkernel -- that's why I haven't removed the code at all yet.

However, if you don't have a copy of that old binary somewhere you are out of luck and I don't know any way to use that feature.

Now that we moved to udev in genkernel, we maybe see plymouth support in future but I cannot tell you if and when this will happen.
Comment 11 dan 2020-09-12 20:57:51 UTC
Plymouth is nice, but what about systems that don't have X on them in the first place? The server I'm working on will be text mode ONLY. Since Plymouth is built on top of X, that makes it a non-starter.

So basically it sounds like I can't have a boot splash screen at all. That bites.