Closed yuki-tsubaki closed 6 months ago
The combination of ryzen integrated video and your particular monitor is resulting in invalid DDC/CI reply packets. You are correct that that's what the output from --ddc is showing. The repeated DDCRC_DDC_DATA status codes on ddcutil detect also indicate the same thing. Beyond setting a high sleep multiplier the only ddcutil option that has a remote possibility of correcting this is --use-file-io which causes ddcutil to take an alternative path through driver i2c_dev.
Of course, connecting a different display to the laptop and trying the monitor on another computer might isolate the problem to the monitor.
I don't think I have another monitor that supports DDC, so might be a while before I can get around to testing that.
My other older computer uses Intel 620 integrated graphics and I did test it on there as well and still have a similar issue (I should note that that one is connecting using a Thunderbolt hub; not direct HDMI).
Here are those files:
sudo-ddcutil-detect---ddc.intel.txt sudo-ddcutil-detect---verbose.intel.txt .intel.txt) sudo-ddcutil-interrogate---verbose.intel.txt
Notably the byte shift seems to happen there too. I tested with various --sleep-multiplier
values (2 4 10 15 20 99) and it still fails.
Using --use-file-io
also fails similarly on both computers.
Also of note, I got "DDC: Quirk: response packet starts with double 0x6e" a few times (it is very inconsistent but saw it on the ryzen computer when while using the --use-file-io
option.
Given that the data errors persist when you move the monitor to another computer strongly suggests the problem is in the monitor's DDC implementation.
The initial double 0x6e is one of the few situations where ddcutil can recover from invalid data.
As a practical matter, there's no point in trying a sleep multiplier greater than 4.
Ok, sounds good. Thanks for the help. Is there anything else that needs to be done--like adding this to the docs? (I don't know if it is important given this monitor seems to be practically forgotten by everyone except HP.) If not, I'll mark this issue as resolved.
I am trying to use
ddcutil
to change the brightness of my monitor (HP 22cwa). The monitor lists "DDC/CI Support" in its OSD and it is turned on right now. Despite this when I usesudo ddcutil detect
and other commands, things do not work.I have looked on ddcutil.com and did not find this listed in the notes on specific monitors section or information on the recommended sites for checking specs (seems like it is very unpopular as there is very little information outside of HP's own product listings).
I am currently trying to determine weather these errors are caused by marginal/nonstandard/lack of implementation of DDC by the monitor, or something else like a hardware problem.
Here is the output of
sudo ddcutil detect --verbose
(for the overview; I omitted the laptop display's information):(I didn't know if this was long enough that you want it in an attachment so sorry if that was the case).
Here is the full output of
sudo ddcutil interrogate --verbose
sudo-ddcutil-interrogate---verbose.txtSomething of note is that when using the
--ddc
flag the response bytes (if I am interpreting the meaning of the messages correctly) seem to be shifted forms of the expected values.For example here is a portion from
sudo ddcutil detect --ddc
I looked this up in the issues and found #46 which seems to be similar, but I wouldn't know to what extent (I don't have a Windows computer or logic analyzer). I have tried it from another Linux computer (that one over a thunderbolt dock) and it fails as well (I can send that if you are interested).
I have also run other commands with and various
--sleep-multiplier
values (which I assume is the new name for the--sleep-strategy
option mentioned; it did not fix anything). I can send those if you are interested.Thanks for maintaining and doing so much to support users.