Frequently Asked Questions

The capabilities command reports the MCCS (aka VCP) version, but elsewhere ddcutil says the version is unknown.

Command ddcutil capabilities reports the response to the DDC API capabilities request. However, ddcutil regards this output as purely informational. It does not use the capabilities API call when formulating commands and interpeting responses. This is for multiple reasons:

  • A DDC capabilities request requires multiple I2C exchanges, making it both slow and unreliable. Because of its complexity, it is particularly vulnerable to I2C errors. On monitors with paticularly poor I2C implementations it sometimes fails because the maximum number of I2C retries is exceeded.

  • There is no capabilities request defined in the programming interface for USB connected monitors. ddcutil simulates a capabilities response by looking at what USB HID reports exist for feature codes.

  • The response to the DDC capabilities API request may be incorrect. For example, the capabilities response from the HP LP2480zx monitor does not list VCP feature code x10 (brighness) as supported. However, feature code x10 is in fact supported. The only way to know for sure if a monitor implememts a VCP feature code is to try.

ddcutil relies on VCP feature code xDF to determine the VCP version. (For USB connected monitors, it queries HID usage x00800004.) It is possible that feature code xDF is unspported, even though the capabilities response specifies a version.

ddcutil detect --verbose reports that both I2C address x50 (EDID) and x37 (DDC) are responsive, but DDC communication fails.

There can be any number of reasons for this situation.

  • Check that DDC/CI communication is enabled in the monitor's on-screen display?
  • It has been observed in the case of a Tegra video card using the nouveau driver.
  • See also the discussion of duplicate entries for a DisplayPort monitor.

The same DisplayPort connected monitor appears twice the output of ddcutil detect.

Sometimes the same DisplayPort connected monitor is detected at 2 different I2C bus numbers. ddcutil detect reads the EDID at on both buses, but DDC communication succeeds on only 1 bus. The other bus is regarded as an invalid display. The invalid bus appears to be related to the DisplayPort multistream facility. You can ignore the invalid entry.

configure complains that a required package does not exist, but it is installed on my system.

Error messages from pkg-config (which is called by configure) can be misleading. If configure complains that a package is not found but it seems to be installed, it's likely that what's missing is the associated development package (with a suffix like "-dev").