Skip to content

Plymouth on NVIDIA: splash needs early module loading, LUKS prompt is the worst case #4585

@Softer

Description

@Softer

After #4555 landed I dug into how the new Plymouth option interacts with NVIDIA setups (a topic I find interesting), and there's a gap: we install nvidia-open but never put the kernel modules into the initramfs.

Two consequences:

  • The splash starts on SimpleDRM, and when nvidia-drm finally loads from the root fs it kicks SimpleDRM out. Depending on hardware that's anywhere from a quick mode switch to a few seconds of black screen (plymouth upstream issue 264 is about exactly this).
  • The nasty one: with LUKS, current plymouth (26.134.222) deliberately skips SimpleDRM and waits for a real DRM driver. There is no nvidia-drm in the initramfs, so at the password prompt stage it never shows up - the user gets a delayed/text/black prompt. And nvidia + LUKS + Plymouth is a combination archinstall happily produces now.

The good news: everything else just works in 2026. modeset=1 and fbdev=1 are driver defaults, and the kms hook is harmless next to nvidia (modconf puts the blacklists into the image). Early loading is the only missing piece.

So the suggestion: when the gfx driver is NVIDIA and Plymouth is selected, add

MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)

and probably ship a pacman hook to rebuild the initramfs on driver updates, otherwise the modules go stale (CachyOS early-loads unconditionally via chwd, and stale modules are their most common breakage).

This overlaps with #1239, but I'd argue that one has outlived itself: it asked to early-load for everyone back when modeset wasn't a default and basic functionality was the concern. In 2026 late loading just works for the general case - Plymouth is the only scenario left where early loading buys something the user actually sees. So it might even make sense to close #1239 in favor of this issue, with its much narrower scope (only nvidia users who explicitly turned Plymouth on).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions