I just upgraded from 525.116.04 to 535.43.03 and DDC/CI stopped working for one of my two monitors.
I’m using ddcutil to issue DDC/CI commands from the GUI tool vdu_controls. I’ve tried ddcutil 1.4.1 and 2.0.0-rc1, both behave the same way. After the upgrade only one of the two monitors is detected by:
% ddcutil detect
I’m running OpenSUSE Tumbleweed with kernel 6.3.7-1-default. I have always used the RegistryDwords settings - and I’ve confirmed they’re still set:
% grep RegistryDwords /proc/driver/nvidia/params
RegistryDwords: "RMUseSwI2c=0x01;RMI2cSpeed=100"
The monitor that is no longer detected is a old HP ZR24w which was detected fine with 525.116 and earlier. My newer LG monitor works fine with DDC/CI and 535.43.03, so the newer driver’s DDC/CI implementation still works with some monitors. Both monitors are connected via DisplayPort to an Nvidia 1650 SUPER, but the HP is using a DisplayPort to DVI connector (DVI at the monitor end), where as the LG is DisplayPort at both ends.
With kernel 6.3.7-1-default, reverting the driver from 535.43.03 to 525.116.04 restores the correct behaviour, so it looks like the driver is the cause of the problem.
I’ve attached the nvidia-bug-report.log from kernel 6.3.7-1-default and driver 535.43.03.
nvidia-bug-report.log.gz (580.9 KB)
I haven’t found a fix, but there is a workaround (at least for the HP ZR24w and my 1650 Super). Switching the HP ZR24w connection to the 1650 Super to a pure DisplayPort to DisplayPort cable is a successful workaround.
Same problem on Fedora 38, via HDMI.
ddcutil detect
No displays found.
ddcutil environment
The following tests probe the runtime environment using multiple overlapping methods.
*** Basic System Information ***
ddcutil version: 1.4.1
/proc/version:
Linux version 5.17.13-300.fc36.x86_64 (mockbuild@bkernel01.iad2.fedoraproject.org) (gcc (GCC) 12.1.1 20220507 (Red Hat 12.1.1-1), GNU ld version 2.37-27.fc36) #1 SMP PREEMPT Mon Jun 6 14:29:43 UTC 2022
Architecture: x86_64
Distributor id: Fedora
Release: 38
Found a known architecture
/proc/cmdline:
BOOT_IMAGE=(hd1,gpt4)/vmlinuz-5.17.13-300.fc36.x86_64 root=UUID=43142523-3849-4079-bfe7-c6f0248c0404 ro rootflags=subvol=root rhgb quiet video=DP-1:3328x1872@75 video=DP-1:3840x2160@75 rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1 initcall_blacklist=simpledrm_platform_driver_init
*** Primary Check 1: Identify video card and driver ***
Obtaining card and driver information from /sys...
Primary video controller at PCI address 0000:04:00.0 (boot_vga flag is set)
Device class: x030000 VGA compatible controller
Vendor: x10de NVIDIA Corporation
Device: x2489 GA104 [GeForce RTX 3060 Ti Lite Hash Rate]
Subvendor/Subdevice: 1043/883c ASUSTeK Computer Inc.
Driver name: nvidia
Driver version: 535.54.03
I2C device: i2c-3 name: NVIDIA i2c adapter 5 at 4:00.0
I2C device: i2c-1 name: NVIDIA i2c adapter 1 at 4:00.0
I2C device: i2c-6 name: NVIDIA i2c adapter 8 at 4:00.0
I2C device: i2c-4 name: NVIDIA i2c adapter 6 at 4:00.0
I2C device: i2c-2 name: NVIDIA i2c adapter 3 at 4:00.0
I2C device: i2c-5 name: NVIDIA i2c adapter 7 at 4:00.0
*** Primary Check 2: Check that /dev/i2c-* exist and writable ***
Current user: mutlu (1000)
Checking /dev/i2c-* devices...
Devices /dev/i2c-* must exist and the logged on user must have read/write permission for those devices (or at least those devices associated
with monitors).
Typically, this access is enabled by:
- setting the group for /dev/i2c-* to i2c
- setting group RW permissions for /dev/i2c-*
- making the current user a member of group i2c
Alternatively, this can be enabled by just giving everyone RW permission
The following tests probe for these conditions.
Checking for /dev/i2c-* devices...
crw-rw----+ 1 root i2c 89, 0 Jun 26 12:56 /dev/i2c-0
crw-rw----+ 1 root i2c 89, 1 Jun 26 12:56 /dev/i2c-1
crw-rw----+ 1 root i2c 89, 2 Jun 26 12:56 /dev/i2c-2
crw-rw----+ 1 root i2c 89, 3 Jun 26 12:56 /dev/i2c-3
crw-rw----+ 1 root i2c 89, 4 Jun 26 12:56 /dev/i2c-4
crw-rw----+ 1 root i2c 89, 5 Jun 26 12:56 /dev/i2c-5
crw-rw----+ 1 root i2c 89, 6 Jun 26 12:56 /dev/i2c-6
Current user (mutlu) has RW access to all /dev/i2c-* devices.
*** Primary Check 3: Check that module i2c_dev is loaded ***
Checking for driver i2c_dev...
sysfs reports module i2c_dev is loaded.
Module i2c_dev is NOT built into the kernel
Loadable i2c-dev module found
Module i2c_dev is loaded
*** Primary Check 4: Driver specific checks ***
Performing driver specific checks...
Checking for special settings for proprietary Nvidia driver
(Needed for some newer Nvidia cards).
Executing: grep -iH nvidia modprobe.conf modprobe.d/*
grep: modprobe.conf: No such file or directory
grep: modprobe.d/*: No such file or directory
Executing: grep RegistryDwords /proc/driver/nvidia/params
RegistryDwords: "RMUseSwI2c=0x01;RMI2cSpeed=100"
RegistryDwordsPerDevice: ""
*** Additional probes ***
Examining /sys/bus/i2c/devices...
/sys/bus/i2c/devices/i2c-0/name: SMBus I801 adapter at 1000
/sys/bus/i2c/devices/i2c-1/name: NVIDIA i2c adapter 1 at 4:00.0
/sys/bus/i2c/devices/i2c-2/name: NVIDIA i2c adapter 3 at 4:00.0
/sys/bus/i2c/devices/i2c-3/name: NVIDIA i2c adapter 5 at 4:00.0
/sys/bus/i2c/devices/i2c-4/name: NVIDIA i2c adapter 6 at 4:00.0
/sys/bus/i2c/devices/i2c-5/name: NVIDIA i2c adapter 7 at 4:00.0
/sys/bus/i2c/devices/i2c-6/name: NVIDIA i2c adapter 8 at 4:00.0
Env_Accumulator:
architecture: x86_64
distributor_id Fedora
Drivers detected: nvidia
/dev/i2c device numbers: 0 1 2 3 4 5 6
sysfs_i2c_devices_exist: true
/sys/bus/i2c device numbers: 0 1 2 3 4 5 6
dev_i2c_devices_required: true
module_i2c_dev_needed: true
module_i2c_dev_builtin: false
loadable_i2c_dev_exists: true
i2c_dev_loaded_or_builtin: true
group_i2c_checked: true
group_i2c_exists: true
dev_i2c_common_group_name: i2c
all_dev_i2c_has_group_i2c: true
any_dev_i2c_has_group_i2c: true
all_dev_i2c_is_group_rw: true
any_dev_i2c_is_group_rw: true
cur_uname: mutlu
cur_uid: 1000
cur_user_in_group_i2c: true
cur_user_any_devi2c_rw: true
cur_user_all_devi2c_rw: true
Configuration suggestions:
Current user has RW access to all /dev/i2c-N devices.
Skipping further group and permission checks
I experienced the same issue when upgrading from 5.30 to 5.35.
ddcutil no longer detects two of my monitors which are using hdmi.
I’m running arch.
Is there a bug report somewhere to track progress for squashing this issue?
This is still broken on 535.104. DDC/CI to my HP monitor connected using a DisplayPort to DVI connector (DVI at the monitor end) still does not work. This would be on Linux 6.5.3 (OpenSUSE Tumbleweed).
Connecting the monitor DisplayPort-DisplayPort at both ends is still an effective workaround.
Would I be better off switching to a 400 series driver?