Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DDC Communication failed. [EIO in ddc_write_read_with_retry, causes: EIO] #446

Open
checkinindza opened this issue Aug 31, 2024 · 2 comments
Labels

Comments

@checkinindza
Copy link

Hi, so I'm trying to control my external display's brightness with ddcutil, but the issue is, it says Display not found, running sudo ddcutil detect shows DDC communication failed. (getvcp of feature x10 returned Error_Info[EIO in ddc_write_read_with_retry, causes: EIO])

The display is Lenovo T24i-10 connected through a Dell WD15 dock's HDMI port.

sudo ddcutil interrogate --verbose output

output.log

If it changes anything, I'm using proprietary NVIDIA drivers.

@rockowitz
Copy link
Owner

The i2detect output in the interrogate log shows that I2C slave address x50 (EDID) is responsive on /dev/i2c-2, but slave address x37 (DDC) is not. (In case you're unfamiliar with it, i2cdetect is part of the i2c-tools package, so this test is independent of ddcutil.)

Possibility 1: Your monitor does not support DDC/CI. Unlikely, since the spec sheet for the monitor indicates DDC support, so I mention this for completeness. Does DDC/CI work if the monitor is plugged directly into the iGPU or another computer without the dock? Some monitors have a setting in the OSD that enables/disables DDC/CI.

Possibility 2: The dock does not support DDC/CI. Can you check it with another system without the Nvidia driver?

Possibility 3: The problem is in the Nvidia driver's Multi-Stream-Transport implementation. I would not be surprised if this is the case, but I have not tested this configuration. Perhaps someone who sees this issue and who uses the proprietary Nvidia driver can speak to whether DDC works with MST.

@checkinindza
Copy link
Author

checkinindza commented Sep 2, 2024

  1. Yeah, I did check the monitor's spec sheet before posting this to make sure myself. I did find on the user guide that you can actually just click a button on the monitor for a few seconds and it should disable/enable DDC/CI. And I did that to make sure DDC/CI is enabled.

  2. Well, I do not have another computer with Linux installed. But I do have a work issued all Intel laptop. I tried to use ddcutil on EndeavourOS LiveUSB, but ddcutil capabilities showed Display not found. Monitor was connected directly to the laptop. I'll attach a log, if it helps, but I'm guessing there are just things missing on it, but it did have ddcutil and i2c-tools already installed. And to test if DDC/CI works through the dock, I don't know how accurate this experiment is, but I used a Windows tray app called Twinkle Tray (https://twinkletray.com/) on the same laptop with monitor connected to the dock. If I understand correctly Twinkle Tray uses DDC/CI to do that and it worked fine. I tested it on my own laptop on Windows (it's a dual boot config) and it also works.

Sadly, my own laptop's display outputs are all wired directly to the NVIDIA GPU, so I can't really test on it connecting the monitor to the iGPU.

output.log

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants