Existe uma maneira de ajustar o brilho do monitor?

6

Usar os botões de software é irritante ao longo do tempo. Quero dizer, o brilho real da luz de fundo (não gama X11). Quais protocolos são cabíveis disso? (DVI, HDMI, DP, acho que VGA não é)

    
por ManuelSchneid3r 12.03.2015 / 08:45

3 respostas

8

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
    
por 21.08.2016 / 11:59
5

Com base na resposta do @ M132, ddccontrol aparece sem manutenção e não adicionou configurações para novos monitores desde 2006.

Felizmente, existe uma ferramenta mais recente: ddcutil , que é muito mais robusta e ativamente desenvolvida. Depois de instalar um dos pacotes pré-construídos ou construir a partir da fonte, ele pode ser usado para consultar e defina o brilho (entre uma miríade de outras configurações):

# ddcutil capabilities | grep Brightness
Feature: 10 (Brightness)
# ddcutil getvcp 10
VCP code 0x10 (Brightness                    ): current value =    60, max value =   100
# ddcutil setvcp 10 70
    
por 10.05.2017 / 20:33
4

xbacklight - "ajuste o brilho da luz de fundo usando a extensão RandR".

No entanto, ele falha com meu monitor HDMI, então volto a usar a modificação de software:

xrandr --output HDMI2 --brightness 0.7
    
por 12.03.2015 / 10:31