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

4.18.14 here, it is NOT working.

I’m curious why the kernel version has any say in this bug.

with latest 4.18.9 kernel the ddccontrol is not working with workaround “RMUseSwI2c=0x01; RMI2cSpeed=100” but the ddcutil is working with this WAR.

root@oemqa-Precision-WorkStation-T7500:~# ddccontrol -p
ddccontrol version 0.4.2
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.

Probing for available monitors…
Detected monitors :
No monitor supporting DDC/CI available.
If your graphics card need it, please check all the required kernel modules are loaded (i2c-dev, and your framebuffer driver).

root@oemqa-Precision-WorkStation-T7500:~# ddccontrol -pv
ddccontrol version 0.4.2
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/bin/ddcpci 1 1443181482 &…
Probing for available monitors…
Found PCI device (pci:03:00.0-0)
Found PCI device (pci:03:00.0-1)
Found PCI device (pci:03:00.0-2)
Device: pci:03:00.0-0
Error while reading write message answer: Bad message
Reading EDID 0x50 failed.
ddcci_open returned -2
Device: pci:03:00.0-1
Error while reading write message answer: Bad message
Reading EDID 0x50 failed.
ddcci_open returned -2
Device: pci:03:00.0-2
Error while reading write message answer: Bad message
Reading EDID 0x50 failed.
ddcci_open returned -2
Found I2C device (dev:/dev/i2c-6)
ioctl(): Invalid argument
ioctl returned -1
Reading EDID 0x50 failed.
ddcci_open returned -2
Found I2C device (dev:/dev/i2c-5)
ioctl(): Invalid argument
ioctl returned -1
Reading EDID 0x50 failed.
ddcci_open returned -2
Found I2C device (dev:/dev/i2c-4)
ioctl(): Invalid argument
ioctl returned -1
Reading EDID 0x50 failed.
ddcci_open returned -2
Found I2C device (dev:/dev/i2c-3)
ioctl(): Invalid argument
ioctl returned -1
Reading EDID 0x50 failed.
ddcci_open returned -2
Found I2C device (dev:/dev/i2c-2)
ioctl(): Invalid argument
ioctl returned -1
Reading EDID 0x50 failed.
ddcci_open returned -2
Found I2C device (dev:/dev/i2c-1)
ioctl(): Invalid argument
ioctl returned -1
Reading EDID 0x50 failed.
ddcci_open returned -2
Found I2C device (dev:/dev/i2c-0)
ioctl(): Invalid argument
ioctl returned -1
Reading EDID 0x50 failed.
ddcci_open returned -2
Detected monitors :
No monitor supporting DDC/CI available.
If your graphics card need it, please check all the required kernel modules are loaded (i2c-dev, and your framebuffer driver).
ddcpci being released…
==>ddcpci is quitting.
root@oemqa-Precision-WorkStation-T7500:~#

[b]With WAR Option “RegistryDwords” “RMUseSwI2c=0x01; RMI2cSpeed=100” :

root@oemqa-Precision-WorkStation-T7500:~/ddcutil-0.9.2# /usr/local/bin/ddcutil detect
Display 1
I2C bus: /dev/i2c-3
EDID synopsis:
Mfg id: DEL
Model: DELL U2410
Serial number: C592M9CLMKLL
Manufacture year: 2009
EDID version: 1.3
VCP version: 2.0[/b]


Nothing works here even with

Option          "RegistryDwords"  "RMUseSwI2c=0x01; RMI2cSpeed=100"
# ddcutil probe
Failure getting EDID for /dev/i2c-4: status code=DDCRC_INVALID_EDID(-3010): unable to parse EDID
Display not found
# ddccontrol -p -v
ddccontrol version 0.4.3
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/bin/ddcpci 1 -1308610785 &...
Probing for available monitors...
nvidia_open: mmap failed: Operation not permitted
Found I2C device (dev:/dev/i2c-7)
ioctl(): Invalid argument
ioctl returned -1
Reading EDID 0x50 failed.
ddcci_open returned -2
Found I2C device (dev:/dev/i2c-6)
ioctl(): Invalid argument
ioctl returned -1
Reading EDID 0x50 failed.
ddcci_open returned -2
Found I2C device (dev:/dev/i2c-5)
ioctl(): Invalid argument
ioctl returned -1
Reading EDID 0x50 failed.
ddcci_open returned -2
Found I2C device (dev:/dev/i2c-4)
ioctl(): Invalid argument
ioctl returned -1
Reading EDID 0x50 failed.
ddcci_open returned -2
Found I2C device (dev:/dev/i2c-3)
ioctl(): Invalid argument
ioctl returned -1
Reading EDID 0x50 failed.
ddcci_open returned -2
Found I2C device (dev:/dev/i2c-2)
ioctl(): Invalid argument
ioctl returned -1
Reading EDID 0x50 failed.
ddcci_open returned -2
Found I2C device (dev:/dev/i2c-1)
ioctl(): Invalid argument
ioctl returned -1
Reading EDID 0x50 failed.
ddcci_open returned -2
Found I2C device (dev:/dev/i2c-0)
ioctl(): Operation not supported
ioctl returned -1
Reading EDID 0x50 failed.
ddcci_open returned -2
Detected monitors :
No monitor supporting DDC/CI available.
If your graphics card need it, please check all the required kernel modules are loaded (i2c-dev, and your framebuffer driver).
ddcpci being released...
==>ddcpci is quitting.

That’s with NVIDIA drivers 410.73 and kernel 4.18.16-300.fc29.x86_64.

Everything works just fine under Windows.

GTX 1060 here with LG 24MP55 display connected via HDMI.