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
Hexdump prefix and invalid displays on LG 34WK95U-W.AEU #392
Comments
It looks like a bit of debug output is turned on. Locating exactly where will likely be a pain to diagnose remotely. |
This is the output of |
The output of the trace log does not appear to be from the same physical configuration as your original report. The detect command has no output for the LG 5K monitor reported as "Display 1". Please run ddcutil detect --trace i2c with the LG monitor connected in the same way. |
Argh, of course, sorry about that. This is one with the monitor connected: |
The output isn't happening within a low level I2C function. Let;s try ddcutil detect --trace ddc --trace ddcio. |
addresses issue #392 also use macro ASSERT_IFF() for clarity
I believe I've found the locus of the errant hex dump. The bug is in the infrequently executed code that checks for phantom displays. That code was apparently triggered because your tiled display causes the same EDID to appear on two different /dev/i2c buses. After executing ddcutil detect --trace ddc --trace ddcio as previously requested, try building from branch 2.1.5-dev and see if the problem persists. |
The output of I tried to compile from source on my Arch Linux system, but I get this error, even though
(It's been a while since I compiled C sources, sorry...) |
I have cleaned up the drm.h includes in branch 2.1.5-dev. Let me know if it builds properly and the problem is solved. Thanks so much for your help. |
The build succeeds now. 👍 This is the output of
Are those first and last lines expected? (The utility I'm trying to use, the Gnome Brightness control extension, gives the last line back as an error message: |
The "Failure retrieving DRM resources" message reports an unexpected error in new code under development, intended to improve performance. You can ignore it. The text in parentheses after "DDC communication failed." is an informational message intended to provide detail as to how communication failed. In your case, the monitor reports each "logical" display as being on a separate I2C bus. On the second logical display the firmware in the monitor reports the EDID, but does not implement DDC/CI. Ideally, the display on /dev/i2c-15 would be reported as a "Phantom display" instead of the more generic "Invalid display", but the code for categorizing a display as "phantom" is conservative. Finally, it's unfortunate if the Gnome Brightness extension is confused by changes to the output of the detect command, but that is the nature of screen-scraping. Generally speaking, ddcutil output is intended for human consumption, not machine consumption, There is no guarantee that it will be unchanged from one release to the next. Emitting output in a structured form such as JSON or YAML, is an outstanding feature request. |
The detail on detect as to why DDC communication failed has turned out to be as much a source of confusion as an explanation. With the latest update to 2.1.5-dev, the detail is only shown for --verbose output. It is reported on a separate line. |
I agree that the Gnome Brightness extension (and other tools) should not try to parse the output of In any case, thank you for removing the explicit error message and keeping it to the neutral "DDC communication failed". |
I think that ddcutil-service will eventually become the way that most applications, or at least simple applications that now rely on screen-scraping, use ddcutil. Having a second real application, after ddcui, that uses libddcutil has driven the development of the shared library for the past few months. |
When I use
ddcutil detect
the output is prefixed with a hexdump. I am using a tiled display (LG 34WK95U-W.AEU), and only one "display" is recognized as usable. (Which is fine.) However, because of the extra output, many tools that useddcutil
fail to parse the output.Example:
This is the full
ddcutil introspection
:ddcutil-interrogate.log
The text was updated successfully, but these errors were encountered: