First black screen, then vendor logo and finally plymouth -> how to get it flicker free?

Hi, first post in here, so please bare with me.

I was playing around a bit, trying the get flicker free booting working on my F31 equipped Lenovo Thinkpad X1 Carbon Gen 7. The machine nicely dual boots with W10. I tuned GRUB to show a theme featuring a background image with what should be visible from plymouth BGRT theme (vendor logo on top and Fedora watermark on the bottom). This does work nicely, but plymouth kicks in very, very late in the boot process.

What I see after selecting the kernel in GRUB is a black screen, followed by only the vendor logo (no Fedora watermark) and then finally plymouth showing the vendor logo, the watermark and the spinner. Since the machine boots quickly, the plymouth eye candy is only visible for a short time. In total, this gives me three or four flickers (before GRUB, GRUB to black screen, black screen to only vendor logo and finally another one to plymouth).

My /etc/default/grub looks like this:

    GRUB_TIMEOUT=2
    GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
    GRUB_DEFAULT=saved
    GRUB_DISABLE_SUBMENU=true
    GRUB_CMDLINE_LINUX="rhgb quiet rd.md=0 rd.lvm=0 rd.dm=0 rd.luks=0 raid=noautodetect rd.systemd.show_status=auto plymouth.splash_delay=0"
    GRUB_DISABLE_RECOVERY="true"
    GRUB_ENABLE_BLSCFG=true
    GRUB_THEME="/boot/grub/themes/Slaze/theme.txt"
    GRUB_GFXMODE=auto
    GRUB_GFXPAYLOAD_LINXU=keep

System is a Lenovo Thinkpad X1 Carbon with 4K screen (3840 x 2160 resolution), Intel internal graphics. Secure boot is enabled, UEFI mode without CSM. I can see the efivars and the bgrt directories in /sys/firmware/… I also tried with i915.fastboot=1 or i915.modeset=1 kernel config options, but those made no difference.

What can I do to get rid of those intermediate steps and have plymouth kick in right after GRUB?

2 Likes

Hi @mrgroover, Welcome to the Fedora Community

Have you seen these pages below?
https://fedoraproject.org/wiki/Changes/FlickerFreeBoot

@twohot: Thanks, yes, I know those pages. Most, if not everything, should be included in F31 already. From what I read, i.915.fastboot is default now for Skylake and newer CPUs (mine is a Whisky Lake). I have the plymouth bgrt theme installed and enabled.

Taken from the wiki page you referenced:

So is it supposed to only work in case of “single OS installs”? That’d be a pity… I could give it a try, once I figure out how to tell GRUB not to care about the installed Win10 (which I rarely use).

Please let me know if there are other items (config files, installed packages, …) I should check.

Anaconda usually configures dual-booting automatically during setup/installation (Unless you missed the partition scheme during setup). Don’t you see an option to boot Windows in the GRUB menu? Usually, Fedora is set as the default OS after installaton – with Windows somewhere below. That should do. With that setup, you can conviniently forget that Windows in on the machine until when you need Windows.