Plymouth: Use simpledrm by default
Summary
Make plymouth use the simpledrm kernel mode setting (kms) device by default instead of waiting for the GPU driver to initialize.
Owner
- Name: Hans de Goede
- Email: hdegoede@redhat.com
Current status
- Targeted release: Fedora Linux 42
- Last updated: 2025-01-13
- [<link to devel-announce post will be added by Wrangler> Announced]
- [<will be assigned by the Wrangler> Discussion thread]
- FESCo issue: <will be assigned by the Wrangler>
- Tracker bug: <will be assigned by the Wrangler>
- Release notes tracker: <will be assigned by the Wrangler>
Detailed Description
GPU drivers can take a long time to load and probe all the connectors on some machines, causing plymouth to timeout after waiting 8 seconds and falling back to the ugly text splashscreen instead. Also see this blogpost
On UEFI systems the EFI framebuffer will become available as simpledrm kms device much earlier during boot. Plymouth defaults to ignoring simpledrm kms devices for 2 reasons:
- These kms devices lack panel rotation information
- These kms devices lack physical size information
Both of these issues have been fixed now (click on the issues to see the fixes).
Since both issues have been fixed now we can switch to using the simpledrm kms device by default, showing the splash earlier instead of letting the user look at a static screen and avoiding the issue of the textmode fallback if the GPU driver takes a long time to initialize.
Using simpledrm may lead to some changes in the splash appearance:
- With simpledrm plymouth will fallback to heuristics on the resolution instead of DPI info to decide whether or not to use hidpi (e.g. 2x size) rendering. This may result in a different scaling factor for some setups, but I do not expect this really to be an issue.
- On old UEFI systems the efifb will not come up in native mode, but rather in 800x600 or 1024x768. This will lead to a pretty significant discontinuity in the boot experience when switching from say 800x600 to 1920x1080 while plymouth was already showing the spinner at 800x600.
- On systems where a full modeset is done the monitor going briefly black from the modeset will move from being just before plymouth starts to the switch from simpledrm drm to the real driver.
This change is only about changing the default, it will still be possible to switch plymouth back to ignoring simpledrm kms devices for systems where using the simpledrm kms device leads to a significantly worse boot experience.
Feedback
Benefit to Fedora
On UEFI systems this will improve the boot experience in 2 ways:
- This avoids the textmode fallback if the GPU driver takes a long time to initialize.
- This shows the splash earlier instead of letting the user look at a static screen
Scope
- Proposal owners: Write and upstream a plymouth patch to make ignoring simpledrm kms devices configurable from the plymouth config file and modify Fedora's config to not ignore it.
- Other developers: N/A (not needed for this Change)
- Release engineering: N/A (not needed for this Change)
- Policies and guidelines: N/A (not needed for this
- Trademark approval: N/A (not needed for this Change)
- Alignment with the Fedora Strategy: Yes (cleaner boot should help getting more users)
Upgrade/compatibility impact
New and updated systems will automatically switch to the new default. This can be overridden by the user if desired.
How To Test
Users can already test this with Fedora 41 on any hardware which has a video output connected.
First boot the system once without any changes and take a good look at the boot splash (Fedora logo with spinner below it) looks.
Now enable the planned Fedora 42 behavior by passing "plymouth.use-simpledrm" to the kernel commandline. This can be done by running the following command:
sudo grubby --update-kernel=ALL --args="plymouth.use-simpledrm"
After this reboot and take a good look at the boot splash (Fedora logo with spinner below it). If anything looks off which was not there before please report this.
Dependencies
None
Contingency Plan
Flip plymouth's default back to ignoring simpedrm kms devices.
Documentation
N/A (not a System Wide Change)