Na verdade, todas essas interfaces são capazes de controlar a luz de fundo (e mais), contanto que a placa gráfica e o monitor suportem o Canal de Dados de Exibição .
O DDC é baseado em I²C, então você precisa instalar e carregar módulos do kernel apropriados para fazê-lo funcionar.
# Debian
sudo apt-get install i2c-tools
sudo modprobe i2c-dev
# RHEL
sudo dnf install i2c-tools
Depois disso, você precisa descobrir qual bus I²C está conectado ao monitor usando sudo i2cdetect -l
.
# Example output for Intel graphics card
i2c-0 i2c i915 gmbus dpc I2C adapter
i2c-1 i2c i915 gmbus dpb I2C adapter
i2c-2 i2c i915 gmbus dpd I2C adapter
i2c-3 i2c DPDDC-B I2C adapter
i2c-4 i2c DPDDC-C I2C adapter
# Example output for AMD graphics card
i2c-0 i2c Radeon i2c bit bus 0x90 I2C adapter
i2c-1 i2c Radeon i2c bit bus 0x91 I2C adapter
i2c-2 i2c Radeon i2c bit bus 0x92 I2C adapter
i2c-3 i2c Radeon i2c bit bus 0x93 I2C adapter
i2c-4 i2c Radeon i2c bit bus 0x94 I2C adapter
i2c-5 i2c Radeon i2c bit bus 0x95 I2C adapter
i2c-6 i2c card0-eDP-1 I2C adapter
i2c-7 i2c card0-VGA-1 I2C adapter
No caso Intel , o barramento correto é um dos DPDDCs ( DDC da porta de exibição ), dependendo de qual porta você está usando. No meu caso, HDMI e DP são exibidos como DP.
No caso AMD , o barramento é chamado de card0- interface - n .
Se não houver interfaces listadas, sua placa / driver não suportará o DDC no modo padrão.
Agora temos que investigar, se o monitor suporta DDC e permite definir o brilho dessa maneira. Primeiro, instale ddccontrol
:
# Debian
sudo apt-get install ddccontrol
# RHEL
sudo dnf install ddccontrol
Em seguida, lista obter lista de parâmetros DDC suportados usando-a. Este exemplo assume que sua interface DDC está ligada ao barramento i2c-3.
# sudo ddccontrol dev:/dev/i2c-3
ddccontrol version 0.4.2
Copyright 2004-2005 Oleg I. Vdovikin ([email protected])
Copyright 2004-2006 Nicolas Boichat ([email protected])
This program comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of this program under the terms of the GNU General Public License.
Reading EDID and initializing DDC/CI at bus dev:/dev/i2c-3...
I/O warning : failed to load external entity "/usr/share/ddccontrol-db/monitor/DELA0A2.xml"
Document not parsed successfully.
I/O warning : failed to load external entity "/usr/share/ddccontrol-db/monitor/DELlcd.xml"
Document not parsed successfully.
EDID readings:
Plug and Play ID: DELA0A2 [VESA standard monitor]
Input type: Digital
= VESA standard monitor
> Color settings
> Brightness and Contrast
> id=brightness, name=Brightness, address=0x10, delay=-1ms, type=0
supported, value=45, maximum=100
> id=contrast, name=Contrast, address=0x12, delay=-1ms, type=0
supported, value=75, maximum=100
--- [snip] ---
É isso aí, se tudo der certo, o valor de brilho deve informar exatamente o mesmo brilho que o definido no monitor. Agora você pode definir 50% de brilho usando este comando (substitua 0x10 pelo endereço do valor de brilho encontrado acima):
sudo ddccontrol dev:/dev/i2c-3 -r 0x10 -w 50