NVIDIA / open-gpu-kernel-modules

NVIDIA Linux open GPU kernel module source
Other
15.26k stars 1.29k forks source link

GPU is not properly transitioning HDMI 2.1 displays from FRL (Fixed Rate Link) to TMDS (Transition Minimized Differential Signaling) during reboots #721

Open plexecutor opened 1 month ago

plexecutor commented 1 month ago

NVIDIA Open GPU Kernel Modules Version

560.35.03-18 x86_64

Please confirm this issue does not happen with the proprietary driver (of the same version). This issue tracker is only for bugs specific to the open kernel driver.

Operating System and Version

Arch Linux

Kernel Release

6.11.5.arch1-1

Please confirm you are running a stable release kernel (e.g. not a -rc). We do not accept bug reports for unreleased kernels.

Hardware: GPU

Gigabyte RTX 3060 Ti LHR

Describe the bug

The GPU is not properly transitioning HDMI 2.1 displays from FRL (Fixed Rate Link) to TMDS (Transition Minimized Differential Signaling) during reboots. This causes a black screen during the BIOS/UEFI and Bootloader phase of the reboot process. Expected behavior is as follows: Display is in FRL mode when displaying the desktop environment, user initiates reboot, GPU transitions display to TMDS (required by bios/uefi and bootloader to produce video). This is how Windows and older LTS distros that do not have bleeding edge drivers or kernel support behave.

To Reproduce

Have an HDMI 2.1 connected monitor, preferably one that allows you to view signal information on the display itself such as an LG OLED TV, capable of saturating more than 18Gbps (required to be in FRL signal mode) and initiate a reboot. Notice the screen stays black and you do not see the PC's BIOS splash screen or the bootloader. Video returns once the linux kernel and initramfs are loaded.

Bug Incidence

Always

nvidia-bug-report.log.gz

nvidia-bug-report.log.gz

More Info

I cannot pinpoint exactly when this bug started, but it is not present on LTS distros like Pop or Ubuntu. It seems to be some combination of kernel 6.11 or Nvidia 560. I have not been able to test 565 yet as it is not packaged for Arch at this time.

plexecutor commented 1 month ago

I think I can narrow this issue down to the fbdev option in nvidia_drm. The following steps will fix the issue, albeit at the expense of tty sessions having a very low/stretched resolution.

Set fbdev kernel parameter to 0 by creating nvidia-drm.conf in /usr/lib/modprobe.d (Arch Linux, may vary by distro) and add the following line:

options nvidia_drm modeset=1 fbdev=0

regenerate initramfs:

mkinitcpio -P

The next reboot will still have no bios screens but after the second one you should now always see the bios messages and boot-loader. You will also notice, that the boot messages on startup and shutdown/reboot in the tty now have a much lower resolution than before.