Setup: Fedora 43, KDE Plasma (Wayland/SDDM), LUKS-encrypted root, NVIDIA RTX 4080 (akmod-nvidia 580.119.02), AMD Raphael iGPU (not used), primary monitor on HDMI-A-1, secondary monitor on DP-1.
The problem: With nouveau/nova_core blacklisted, no KMS driver is available during early boot. The LUKS passphrase prompt requires a working framebuffer, so it either renders to the wrong output or fails entirely.
nomodeset workaround — unreliable: Adding nomodeset makes early boot rely on the UEFI GOP framebuffer via simpledrm. This is locked to whichever output the firmware selected during POST (DP-1 in my case). If only HDMI is connected, the GOP framebuffer targets a disconnected output, Plymouth cannot initialize a usable console, and the LUKS prompt is never generated — boot hangs.
Switching the primary monitor to DP is not an option; only HDMI 2.1 supports 4K 32-bit 144Hz on this GPU/monitor combination.
Proper fix — fragile on kernel updates: Including nvidia nvidia_modeset nvidia_uvm nvidia_drm in the initramfs via dracut (/etc/dracut.conf.d/nvidia.conf) provides a real KMS framebuffer during early boot. This works until the next kernel update. During kernel installation, dracut runs automatically but akmod has not yet built the NVIDIA modules for the new kernel. The resulting initramfs has no NVIDIA modules, and the next reboot is a black screen.
Question: Would it be possible to have Fedora handle this ordering automatically, out-of-the-box? It has taken me a long time to get to the bottom of this issue, while it seems to me that it is entirely preventable from a general system setup perspective.
Removing rhgb messes with another workaround concerning a bug in KDE (I won’t elaborate here). But that should work in normal circumstances I guess (though the text prompt is not very elegant).
plymouth.use-simpledrm=1 seems to work. I’ll leave it enabled and evaluate how consistently it keeps working.
Either way, I can live with the nvidia modules added + manual workaround after kernel update. I was just wondering if there wasn’t an out-of-the-box solution possible making life easier in general. Thanks to chime in in that bugzilla post
Coincidentally I was updating MX Linux today, which I recently set up on a USB stick for rescue purposes (also with nvidia modules added). I noticed it installed a new kernel and did exactly this: kernel update → build nvidia modules → update initramfs.
Been using plymouth.use-simpledrm=1 for a few days now and that seems to work consistently, meaning I can avoid having to load nvidia modules in initramfs, avoiding the black screen after kernel update. I have therefore marked this as a solution (thanks!).
The question does remain if Fedora can avoid the LUKS bootprompt issue(s) out-of-the-box as proposed.
I’m afraid this won’t be practical to have this option added out of the box.
Of course, we can assume nvidia card will be available when the driver is installed, but that’s not necessarily the case and specially optimus devices (where an intel/amd adapater is used for display) won’t need this.
Having this parameters added everywhere means it will lead to regression in some cases where the screen resolution from the EFI/BIOS (as inherited by simple-drm) is not as good as the screen resolution that can be set by the native driver.