Release Notes


05 March 2017

Maintenance release.

  • Add additional diagnostic tests to command ddcutil environment --verbose*.
  • New configure option --enable-drm.
    • If enabled (the default), command ddcutil environment --verbose includes additional tests that use DRM services to better analyze disrepancies observed in the field between the EDID read directly from the monitor and that reported by X11.
    • Option --enable-drm requires that a recent version (>= 2.4.67) of the development package for libdrm2 (libdrm-dev or libdrm-devel depending on Linux distribution) be installed when building ddcutil. If a sufficently recent version is not detected, configure issues a warning and reverts to --disable-drm.
    • If minimizing executable size is important, set --disable-drm, as DRM services are used only for diagnostics.
  • Additional information on ddcutil detect --verbose.
    • Report and interpret USB vendor id/product id when detect cannot open a hiddev device. This is usually benign, and identifying the device should make this evident.
    • Suggest that the user check that DDC/CI is enabled in the monitor's on screen display if I2C bus x37 (DDC) is responsive, but DDC communication fails.


01 February 2017

Maintenance release.

  • Fixes a critical bug in release 0.7.1 where insufficient privileges on a /dev/i2c-n device causes program termination.
  • ddcutil interrogate always executes with --set-slave-address in effect
  • Minor improvements to ddcutil environment and ddcutil interrogate output
  • Minor improvements to ddcutil detect --verbose
  • Add explanations for additional errno values


27 January 2017

Mantenance release.

  • Add option --force-slave-address which causes ddcutil to take control of slave addresses on the I2C bus even if they are in use. Internally, ioctl(I2C_FORCE_SLAVE) is called instead of ioctl(I2C_SLAVE). This is intended as a possible workaround for situations where monitors on an I2C bus are not detected. See Option --force-slave-address
  • Option --force disables various checking. It's use is likely to result in command failure, but may provide useful information as to the source of problems. See Option --force
  • Fix the cause of a segfault when displaying statistics for option --stats errors or simply --stats, or on the interrogate command.
  • make install will not install C header files unless configuration option --enable-lib is set.
  • Fix the cause of a Makefile error when trying to strip dependency information from during make install.
  • Extensive rework of Autotools files for future support of Python 3 as well as Python 2. This work is incomplete.
  • Emit diagnostic messages to aid in debugging certain situations seen only in the field.


03 January 2017

  • C API
    • Should be fairly stable, though not all features of ddcutil are exposed.
    • Reflecting the presence of APIs, the default for the --enable-lib configuration option is now "yes". The following shared object library is created:
    • Additional prebuilt packages: libddcutil0, libddcutil-dev (Debian, Ubuntu) or ddcutil-devel (Fedora, SUSE)
  • Python API
    • The Python API, implemented using SWIG, is a rough proof of concept and subject to major change.
    • SWIG support is only available by building from source, not from pre-built packages. Requires --enable-swig configuration option.
  • A new command line option --mfg, which allows for monitor selection using the 3 character manufacturer id found in the EDID. --model and -sn no longer need to specified together. If any of --mfg, -model, and -sn are specified, the first monitor to match all of the manufacturer/model/serial-numbers that are specified is chosen.
  • The monitor feature and capabilities portion of interrogate has been enhanced. This functionality is also exposed using the new probe command which operates on a single monitor.
  • Parsing of the capabilities string is enhanced to accomodate monitors that do not separate feature codes by blanks.


21 November 2016

Maintenance release.

  • Improve recovery and diagnotistic messages for certain exceptional conditions.
  • Command ddcutil interrogate now reports the differences between VCP codes declared in the capabilities string and those observed by scanning.
  • Extensive internal changes in preparation for future C and Python APIs.


01 October 2016

Rename project from ddctool to ddcutil.

  • Primary executable is now named ddcutil
  • Shared library is now named
  • Tarball is now named ddcutil.n.n.n.tar.gz


24 September 2016

Fix overzealous code cleanup in release 0.5.1.

  • Undefined reference to function is_module_loaded_using_sysfs() when building without ADL support.
  • Error in command parsing. Command arguments were ignored.


23 September 2016

Minor improvements to diagnostics of the environment and interrogate commands:

  • Check if i2c_dev is built into the kernel as an alternative to it being a loadable kernel module
  • Recognize amdgpu video driver


09 September 2016

This is the first formal release of ddcutil

  • Rework USB monitor support based on testing with Eizo Coloredge and NEC PA series
    -- Probing of USB connected monitors is greatly extended and refactored from ddcutil environment into a separate command ddcutil usbenv. Libraries hidraw and libusb are used as well as hiddev. HID Report Descriptors are parsed. This probing is included in ddcutil interrogate.
    -- configure option --enable-usb/--disable-usb controls whether ddcutil is built with USB monitor support. The default is --enable-usb. When building with USB support, packages for udev, hidraw, hiddev, and libusb are required.
  • Simplify Refer to for most documentation
  • The assumption that I2C buses are numbered consecutively is removed. Required for Raspberry Pi.
  • Allow a display to be specified on the command ddcutil loadvcp. This addresses the situation where a monitor presents both an I2C and a USB interface. Normally, the display is determined using the data stored in the VCP file, and the I2C display interface is chosen over the USB interface. If a display is specified, then the model and sn from its EDID must match those in the VCP data being loaded.
  • Add ddcutil command option --timestamp/--ts. If specified, trace messages are prefaced with an elapsed timestamp.
  • Because of changing package requirements, ddcutil no longer builds in the openSUSE Build Service (OBS) for older OS versions (openSUSE 13.1, Ubuntu 12.04, 14.04).
  • ddcutil currently does not build for any openSUSE version in the openSUSE Build Service due to violation of policy guidelines. This problem will be addressed in a subsequent release. openSUSE users can build ddcutil from its tarball.