From Fedora Project Wiki

< Changes

Revision as of 15:28, 21 October 2021 by Javierm (talk | contribs) (changing to SystemWideChange to make sure that others pay attention to this and get proper OpenQA testing)

Replace the fbdev drivers with simpledrm and the DRM fbdev emulation layer

Summary

This change replaces the legacy Linux frame buffer device (fbdev) drivers that are still used in Fedora, with the latest simpledrm driver and the DRM fbdev emulation layer.

Owner

Current status

  • Targeted release: Fedora 36
  • Last updated: 2021-10-21
  • FESCo issue: []
  • Tracker bug: []
  • Release Notes tracking: []

Detailed Description

The fbdev subsystem has been deprecated for over a decade and no new platform should use it but instead write DRM drivers for their video output.

Yet, the Fedora kernel still enables support for some of the fbdev drivers. Mainly for fbdev drivers that make use of the video frame buffer that was initialized by the firmware. These are generic drivers that could be used in different platforms since only grab an existing frame buffer without trying to do any hardware initialization and setup.

Examples of these drivers are simplefb (used in aarch64 machines with Device Trees) and efifb (used in EFI machines) and vesafb (used in machines with a VESA VGA graphics). But since the Linux v5.14, a new simpledrm driver was introduced that is able to do the same that these fbdev drivers. And just like any other DRM driver, it can rely on the DRM subsystem fbdev emulation layer to provide a fbdev interface.

For this reason, there is no need for the fbdev drivers anymore and instead the simpledrm driver could just be used.

Benefit to Fedora

This change will allow to reduce the maintenance burden in the Linux kernel since users won't use legacy fbdev drivers anymore but instead a driver in the well maintained DRM subsystem. This will also move Fedora one step close to being able to completely disable the fbdev subsystem.

The latter is still not possible due the framebuffer console (fbcon) needing to run on top of a frame buffer device. But at least this change will remove the dependency with fbdev drivers and make fbcon just use the DRM fbdev emulation layer in the meantime.

Scope

  • Proposal owners:
    • Modify the following Linux kernel config options:
      • Disable fbdev drivers (e.g: CONFIG_FB_EFI, CONFIG_FB_SIMPLE) options.
      • Make CONFIG_DRM option built-in so the display can be enabled without an initrd.
      • Enable the CONFIG_SYSFB_SIMPLEFB that registers a simple-framebuffer platform device that is used to match the simpledrm driver.
  • Other developers:
    • It should not affect other packages but may be that plymouth or display managers could need some work.
    • Test and watch for regressions.
  • Release engineering: []
  • Policies and guidelines: No changes needed.
  • Trademark approval: No changes needed.

Upgrade/compatibility impact

There should not be any impact on upgrade, this is a internal change in the kernel and should be transparent for users.

How To Test

  • Install Fedora 36 and check that there is output in the video console when removing the rhgb quiet parameters.

User Experience

No visible changes are expected, as mentioned it is fully backward compatible and transparent for users.

Dependencies

None

Contingency Plan

  • Contingency mechanism: Revert the Linux kernel configuration changes.
  • Contingency deadline: Beta Freeze
  • Blocks release? No
  • Blocks product? None

Documentation

  • N/A