GDDCcontrol issues with NVIDIA drivers (i2c/monitor/display/DDC) - DP/HDMI failing

I hadn’t seen it suggested yet, so for anyone using KMS/nvidia-drm or otherwise loading the nvidia kernel module early on who can’t get the xorg.conf setting to fix DDC on newer cards, I’ve had to add the following to modprobe.conf or modprobe.d/whatever.conf instead:

options nvidia NVreg_RegistryDwords=RMUseSwI2c=0x01;RMI2cSpeed=100

It took me a while to realise the workaround wasn’t even being applied, for a while I assumed it just didn’t fix things on my system. To confirm that the settings are working:

$ grep RegistryDwords /proc/driver/nvidia/params
RegistryDwords: "RMUseSwI2c=0x01;RMI2cSpeed=100"

This makes DDC over HDMI work with my Pascal card and fixes the “invalid EDID” errors at least, and also doesn’t require starting X to use it, should help with wayland, etc. The second issue reported in this thread still persists however: monitors connected over DisplayPort do not show up nor respond on I2C at all.

That’s “amazing”.

NVIDIA was made aware of this issue 4 years ago and they just don’t give a fuck.

arcnmx,

I’ve cited your post on ddcutil’s page for special Nvidia driver settings, (Special Nvidia Driver Settings - ddcutil Documentation)

If you’d like some less anonymous credit, drop me an email at rockowitz@minsoft.com with your name or other way you’d like to be identified.

Sanford

GDDCcontrol doesn’t see my monitor over DP, but DDCUTIL does and can control it from the command line.
I have tried GDDCcontrol as sudo and made/confirmed the nvidia registry tweaks.
Any suggestions?

sudo ddcutil detect
Display 1
   I2C bus:             /dev/i2c-4
   Supports DDC:        true
   EDID synopsis:
      Mfg id:           SAM
      Model:            U32H85x
      Serial number:    HTOJ600075
      Manufacture year: 2017
      EDID version:     1.3
   VCP version:         2.0

You say you can control your display with ddcutil over DisplayPort? I’ve been unable to do this and have been forced to use the Nouveau drivers. Could you confirm what drivers you’re using, what GPU, and what connections you are using? Would love to finally get VSync to even work on my Linux machine, but Nvidia doesn’t care about their Linux users. I’m planning to move over to Rx Vega as soon as I can once prices go down because this isn’t getting any support from Nvidia.

Edit: Just tested nvidia-396.24-12, but nothing has changed.

CORRECTION
Ddcutil working perfectly on HDMI using latest Nvidia driver from negativo17 repository.
GTX1060
Works on two different monitors.
Doesn’t work on DP.
I made the nvidia tweaks.

(G)ddccontrol doesn’t work reports:

No monitor supporting DDC/CI available.

Probably just needs a profile. For now I am happy only nuisance is I have to sudo script each time I run

ddcutil setvcp 10 + 10

Buddy23,

To avoid the need for sudo when running ddcutil, ensure that group i2c exists and has RW permissions to the /dev/i2c-* devices. Then add your user to group i2c. For details, see http://www.ddcutil.com/config/

Also, running command:

ddcutil environment

as root provides configuration suggestions.

Sanford

Thanks I forgot about i2C now my keyboard shortcuts work for instant dimming and brightening ! !

Incidentally I fell back from Nvidia to Nouveau and noticed both monitors (DP and HDMI) work with DDCutil and Noveau as well as Gddccontrol. On Nvidia driver only HDMI works in DDCutil. I’ll probably swap out for both HDMI an I feel certain they will both work.

I noticed another detail. My 4k monitor has two HDMI ports, one is HDMI 1.4 (30hz) and the other HDMI 2.0 60hz. DDC only works on the HDMI 1.4 port at 30hz. On the hdmi 2.0 port no DDC “DDC communication failed”.

Tried multiple HDMI cables, they all support 2.0.
Maybe 4k 60hz HDMI doesn’t have bandwidth for DDC channel?
Nvidia card supports HDMI 2.0.

FWIW I’m using a pascal card (1050) with nvidia drivers and a 4k@60hz monitor over HDMI and DDC is indeed working properly on it, though it does not work over DP as reported previously.

Thanks, I’m on Nouveau currently I suspect that is it. I seem to remember having DDC on 60hz with Nvidia driver. I’ll report back after testing.

My HDMI 1.4 monitor connected using HDMI doesn’t work with NVIDIA binary drivers (GTX 1060) but works fine under nouveau, so even HDMI DDC support is in a semi-broken state in regard to NVIDIA drivers.

That’s pretty maddening.

Under Windows there are zero issues as always.

NVIDIA seems not to give a sh*t about this.

Ah well, I’m just here waiting for Rx Vega prices to come down so I can switch to AMD again. This is the only thing Nvidia has got to do to keep me from buying AMD hardware atm.
https://youtu.be/_36yNWw_07g?t=10s

Ok the thicken plots. I tried a Lenovo monitor and now DDC works at 4k 60hz on HDMI Noveau.
As much as I love to hate Nvidia maybe it’s not entirely their fault this once.

DDC/CI works on DP and HDMI for me on Nouveau. Only HDMI for the proprietary drivers. The Nouveau developers might care, Nvidia still doesn’t.

It looks like I’ve managed to nudge NVIDIA and they finally created a bug report in regard to this very long standing issue.

If you’re affected by it, please share your details in this topic: https://devtalk.nvidia.com/default/topic/1038239/linux/survey-gddccontrol-issues-with-nvidia-drivers-i2c-monitor-display-ddc-/

Unfortunately for Nvidia it’s too late for me. I’ve recently switched to AMD Rx Vega. I don’t plan on supporting a company that takes ages before it can even acknowledge a bug and ignores the Linux community. Good luck all the rest of you in getting this fixed, but it seems like there finally is progress.

It’s been a relief to use AMD drivers again and to have FreeSync available.

I agree, I’ve dumped Nvidia for good. My new Intel Coffee lake build had a 1070gtx which I sold and switched to onboard Intel GPU… it is much faster (more responsive, no tearing) on 4k desktops and never crashes. Unless you game/CUDA Intel GPUs are actually the best option these days.

Tested with Ubuntu 16.04.2. “RMUseSwI2c=0x01; RMI2cSpeed=100” are working for HDMI display . Ubuntu 17.10 it’s working too. Only on latest Debian[kernel 4.17.0-1-amd64] it’s failing. User Artum also using same kernel version 4.17.12-ic64 on Centos 6.10. I have tested with Ubuntu 18.04.1 LTS. It’s not failing with kernel 4.15.0-29-generic but its failing with kernel 4.17.1-041701-generic. So I think kernel 4.17 is affected. Tested HDMI display.