ddcutil Configuration

Several aspects of the communication environment must be configured.

Ensure the monitor is enabled for DDC communication

Nearly all monitors manufactured since the mid 2000's support DDC/CI, as do many made earlier. For most monitors that support DDC/CI, whether DDC/CI comminication is actually enabled is controlled by a setting in the on screen display. The item is typically found in a submenu named something like "Other Settings"

Video Driver

The video driver must support I2C bus communication. All major open source drivers (nouveau, radeon, admdgpu, i915) support I2C bus communication, as do the Nvidia and old AMD fglrx proprietary drivers.

If using Nvidia's proprietary video driver, special settings may be necessary. See Special Nvidia Driver Settings

For the Rapberry Pi, see the section Raspberry Pi.

Ensure that the /dev/i2c-N devices exist

Typically, the I2C buses are exposed as devices named /dev/i2c-N. (The one exception is the older proprietary AMD fglrx driver, which instead provides an API for I2C communication.) If using an open source video driver, kernel module i2c-dev must be loaded to create the /dev/i2c-N devices. See Kernel Module Configuration

Grant read/write permission for the /dev/i2c-N devices representing monitors

ddcutil users require read/write permission to /dev/i2c-N devices. With varying complexity, this can be effected in several ways.

  • Run ddcutil as root.

  • Grant everyone RW access to the /dev/i2c devices.

Add a file with the following line to /etc/udev/rules.d

SUBSYSTEM=="i2c-dev",KERNEL=="i2c-[0-9]*", MODE="0666"
  • If /dev/i2c-N devices are already assigned to group i2c, add users to that group.

This is the case, for exmample, if package i2c-tools has been installed on a Debian derived distribution (e.g. Ubuntu). Add the users who will run ddcutil to that group.

usermod -G i2c -a <yourname>
  • Create group i2c to manage access.

The most general case entails creating group i2c, creating a UDEV rule assigning /dev/i2c-N devices to group i2c, and adding users to group i2c. See section

For a full discussion, see Device Permissions.

  • USB connected monitors

For details about USB device permissions for those monitors using USB instead of I2C to communicate the Monitor Control Command Set, see see Device Permissions.

Installation Diagnostics

If ddcutil installs successfully but execution fails, command ddcutil environment can be used to probe the I2C environment and may provide clues as to the problem. For USB connected monitors, use command ddcutil usbenvironment.