From Fedora Project Wiki

Plymouth: Use simpledrm by default

This is a proposed Change for Fedora Linux.
This document represents a proposed Change. As part of the Changes process, proposals are publicly announced in order to receive community feedback. This proposal will only be implemented if approved by the Fedora Engineering Steering Committee.

Summary

Make plymouth use the simpledrm kernel mode setting (kms) device by default instead of waiting for the GPU driver to initialize.

Owner

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:

  1. These kms devices lack panel rotation information
  2. 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:

  1. 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.
  2. 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.
  3. 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:

  1. This avoids the textmode fallback if the GPU driver takes a long time to initialize.
  2. 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)

Release Notes