Controlando a luz de fundo da tela manualmente

4

Após uma nova instalação do Debian, não consigo controlar o brilho dos meus monitores por meio da ferramenta " xbacklight " ("Nenhuma saída possui a propriedade backlight"). Enquanto isso é curioso o suficiente (desde a sua era uma vez que funcionou muito bem na mesma máquina antes da reinstalação do sistema operacional), estou querendo saber como lidar com o controle de luz de fundo com a mão.

Encontrei dicas sobre como gerenciar isso usando arquivos como " echo 700 | sudo tee /sys/class/backlight/intel_backlight/brightness ". Enquanto isso está funcionando, estou preocupado com os dois tópicos a seguir.

  1. Isso é seguro? (posso inserir um valor muito alto acidentalmente e frear meu hardware dessa maneira?)
  2. Esta é uma maneira mais confortável de fazer isso? (Como posso usar ferramentas como xbacklight para isso?)
por Marc M 07.07.2016 / 13:42

2 respostas

4

1)

Sim, é completamente seguro. Ecoando para /sys (ou /proc ) não sobrescreve a configuração do kernel diretamente, ele executa uma função userspace do kernel que valida a entrada.

xrandr / xbacklight realmente executa praticamente isso (até onde eu sei).

2)

Desde que funcionou antes de apostar que xbacklight é simplesmente encontrar o diretório de luz de fundo errado em /sys/class/backlight . Eu suponho que há mais de um diretório lá, certo?

Não tenho 100% de certeza, mas xrandr / xbacklight escolherá os diretórios acpi (por exemplo, /sys/class/backlight/acpi_video0 ) antes de tentar algo como /sys/class/backlight/intel_backlight/ (que é o que seu driver atual está criando / usando).

(Não tenho 100% de certeza, mas encontrei uma referência decente no wiki do Arch que confirme mais ou menos )

Para forçar o xbacklight a usar o diretório correto, você pode adicionar o seguinte a xorg.conf (ou, de preferência, descartar um arquivo *.conf em /etc/X11/xorg.conf.d/ ) com a seguinte seção:

Section "Device"
    Identifier  "Card0"
    Driver      "intel"
    Option      "Backlight"  "intel_backlight"
EndSection

(Aviso: Eu não testei, pois não tenho um cartão de intel, se esta seção não funcionar, você pode tentar substituir "Card0" por "Screen0" )

    
por 07.07.2016 / 16:25
0

O risco de você danificar seu hardware colocando um valor muito alto é impossível, já que você realmente não tem esse nível de controle sobre o sistema. O valor que você coloca no arquivo /sys/class/backlight/acpi_video0/brightness é resolvido no valor da intensidade de luz de fundo correspondente pelo firmware do seu hardware e esse valor é o que realmente controla o brilho da luz de fundo da tela da sua tela. Além disso, o conteúdo dos diretórios /sys e /proc é gerado em tempo de execução pelo kernel. Para ver isso, você pode montar o sistema de arquivos de um outro sistema linux e listar o conteúdo de /sys e /proc . Se o sistema estiver inoperante, você não verá nada nesses diretórios.

Além disso, para não causar a si mesmo o incômodo de escrever um valor muito alto para o arquivo /sys/class/backlight/acpi_video0/brightness , é possível ver o valor máximo possível lendo o arquivo /sys/class/backlight/acpi_video0/max_brightness .

    
por 10.07.2017 / 21:10