Ubuntu – How to change external monitor brightness via DDC/IC

brightnessexternal-monitor

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.

Best Answer

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?

Related Question