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.
genkernel.log is 7.2M so I'll only attach (gzipped) if requested.
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 ;)
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.
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.
It's in /etc/genkernel.conf. I'm assuming it was there before the upgrade to genkernel:4.
Yes, all config options, including SPLASH=, are listed in /etc/genkernel.conf. However, this option was always disabled by default.
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.
The bug has been referenced in the following commit(s):
Author: Thomas Deutschmann <firstname.lastname@example.org>
AuthorDate: 2020-01-13 00:04:17 +0000
Commit: Thomas Deutschmann <email@example.com>
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.
Signed-off-by: Thomas Deutschmann <firstname.lastname@example.org>
gen_determineargs.sh | 8 ++++++++
gen_initramfs.sh | 5 -----
2 files changed, 8 insertions(+), 5 deletions(-)
If --splash is basically a dead option, how (for a newbie) do we add bootsplash screens to new installs?
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.
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.