rockowitz / ddcutil

Control monitor settings using DDC/CI and USB
http://www.ddcutil.com
GNU General Public License v2.0
946 stars 38 forks source link

ddcutil sometimes work, sometimes detection error #288

Open Gita-Govinda opened 1 year ago

Gita-Govinda commented 1 year ago

Hello. I've installed ddcutil in my linux mint desktop.

When I do ddcutil detect it sometimes detects the monitor and works, sometimes it partially detects and doesn't work. On the high level I'm unable to trace a pattern for this random behavior.

Here I've attached environment and interrogate results on both working and non working cases. ddcutil-not-working.txt ddcutil-working.txt

P.S. Another set of results, this time with ddcutil interrogate --verbose NOTworking-interrogate-verbose.txt working-interrogate-verbose.txt

Additional info: I've been using Windows 10 for 6 months in this setup, with an app called ClickMonitorDDC 7.2. Which worked absolutely fine without failure. So its pretty unlikely that there is any hardware issue.

Will appreciate any help. Regards

rockowitz commented 1 year ago

You pretty clearly are contending with a marginal I2C implementation. Your laptop appears to be quite old - that may contribute to the problem.

Some things to try:

To get a better sense of what is going wrong:

FYI, command interrogate always executes at the most verbose message level very-verbose. Using option --verbose has no effect. Including the output of detect along with interrogate is unnecessary, as interrogate includes detect.

It's often the case that ClickMonitorDDC on Windows always succeeds, while ddcutil and other DDC programs on Linux sometimes fails. It appears that the Windows video drivers have a more robust I2C implementation.

Gita-Govinda commented 1 year ago

Thanks rockowitz for the reply, Seems I'm out of luck with -sleep-multiplier 2.0 and --maxtries "15,15,15" Here are the stats and ddc report though. stats.txt

You're correct, the PC is old, however the monitor is new. Currently it is using a VGA connection.

rockowitz commented 1 year ago

There's no --ddc output in your stats.txt file.

If you have one available, try testing with a different monitor. There are monitors with marginal DDC implementations.

JFingerle commented 1 year ago

@rockowitz The "--ddc" output is a the bottom of the stats.txt file.

I'm getting the same errors ("All zero response detected in ddc_i2c_write_read_raw") with my monitor (Acer XB253QGX) and an AMD 5700XT gpu on Kernel 6.3.2. Using the mentioned options (--sleep-multiplier 2.0 --maxtries "15,15,15") fixed the errors for me (most of the time).

rockowitz commented 1 year ago

@JFingerle

I apologize for having missed the --ddc output at the bottom of the file. What it shows is that response packets are corrupted. Several of them have a duplicate initial byte (x6e). Release 1.3.0 added code to test and adjust for the (not uncommon) case of a duplicate initial byte.