From Fedora Project Wiki
(Change submitted to FESCo)
(Add trackers)
 
(One intermediate revision by the same user not shown)
Line 11: Line 11:


== Current status ==
== Current status ==
[[Category:ChangeReadyForFesco]]
[[Category:ChangeAcceptedF36]]
[[Category:SystemWideChange]]
[[Category:SystemWideChange]]


Line 18: Line 18:
* [https://lists.fedoraproject.org/archives/list/devel-announce@lists.fedoraproject.org/thread/XBYN7WX3L6QQHGCO6N6KCMAQLUXJMIJX/ devel list discussion]
* [https://lists.fedoraproject.org/archives/list/devel-announce@lists.fedoraproject.org/thread/XBYN7WX3L6QQHGCO6N6KCMAQLUXJMIJX/ devel list discussion]
* FESCo issue: [https://pagure.io/fesco/issue/2689 #2689]
* FESCo issue: [https://pagure.io/fesco/issue/2689 #2689]
* Tracker bug: <will be assigned by Wrangler>
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=2022385 #2022385]
* Release Notes tracking: <will be assigned by Wrangler>
* Release Notes tracking: [https://pagure.io/fedora-docs/release-notes/issue/765 #765]


== Detailed Description ==
== Detailed Description ==

Latest revision as of 14:35, 11 November 2021

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

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