Driver 550.54 - no update to /sys/class/drm/... on hotplug of monitor

I plugged a monitor in and found that although it works and can be enabled with nvidia-settings, that the /sys/class/drm/card0-DP-1/device/card0-DP-1 directory wasn’t correctly populated, for example /sys/class/drm/card0-DP-1/device/card0-DP-1/edid is empty.

This causes software that uses the drm hierarchy, such as libddcutil 2.1.5, to fail.

I can fix this by a reboot, after which the drm entries are correct, but I don’t think I should have to reboot to bring a monitor fully online.

  • Do I need to run or configure something other than nvidia-settings?
  • Is this a problem with this particular driver?

I’m using the OpenSUSE Tumbleweed nvidia-repo drivers.

Graphics:
  Device-1: NVIDIA TU116 [GeForce GTX 1650 SUPER] driver: nvidia v: 550.54.14
  Display: x11 server: X.Org v: 21.1.11 with: Xwayland v: 23.2.4 driver: X:
    loaded: nvidia gpu: nvidia,nvidia-nvswitch resolution: 1: 3360x2100~60Hz
    2: 3840x2160~60Hz
  API: EGL v: 1.5 drivers: nvidia,swrast
    platforms: gbm,x11,surfaceless,device
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 550.54.14
    renderer: NVIDIA GeForce GTX 1650 SUPER/PCIe/SSE2
  API: Vulkan v: 1.3.275 drivers: N/A surfaces: xcb,xlib

CPU: 6-core AMD Ryzen 5 5600 (-MT MCP-) speed/min/max: 2261/2200/4467 MHz
Kernel: 6.7.2-1-default x86_64 Up: 1h 28m Mem: 11/31.22 GiB (35.2%)
Storage: 9.57 TiB (18.8% used) Procs: 384 Shell: Zsh inxi: 3.3.33

In the following output from ddcutil, it fails to list a DRM connector for Display 1 which is the hotplugged monitor:

% ddcutil detect
Display 1
   I2C bus:  /dev/i2c-0
   EDID synopsis:
      Mfg id:               HWP - Hewlett Packard
      Model:                HP ZR24w
      Product code:         10345  (0x2869)
      Serial number:        CNT0080000
      Binary serial number: 16843009 (0x01010101)
      Manufacture year:     2010,  Week: 8
   VCP version:         2.2

Display 2
   I2C bus:  /dev/i2c-3
   DRM connector:           card0-DP-3
   EDID synopsis:
      Mfg id:               GSM - Goldstar Company Ltd (LG)
      Model:                LG HDR 4K
      Product code:         30471  (0x7707)
      Serial number:        
      Binary serial number: 86000 (0x00000000)
      Manufacture year:     2019,  Week: 4
   VCP version:         2.1

Via https://github.com/rockowitz/ddcutil/issues/390#issuecomment-1987431864

I’ve read:

https://super-unix.com/unixlinux/linux-how-to-make-linux-detect-re-probe-monitors-with-intel-i915-driver/

Although the link is describing a solution for an Intel driver, it applies to Nvidia as well.

It appears that the DRM entry for a hotplug monitor must be forced to initialise by doing:

echo detect > /sys/class/drm/card0-DP-2/status

This must be done as root, so either add a udev rule, or use sudo.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.