Skip to content

Releases: rockowitz/ddcutil

Release 2.1.4

20 Feb 03:57
v2.1.4
Compare
Choose a tag to compare

Restore previously deprecated API function ddca_create_display_ref(), still in use. It is a synonym for ddca_get_display_ref(), whose name better reflects the role of the function. Its persistence in the Debian code base blocked ddcutil upgrade in that distribution.

Release 2.1.3

08 Feb 06:54
v2.1.3
Compare
Choose a tag to compare

Release 2.1.3 fixes a significant bug in libddcutil caused by overzealous checking of the DDCA_Display_Reference passed to various API functions. The display reference for displays reported as invalid (typically one for which the EDID can be read but DDC communication fails) was being rejected on API functions such as ddca_get_display_info(). In particular addresses ddcui issue 55 which reported a crash when one or more displays were invalid.

Detailed information about the changes can be found in file CHANGELOG.md, and on the ddcutil web site.

Release 2.1.2

27 Jan 21:01
v2.1.2
Compare
Choose a tag to compare

Release 2.1.2 fixes a critical bug in libddcutil that caused older versions of PowerDevil to repeatedly crash and restart.

Additionally, there are minor bug fixes and changes to accommodate the proprietary Nvidia video driver.

Detailed information about the changes can be found in file CHANGELOG.md, and on the ddcutil web site.

Release 2.1.0

17 Jan 18:07
v2.1.0
Compare
Choose a tag to compare

Highlights of release 2.1.0:

  • Improved initialization performance
  • Dynamic sleep improvement
  • Cross-instance locking
  • Shared library libddcutil is backwardly compatible with the one in ddcutil 2.0.0 The SONAME is unchanged as libddcutil.so.5. The release library file is libddcutil.5.1.0
  • libddcutil watches for display connection and DPMS state changes and notifies clients.
  • Improved control of initialization messages

Detailed information about the changes can be found in file CHANGELOG.md, and on the ddcutil web site.

Release 1.4.5

23 Oct 05:42
v1.4.5
Compare
Choose a tag to compare

This release provides a way to build and install only libddcutil.so.4, needed by client applications built against that older shared library. If configure option --enable-install-lib-only is specified, then only the shared library will be built and installed. Depending on their build process, some Linux distributions may find this useful. This is the only significant change from release 1.4.1.

Release 2.0.0

27 Sep 14:15
v2.0.0
Compare
Choose a tag to compare

ddcutil release 2.0.0 includes major changes in the areas of performance, usability, and reliability.

  • Most users will find that command ddcutil just works "out of the box", without the need for manual configuration. Driver i2c-dev is loaded automatically in case it was not already built into the kernel. When executing on a system running systemd (i.e. on almost every current Linux distribution) the logged on user automatically has read-write access to the /dev/i2c devices associated with monitors, making excution as root or set up of group I2C unnecessary.

  • The dynamic sleep algorithm was completely rewritten to use the minimal reliable sleep-multiplier value. Explicitly using option --sleep-multiplier to optimize performance should generally be unnecessary.

  • The libddcutil API has been both extended and simplified. Some necessary changes broke full backward compatibility, requiring a SONAME bump from libddcutil.4 to libddcutil.5. Given the necessary SONAME bump, the opportunity was taken for a major API cleanup. Unneeded functions were removed, including many that were previously deprecated. Most client programs should build with minimal changes.

For details about the changes and bug fixes, see Release Notes and Shared Library Changes for Release 2.0. Changes are also summarized in source file CHANGELOG.md.

Release 1.4.1

18 Jan 06:32
v1.4.1
Compare
Choose a tag to compare

**Patch release 1.4.1 fixes a significant bug (#293) in release 1.4.0, which is withdrawn.

ddcutil release 1.4.1 contains some changes of general interest. More detailed documentation about changes and bug fixes can be found in source file CHANGELOG.md and on website page Release Notes.

Setting I2C device permissions has been simplified. Until now, the recommended way to give non-root users access to the I2C devices was to assign all /dev/i2c devices to group i2c, which has read/write permissions. Individual users would then be assigned to group i2c. This release simplifies permissions by adding a udev rule that uses the uaccess tag to give the logged on user read/write access to all /dev/i2c devices associated with video adapters. Installing package ddcutil installs file /usr/lib/udev/rules.d/60-ddcutil.rules.

To work around a bug in the Nvidia proprietary driver, use of the read()/write() interface of driver i2c-dev, which was removed in Release 1.3.0, has been re-enabled. This read()/write() interface of i2c-dev is used only with the Nvidia driver, and option *--force-slave-address can be used to address EBUSY errors that are possible with this interface. All other video drivers continue to use i2c-dev's ioctl() interface.

New configure options --enable-syslog and --disable-syslog control whether messages are written to the system log, which can pose problems if executing in a container. The default is --enable-syslog.

Command detect no longer issues the message "Is DDC/CI enabled in the monitor's on-screen display?", as this is rarely the cause of DDC/CI communication failures.

Prebuilt packages for several Linux distributions and machine architectures can be found in the usual locations.

Release 1.3.0

23 Jul 19:42
v1.3.0
Compare
Choose a tag to compare

ddcutil release 1.3.0 contains the following changes of general interest:

  • Option --force-slave-address no longer has any effect.
    Driver i2c-dev provides both a low level ioctl() interface and a higher level read()/write() interface for I2C communication. ddcutil now uses the ioctl() interface (almost) exclusively. This eliminates the possibility of EBUSY errors from driver i2c-dev, which occur only when the read()/write() interface is used.
  • Commands getvcp and vcpinfo can now take multiple features as arguments, for example ddcutil getvcp 10 12.
  • Better reporting of user configuration issues at startup.
  • The sleep-suppression related options, --sleep-less, --less-sleep, --enable-sleep-suppression,
    and --disable-sleep-suppression no longer have any effect.

The most detailed description of changes and bug fixes can be found in source file CHANGELOG.md. A more general description of changes can is on website page Release Notes.

Prebuilt packages for several Linux distributions and machine architectures can be found in the usual locations.

Release 1.2.2

28 Jan 14:08
v1.2.2
Compare
Choose a tag to compare

The changes of most interest to general users in ddcutil 1.2.2 relate to improved handling of DDC communication failures due to conflict with other programs, e.g. device driver ddcci. If ddcutil detect fails with Linux errno EBUSY, it reports the display as "Busy" instead of "Invalid" and suggests the use of option --force-slave-address. API functions ddca_enable_force_slave_address() and ddca_is_force_slave_address_enabled() have been added.

For a detailed description of the changes in this release, see file CHANGELOG.md in the source, or Release Notes on the web site.

Release 1.2.1

02 Dec 18:12
v1.2.1
Compare
Choose a tag to compare

ddcutil 1.2.1 contains the following changes of general interest:

New command line options:

  • Option --settings. Details of current settings are no longer reported by every command invocation when option --verbose is specified. Use option --settings to control option reporting.
  • Option --syslog: Send trace and debug messages to the system log in addition to the trace message destination.
  • Option --wall-timestamp (alt. --wts): Prefix trace and debug messages with the current wall time.

Fixes:

  • Numerous memory leaks, in particular ones triggered by API function ddca_redetect_displays(), have been plugged. Thanks to @FedeDP, developer of clightd, for his extensive help in this regard.
  • API functions ddc_open_display(), ddc_open_display2() now always return DDCRC_ALREADY_OPEN if the the display is already open in the current thread. Previously an assert() failure would occur under certain circumstances.