12

I would like to change brightness on my external Dell U2713HM monitor via DDC/IC (DDC Wikipedia), it's connected via DisplayPort. I have the integrated Intel HD4000 graphics.

When I run sudo get-edid, I get:

get-edid: get-edid version 2.0.0

Performing real mode VBE call
Interrupt 0x10 ax=0x4f00 bx=0x0 cx=0x0
Function supported
Call successful

VBE version 300
VBE string at 0x11100 "Intel(R) Sandybridge/Ivybridge Graphics Chipset Accelerated VGA BIOS"

VBE/DDC service about to be called
Report DDC capabilities

Performing real mode VBE call
Interrupt 0x10 ax=0x4f15 bx=0x0 cx=0x0
Function supported
Call successful

Monitor and video card combination does not support DDC1 transfers
Monitor and video card combination supports DDC2 transfers
0 seconds per 128 byte EDID block transfer
Screen is not blanked during DDC transfer

Reading next EDID block

VBE/DDC service about to be called
Read EDID

Performing real mode VBE call
Interrupt 0x10 ax=0x4f15 bx=0x1 cx=0x0
Function supported
Call successful

��������@L628�<"x:K��VK�%
PT�K���qO�@��V^���)P0 5UP!�GK0KD281826L
�DELL U2713HM
�1Vq
EDID claims 1 more blocks left


*********** Something special has happened!
Please contact the author, Matthew Kern
E-mail: pyrophobicman@gmail.com
Please include full output from this program (especially that to stderr)



Reading next EDID block

VBE/DDC service about to be called
Read EDID

Performing real mode VBE call
Interrupt 0x10 ax=0x4f15 bx=0x1 cx=0x0
Function supported
Call successful

  ��������@L628�<"x:K��VK�%
PT�K���qO�@��V^���)P0 5UP!�GK0KD281826L
�DELL U2713HM
�1Vq
EDID claims 1 more blocks left
EDID blocks left is wrong.
Your EDID is probably invalid.

The important part is probably:

Monitor and video card combination supports DDC2 transfers

The brightness keys on my keyboard are working properly, since I see the backlight-change-notification in Ubuntu 12.10.

What can I do to get my brightness adjusted via software?

Thank you for your answers.

remi
  • 607

2 Answers2

16

You find the necessary files here: https://packages.debian.org/unstable/ddccontrol

ddccontrol
libddccontrol
ddccontrol-db

which I had to install. Then I had to run the following commands:

sudo modprobe i2c-dev
sudo modprobe intelfb
sudo chmod a+rw /dev/i2c-*

Now I can change the brightness to a value (here 53) representing the backlight level of my external monitor without the On-Screen-Display with the command:

ddccontrol -p -r 0x10 -w 53

Now I still need to get my special brightness keys from my keyboard linked to the brightness command (with paying attention to the max. brightness level). Any idea how to do that?

remi
  • 607
  • Cool! +1. Where did you get the old packages? "Now I still need to [...] Any idea how to do that?" - ask in another question. – gertvdijk Jan 05 '13 at 21:51
  • I found the files somewhere here, but I don't now where exactly https://launchpad.net/ubuntu/+source/ddccontrol – remi Jan 07 '13 at 10:48
  • Open question is right here: http://askubuntu.com/questions/220886/control-external-monitor-brightness-via-software – remi Jan 07 '13 at 10:51
  • Exactly which version did you install, I can't get them to work, even with a patch from https://bugs.launchpad.net/ubuntu/+source/ddccontrol/+bug/243445 too bad the package is not maintained anymore... – Gerhard Burger Jan 09 '13 at 21:54
  • I have currently installed: ddccontrol-db:all 20061014-3, libddccontrol0:amd64 0.4.2-6ubuntu1, ddccontrol:amd64 0.4.2-6ubuntu1 – remi Jan 10 '13 at 07:17
  • Note the source code is currently hosted at https://github.com/ddccontrol/ddccontrol (and the monitor database, which you also need, is at https://github.com/ddccontrol/ddccontrol-db). When using the source version, you have to add -b ../ddccontrol-db/db to the command line options above, or else it can't find the database properly. – crazy2be Sep 01 '15 at 21:18
  • Command is running slow because it first tries to detect a monitor and do the DB lookup. You can speed it up by specifying device directly, e.g. ddccontrol dev:/dev/i2c-7 -r 0x10 -w 53 – ivanjermakov Aug 07 '22 at 12:16
  • Thank you for the additional advice. Do you know if the device is static and stays the same after reboots? Then I would add it to my answer above. – remi Aug 11 '22 at 15:38
9

Building on @remi's answer, ddccontrol appears unmaintained and hasn't added configurations for any new monitors since 2006.

Fortunately, there is a newer tool: ddcutil, that is much more robust and actively developed. After installing one of the prebuilt packages or building from source, it can be used to query and set brightness (among myriad other settings):

# ddcutil capabilities | grep Brightness
Feature: 10 (Brightness)
# ddcutil getvcp 10
VCP code 0x10 (Brightness                    ): current value =    60, max value =   100
# ddcutil setvcp 10 70
  • On multi-monitor setups, select the monitor/display like this: sudo ddcutil setvcp 10 70 --display 1 – ali14 Mar 05 '20 at 17:12
  • for the record, it worked for me only when the monitor connected with HDMI but it didn't with VGA cable. – soroosh Sep 08 '21 at 05:04