Provided by: ddcutil_2.2.0-1_amd64 

NAME
ddcutil - Query and change monitor settings
SYNOPSIS
ddcutil [options] command [command-arguments] [options]
Options can be written either before or after the command and its arguments.
DESCRIPTION
ddcutil is used to query and change monitor settings. The settings that can be controlled by ddcutil
are, generally speaking, those that can be changed using the buttons on a monitor and its on screen
display. The specific settings vary from monitor to monitor.
ddcutil communicates with monitors that implement the Monitor Control Command Set (MCCS) using the DDC/CI
protocol on an I2C bus. Normally, the video driver for the monitor exposes the I2C bus as devices named
/dev/i2c-n. Alternatively, ddcutil can communicate with monitors that use USB to communicate MMCS,
provided the monitors meet the USB Monitor Control Class Specification.
The Monitor Control Command Set describes a collection of Virtual Control Panel (VCP) features that a
monitor can implement. Each feature is identified using a single byte. For example, feature x10 is the
brightness control.
Common use cases include changing monitor brightness and color. Using scripts, the changes can be
effected by keystrokes, or in response to the time of day. Another common use case is to switch the
monitor input source.
A more complex use case for ddcutil is as part of color profile management. Monitor calibration is
relative to the monitor color settings currently in effect, e.g. red gain. ddcutil allows color related
settings to be saved at the time a monitor is calibrated, and then restored when the calibration is
applied.
This man page describes ddcutil commands and options most important to the typical user. For complete
documentation, use the --help option or see the web site http://www/ddcutil.com. If option --verbose is
specifeid in conjunction with --help, more extensive help on option arguments is shown.
Option --hh shows all options recognized by ddcutil. These include deprecated option names (which have
been replaced by more descriptive names), experimental options, and options only of interest to
developers.
RESTRICTIONS
ddcutil does not support laptop monitors, which do not implement DDC/CI.
COMMANDS
Primary Commands
These are the most used ddcutil commands.
detect Find monitors that have a Virtual Control Panel.
vcpinfo [ feature-code | feature-group ]
Describe VCP feature codes. as defined in the MCCS specification. Use option --verbose to see
values for Non-Continuous features.
capabilities
Query the monitor's capabilities string
getvcp [ feature-code | feature-group ] ...
Report a VCP feature value, or a group of feature values. More than one feature code can be
specified. However feature codes and groups cannot be combined.
setvcp feature-code [+|-] new-value ...
Set a VCP feature value. If + or - is specified, it must be surrounded by blanks, and indicates a
relative value change of a continuous VCP feature. Multiple feature/value pairs (with or without
[+|1]) can be specified.
Secondary Commands
These commands address special situations.
dumpvcp filename
Save color profile related VCP feature values in a file. If no file name is specified, one is
generated and the file is saved in $HOME/.local/share/ddcutil,
loadvcp filename
Set VCP feature values from a file. The monitor to which the values will be applied is determined
by the monitor identification stored in the file. If the monitor is not attached, nothing
happens.
scs Issue DDC/CI Save Current Settings request. Most monitors do not implement this command. A few
require it for values changed by setvcp to take effect.
chkusbmon
Tests if a hiddev device may be a USB connected monitor, for use in udev rules.
discard all|capabilities|dsa cache[s]
Discard cached files used for performance improvement.
traceable-functions
Lists functions that can be specifically traced using an option like --trcfunc or --trcfrom
noop Do not execute a command. Just process options.
Diagnostic commands
These commands diagnose issues in the system configuration that affect ddcutil operation, and that
gather information for remote problem diagnosis.
environment
Probe the ddcutil installation environment.
usbenv Probe USB aspects of the ddcutil installation environment.
probe Explore the capabilities and features of a single monitor.
interrogate
Collect maximum information for problem diagnosis. Includes the output of ddcutil environment
--verbose for each detected monitor, the output of ddcutil capabilities --verbose and ddcutil
probe --verbose.
COMMAND ARGUMENTS
feature-code
A feature-code is specified by its 2 character hex feature number, with or without a leading "0x", e.g.
0x10, 10
feature-group
The following are the most useful feature groups. For a complete list, use the --help option.
ALL|KNOWN
All feature codes understood by ddcutil
COLOR Scan color related feature codes
PROFILE
Subset of color related feature codes that are saved and restored by dumpvcp and loadvcp
SCAN Scan all possible feature codes 0x00..0xff, except those known the be write-only
Feature group names can be abbreviated to the first 3 characters. Case is ignored. e.g. "COL", "pro".
new-value
Normally, this is a decimal number in the range 0..255, or a hexadecimal number in the range x00..xff.
More generally, this is actually a two byte value, i.e. x00..xffff, and a few features on some monitors
use this extended range.
OPTIONS
Options that control the amount and form of output.
-t, --terse, --brief
Show brief detail. For command getvcp, the output is in machine readable form.
-v, --verbose
Show extended detail
Options for program information.
-V, --version
Show program version.
--settings
Report option settings in effect.
-h,--help
Show program help.
--hh Show program help including hidden options. Hidden options include alternative option names,
experimental and deprecated options, and ones for debugging.
Options for monitor selection. If none are specified, the default is the first detected monitor.
Options --mfg, --model and --sn can be specified together.
-d , --dis , --display ,
display-number logical display number (starting from 1)
-b,--bus
bus-number I2C bus number
--hiddev
device number hiddev device number
-u,--usb busnum.devicenum
USB bus and device numbers
-g,--mfg
3 letter manufacturer code
-l,--model
model name
-n,--sn
serial number. (This is the "serial ascii" field from the EDID, not the binary serial number.)
-e,--edid
256 hex character representation of the 128 byte EDID. Needless to say, this is intended for
program use.
Feature selection filters
-U, --show-unsupported
Normally, getvcp does not report unsupported features when querying a feature-group. This option
forces output.
--show-table | --no-table
Normally, getvcp does not report Table type features when querying a feature-group. --show-table
forces output. --no-table is the default.
--rw, --ro, --wo
Limit getvcp or vcpinfo output to read-write, read-only, or (for vcpinfo) write-only features.
Options for diagnostic output
--ddcdata
Reports DDC protocol errors. These may reflect I2C bus errors, or deviations by monitors from the
MCCS specification. Formerly named --ddc,
--stats [all|errors|tries|calls|elapsed|time]
Report execution statistics. I2C bus communication is inherently unreliable. It is the
responsibility of the program using the bus, i.e. ddcutil, to manage retries in case of failure.
This option reports retry counts and various performance statistics. If no argument is specified,
or ALL is specified, then all statistics are output. ELAPSED is a synonym for TIME. CALLS
implies TIME.
--vstats [all|errors|tries|calls|elapsed|time]
Like --stats, but includes per-display statistics.
--istats [all|errors|tries|calls|elapsed|time]
Like --vstats, but includes additional internal information.
--syslog [debug|verbose|info|notice|warn|error|never ]
Write messages of the specified or more urgent severity level to the system log. The ddcutil
default is WARN. The libddcutilP default is NOTICE.
Options that tune execution
--enable-capabilities-cache, --disable-capabilities-cache
Enable or disable caching of capabilities strings, improving performance. The default is
--enable-capabilities-cache
--enable-dynamic-sleep, --disable-dynamic-sleep
Dynamically adjust the sleep-multiplier over multiple ddcutil invocations, improving performance.
The default is --enable-dynamic-sleep
--min-dynamic-multiplier decimal number
Modify the dynamic sleep algorithm to never adjust the sleep multiplier below this value. This
option can help dampen swings in sleep multiplier values.
--sleep-multiplier decimal number
Adjust the length of waits listed in the DDC/CI specification by this number to determine the
actual wait time. Well behaved monitors work with sleep-multiplier values less than 1.0, while
monitors with poor DDC implementations may require sleep-multiplier values greater than 1.0. In
general, newer option --enable-dynamic-sleep will provide better performance.
--skip-ddc-checks
Assume DDC communication works and monitors properly use the invalid feature flag in a DDC/CI
Reply packet to indicate an unsupported feature, improving display detection performance.
--discard-cache [capabilities|dsa|all
Discard cached display information and/or dynamic sleep data.
Options that modify behavior
--maxtries (max-read-tries, max-write-read-tries, max-multi-part-tries)
Adjust the number of retries. A value of "." or "0" leaves the setting for a retry type
unchanged.
--verify | --noverify
Verify or do not verify values set by setvcp or loadvcp. --noverify is the default.
--mccs MCCS version
Tailor command input and output to a particular MCCS version, e.g. 2.1
--enable-udf, --disable-udf
Enable or disable support for user supplied feature definitions. The default is --enable-udf
--enable-usb, --disable-usb
Enable or disable support for monitors that implement USB communication with the Virtual Control
Panel. (These options are available only if ddcutil was built with USB support.) The default is
--disable-usb
--ignore-usb-vid-pid vid:pid
Force ddcutil to ignore a particular USB device, specified by its 4 hex digit vendor id and its 4
hex digit product id.
--ignore-hiddev hiddev-device-number
Force ddcutil to ignore a particular USB device, specified by /dev/usb/hiddev device number
--use-file-io | --use-ioctl-io
Cause ddcutil to use the write()/read() interface or the ioctl interface of driver dev-i2c to send
and receive I2C packets. By default, ddcutil uses the ioctl interface. Nvidia proprietary driver
are built in a way such that the ioctl interface can fail, in which case ddcutil switches to using
the file io interface.
--force-slave-address
Take control of slave addresses on the I2C bus even they are in use. Has use only with file-io,
not with ioctl-io.
--enable-cross-instance-locks | --disable-cross-instance-locks
Coordinates /dev/i2c device access across multiple instance of ddcutil and libddcutil. The
default is --enable-cross-instance-locks
--edid-read-size 128|256
Force ddcutil to read the specified number of bytes when reading the EDID. This option is a work-
around for certain driver bugs. The default is 256.
--i2c-source-addr hex-addr
Use this as the source address in DDC packet, instead of the normal value. This option has been
found to enable access some control functions when using some displays, particularly from LG.
--permit-unknown-feature
Allow setvcp of unknown features.
--ignore-mmid monitor-model-id
Ignore monitors with this monitor-model-id. The see the monitor-model-id for a display, use
command ddcutil --verbose.
--noconfig
Do not process the configuration file
NVIDIA PROPRIETARY DRIVER
Some Nvidia cards using the proprietary Nvidia driver require special settings to properly enable I2C
support. See http://www.ddcutil.com/nvidia.
VIRTUAL MACHINES
Virtualized video drivers in VMWare and VirtualBox do not provide I2C emulation. Use of normal video
drivers with PCI passthrough is possible.
EXAMPLES
ddcutil detect
Identify all attached monitors.
ddcutil getvcp supported
Show all settings that the default monitor supports and that ddcutil understands.
ddcutil getvcp 10 --display 2
Query the luminosity value of the second monitor.
ddcutil setvcp 10 30 --bus 4
Set the luminosity value for the monitor on bus /dev/i2c-4.
ddcutil vcpinfo --verbose
Show detailed information about VCP features that ddcutil understands.
ddcutil interrogate > ~/ddcutil.out
Collect maximum information about monitor capabilities and the execution environment, and direct the
output to a file.
DIAGNOSTICS
Returns 0 on success, 1 on failure.
Requesting help is regarded as success.
SEE ALSO
The project homepage: http://www.ddcutil.com
AUTHOR
Sanford Rockowitz (rockowitz at minsoft dot com)
Copyright 2015-2023 Sanford Rockowitz
2024-01-11 ddcutil(1)