-
-
Notifications
You must be signed in to change notification settings - Fork 56
Description
Not sure if this is the right project to raise an issue, but in the end I have a problem with dccutil and I hope someone here can help me.
My Setup: 3 Dell Monitors, daisy-chained via displayport, are connected to 2 gfx cards, 1 amd, 1 nvidia. Reason: AMD Card is for daily lowpower usage, nvidia is a) for demanding tasks and b) passed through for windows virtualization
The connection of the first Monitor in chain is a bit special, as it has a additional hdmi connection to the amdgpu, which basically acts as a control wire.
OS is Kubuntu 25.10, just upgraded and still fixing problems...
Problem:
To switch easily between amd and nvidia input, I came up with this little script, which worked now for years:
#!/bin/bash current=$(ddcutil --bus=5 getvcp 0x60 | sed -n "s/.*(sl=\(.*\))/\1/p") if [[ -z "$current" ]] then ddcutil --bus=2 setvcp 0x60 0x0f > /dev/null else ddcutil --bus=2 setvcp 0x60 0x10 > /dev/null fi
Now, with Kernel 6.17, things have changed, badly
At first, i thought i2c addresses just have changed. id 2 became id 3, id5 became 6. No Problem. However, the problem arises, when starting the windows vm. Nvidia card is "removed" from the host, and at some point (Not sure when) the i2c addresses are different again, partly. while id3 (it is monitor 1 which is connected also via hdmi on amd) stays the same, id 6 (Monitor 1, connected via dp on amd, visible to the system and via nvidia, invisible to the system) becomes id 14...
ddcutil detect before vm start
Display 1
I2C bus: /dev/i2c-3
DRM_connector: card1-HDMI-A-1
EDID synopsis:
Mfg id: DEL - Dell Inc.
Model: DELL U2414H
Product code: 41138 (0xa0b2)
Serial number: X4J7183Q04FL
Binary serial number: 808732236 (0x3034464c)
Manufacture year: 2018, Week: 13
VCP version: 2.1
Display 2
I2C bus: /dev/i2c-6
DRM_connector: card1-DP-3
EDID synopsis:
Mfg id: DEL - Dell Inc.
Model: DELL U2414H
Product code: 41122 (0xa0a2)
Serial number: X4J7183Q04FL
Binary serial number: 808732236 (0x3034464c)
Manufacture year: 2018, Week: 13
VCP version: 2.1
Display 3
I2C bus: /dev/i2c-7
DRM_connector: card1-DP-7
EDID synopsis:
Mfg id: DEL - Dell Inc.
Model: DELL U2414H
Product code: 41122 (0xa0a2)
Serial number: X4J7183Q0LNL
Binary serial number: 810307148 (0x304c4e4c)
Manufacture year: 2018, Week: 13
VCP version: 2.1
Display 4
I2C bus: /dev/i2c-8
DRM_connector: card1-DP-8
EDID synopsis:
Mfg id: DEL - Dell Inc.
Model: DELL P2414H
Product code: 41114 (0xa09a)
Serial number: 36WJX3BG1T6L
Binary serial number: 827602508 (0x3154364c)
Manufacture year: 2013, Week: 46
VCP version: 2.1
ddcutil detect after vm start
Display 1
I2C bus: /dev/i2c-3
DRM_connector: card1-HDMI-A-1
EDID synopsis:
Mfg id: DEL - Dell Inc.
Model: DELL U2414H
Product code: 41138 (0xa0b2)
Serial number: X4J7183Q04FL
Binary serial number: 808732236 (0x3034464c)
Manufacture year: 2018, Week: 13
VCP version: 2.1
Display 2
I2C bus: /dev/i2c-14
DRM_connector: card1-DP-3
EDID synopsis:
Mfg id: DEL - Dell Inc.
Model: DELL U2414H
Product code: 41122 (0xa0a2)
Serial number: X4J7183Q04FL
Binary serial number: 808732236 (0x3034464c)
Manufacture year: 2018, Week: 13
VCP version: 2.1
Display 3
I2C bus: /dev/i2c-15
DRM_connector: card1-DP-7
EDID synopsis:
Mfg id: DEL - Dell Inc.
Model: DELL U2414H
Product code: 41122 (0xa0a2)
Serial number: X4J7183Q0LNL
Binary serial number: 810307148 (0x304c4e4c)
Manufacture year: 2018, Week: 13
VCP version: 2.1
Display 4
I2C bus: /dev/i2c-16
DRM_connector: card1-DP-8
EDID synopsis:
Mfg id: DEL - Dell Inc.
Model: DELL P2414H
Product code: 41114 (0xa09a)
Serial number: 36WJX3BG1T6L
Binary serial number: 827602508 (0x3154364c)
Manufacture year: 2013, Week: 46
VCP version: 2.1
As a workaround, I tried to use the Display ID instead of i2c, However this would sometimes lead to complete gfx crashes when addressing the Monitor which is currently not detected as connected.
For now, I have worked around by simply checking if both i2c ids produce an empty result. But this feels even more ugly as it already is.