Comment 51 for bug 2060268

Revision history for this message
Alessandro Astone (aleasto) wrote :

== History ==
Prior to nvidia 545 the driver did not provide a framebuffer and instead relied on framebuffers from CONFIG_EFI_FB and CONFIG_VESA_FB alike.

SimpleDRM (required on a modern Wayland-only system) can also provide a framebuffer (simplefb), and indeed Ubuntu does not use EFI_FB and VESA_FB anymore, relying purely on SimpleDRM to provide a fallback framebuffer. However SimpleDRM also provides a DRM device which creates this phantom display.

Since nvidia 545, the driver has gained the capability to provide a framebuffer device, currently opt-in with the option `nvidia-drm.fbdev=1`. Enabling this makes SimpleDRM go away like it would with amdgpu or i915 (*currently racy, see [1]).

== Solutions ==
1. The first option is to enable fbdev=1 by default, like we do for nvidia-drm.modeset=1.
This is still considered to be in test-stage by nvidia, and unfortunately on my Ubuntu machine it breaks any graphical session with bug [2]. NB: somehow this bug does not happen on my Fedora install, where fbdev=1 is already the default.

2. Prior to having the nvidia-drm.fbdev option in Fedora we would instead disable SimpleDRM if-and-only-if the nvidia driver is installed. You may achieve this either by appending `initcall_blacklist=simpledrm_platform_driver_init` to the kernel commandline through a package install-time script, or through a patch like [3]. But we are now left with no framebuffer device, so switching VT leaves you with a black screen (imho unacceptable). The solution to that issue is to enable CONFIG_EFI_FB/CONFIG_VESA_FB again so that nvidia systems will keep access to VTs, albeit low-res ones compared to simplefb.

[1]: https://bugs.launchpad.net/ubuntu/+source/sddm/+bug/2063143
[2]: https://forums.developer.nvidia.com/t/545-29-06-18-1-flip-event-timeout-error-on-startup-shutdown-and-sometimes-suspend-wayland-unusable/274788
[3]: https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1788/diffs