Como funciona a luz de fundo da tela?

3

Tudo sobre as configurações de luz de fundo e os controles funcionam para mim, exceto:

A luz de fundo é redefinida para no máximo. em cada reinicialização / inicialização. O mínimo da luz de fundo passa a completar a tela preta, em vez da configuração de brilho mínimo em outro lugar. NB > Eu vejo que 1. acima é respondido em muitos lugares com diferentes respostas, então eu estou realmente procurando por alguém ou algum lugar onde eu possa ler e entender como tudo funciona.

Eu tenho duas pastas de luz de fundo diferentes no meu laptop e muitos arquivos conf para editar. Então, precisa entender o que nesses arquivos impacta o que está no sistema.

    
por charlie 21.07.2013 / 22:06

1 resposta

4

No coração da iluminação de fundo está o parâmetro do Kernel do Linux que está exposto a você aqui, abaixo de /sys . Você pode manipulá-lo definindo o valor para algo entre 1 e 15. Por exemplo:

$ sudo echo 5 > /sys/class/backlight/acpi_video0/brightness

Defina o brilho como 5. A manipulação deste parâmetro do Kernel é abstraída para que, quando você estiver alterando o valor com o teclado ou um applet de área de trabalho, esteja manipulando-o por meio de D-Bus e HAL .

O D-Bus está permitindo que você manipule essa estrutura, org.freedesktop.Hal.Device.KeyboardBacklight e HAL está permitindo que o privilégio de fazer isso. Você pode ver isso no meu sistema Fedora 14 assim:

$ grep -i backlight /etc/dbus-1/system.d/*
/etc/dbus-1/system.d/hal.conf:         send_interface="org.freedesktop.Hal.Device.KeyboardBacklight"/>
/etc/dbus-1/system.d/hal.conf:         send_interface="org.freedesktop.Hal.Device.KeyboardBacklight"/>

No arquivo hal.conf :

  <!-- Only allow users at the local console to manipulate devices -->
  <policy at_console="true">
  ...
      <allow send_destination="org.freedesktop.Hal"
           send_interface="org.freedesktop.Hal.Device.KeyboardBacklight"/>

Você pode consultar o valor atual, através do D-Bus da seguinte forma:

$ dbus-send \
     --print-reply \
     --system \
     --dest=org.freedesktop.Hal  \
     /org/freedesktop/Hal/devices/computer_backlight \
     org.freedesktop.Hal.Device.LaptopPanel.GetBrightness | \
     tail -1 | \
     awk '{print $2}'

que retorna o valor:

15

Você também pode manipulá-lo a partir da linha de comando, assim (o bit int32:10 abaixo está definindo o brilho para "10"):

$ dbus-send \
     --print-reply \
     --system \
     --dest=org.freedesktop.Hal  \
     /org/freedesktop/Hal/devices/computer_backlight \
     org.freedesktop.Hal.Device.LaptopPanel.SetBrightness \
     int32:10 #2&>1 > /dev/null

Você pode ver que mudamos o brilho:

$ cat /sys/class/backlight/acpi_video0/brightness
10

Então, como corrijo isso?

Uma ideia seria salvar o brilho atual em um arquivo antes de um desligamento e / ou reinicialização e, em seguida, adicionar à sua inicialização (talvez ~/.xinitrc ) o comando dbus-send ... acima, adicionando o valor de brilho anteriormente salvo no arquivo.

Por que tenho vários arquivos em / sys / class / backlight?

Me deparei com este Q & A em askubuntu.com intitulado: Por que existem dois arquivos de controle de brilho (/ sys / class /) no meu sistema . Na resposta para isso, houve este comentário:

If the system starts with the kernel parameter acpi_backlight=vendor, the item acpi_video0 is replaced by the item intel, but then the Fn-Keys can not change the value of this item.

Eu também encontrei esta documentação para o Kernel, intitulada: Kernel Parameters . Neste documento, as seguintes opções aCPI são mencionadas:

acpi_backlight= [HW,ACPI]
        acpi_backlight=vendor
        acpi_backlight=video
        If set to vendor, prefer vendor specific driver
        (e.g. thinkpad_acpi, sony_acpi, etc.) instead
        of the ACPI video.ko driver.

Acho que o intel_backlight referenciado em /sys/class/backlight faz parte da luz de fundo dos drivers da placa de vídeo fornecidos para as placas gráficas da Intel.

Referências

por 22.07.2013 / 07:31