Survey: GDDCcontrol issues with NVIDIA drivers (i2c/monitor/display/DDC)

  • Loaded according to lsmod.
  • Works neither under sudo, nor under root. All the permissions are OK: i2c devices are under group video, access mode 660, I’m in the video group.
  • It’s there.

This is still reproducible under drivers 430.09.

We fixed this issue and fix will be available in next driver release.

Wow, great, thanks!

Could you tell us why it’s taken so long to fix the issue? I first reported it six (!) years ago.

What release would that be, more specifically?

I’m currently at 430.26, followed all the steps and this is still an issue for me.

Hi birdie/julio,

Issue has been fixed and will be available in upcoming driver release.
I will keep you updated on the same.

Apologize for inconvenience caused.

There’s no mention of any DDC/i2c fixes in the latest beta, Linux, Solaris, and FreeBSD driver 435.17 [beta release] - Announcements and News - NVIDIA Developer Forums :-(

After waiting for five years another month, or two, or three don’t really matter ;-)

This issue is still not fixed in the latest released drivers (435.21).

Hi birdie,

As per your comment #19, everything is working fine on Windows.
Can you please confirm how did you checked on Windows OS.

I need the same information to isolate reported issue further.

Under Windows everything works perfectly. I even sent you a SoftMCCS log file a while back.

Hi birdie,

Can you please test with with latest driver release using below regkey and share your results -

modprobe nvidia NVreg_RegistryDwords=“RMUseSwI2c=1”

Please test with latest driver release with below regkey and share results.

modprobe nvidia NVreg_RegistryDwords=“RMUseSwI2c=1”

Please test with latest driver release with below regkey and share results.

modprobe nvidia NVreg_RegistryDwords=“RMUseSwI2c=1”

I’m terribly sorry for not replying earlier.

This option fixes the issue for me. Thank you!!

Now, it would be great if it were enabled by default.

So it worked for the original poster, but it didn’t work for me.

I’ve tried modprobe nvidia NVreg_RegistryDwords="RMUseSwI2c=1" and everything suggested in Special Nvidia Driver Settings - ddcutil Documentation .

My ddccontrol verbosed first lines are this:

ddccontrol version 0.4.4
Copyright 2004-2005 Oleg I. Vdovikin (oleg@cs.msu.su)
Copyright 2004-2006 Nicolas Boichat (nicolas@boichat.ch)
This program comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of this program under the terms of the GNU General Public License.

ddcpci initing…
Starting /usr/libexec/ddccontrol/ddcpci 1 1828851504 &…
Probing for available monitors…
nvidia_open: mmap failed: Operation not permitted
Found I2C device (dev:/dev/i2c-8)
Non-fatal error: Invalid response, magic is 0x6e
Invalid response, length is 110, should be 64 at most
Non-fatal error: Invalid response, magic is 0x6e
Invalid response, length is 110, should be 64 at most
Non-fatal error: Invalid response, magic is 0x6e
Invalid response, length is 110, should be 64 at most
I/O warning : failed to load external entity “/usr/share/ddccontrol-db/monitor/AOC246A.xml”
Document not parsed successfully.

This is run as superuser, so I don’t know whats up with that nvidia_open: mmap failed: Operation not permitted.
My drivers are 440.82.

You might want to try running gddccontrol under root/sudo.

Speaking of using a kernel module option: it made my system very unstable, so I had to stop using it. And now I don’t own an NVIDIA GPU any longer, so I can’t really comment on any new features or development.

I did this and then:

$ cat /proc/driver/nvidia/params
Mobile: 4294967295
ResmanDebugLevel: 4294967295
RmLogonRC: 1
ModifyDeviceFiles: 1
DeviceFileUID: 0
DeviceFileGID: 0
DeviceFileMode: 438
UpdateMemoryTypes: 4294967295
InitializeSystemMemoryAllocations: 1
UsePageAttributeTable: 4294967295
EnableMSI: 1
MapRegistersEarly: 0
RegisterForACPIEvents: 1
CheckPCIConfigSpace: 1
EnablePCIeGen3: 0
MemoryPoolSize: 0
TCEBypassMode: 0
UseThreadedInterrupts: 1
EnableStreamMemOPs: 0
RegistryDwords: ""
RegistryDwordsPerDevice: ""
RmMsg: ""
AssignGpus: ""

RegistryDwords aren’t being accepted. Also tried in /etc/X11/xorg.conf and rebooting:

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "PCI:1@0:0:0"
    Option "ConstrainCursor" "off"
    # Below for DDC/CI control: https://www.ddcutil.com/nvidia/
    Option "RegistryDwords" "RMUseSwI2c=0x01; RMI2cSpeed=100"
EndSection

The usual suspects sudo ddcutil detect and sudo ddccontrol -p are giving the usual failed results everyone else reports.

Ubuntu 16.04.6, Kernel 4.14.177, GeForce GTX 970M, Driver 384.130, BIOS: 84.04.79.00.0.

Any advice?

Unfortunately the module option/hack (options nvidia NVreg_RegistryDwords="RMUseSwI2c=1") is still required despite the fact that I’ve upgraded my GPU from 1060 to 1660 Ti.

The monitor is connected via an HDMI cable. Under Windows everything “just works”.

The issue was first reported seven (!) years ago.

Hi birdie / ricklee518,
Fix has been incorporated into latest beta driver release. Please try and share your test results.

1 Like

Hi birdie / ricklee518,
Fix has been incorporated into latest beta driver release. Please try and share your test results.