Como definir o brilho da tela do laptop logo após a inicialização com criptografia total de disco

3

minha namorada comprou Lenovo Essential G500 i5-3230 e instalei Linux Mint 16 com criptografia total de disco. É uma instalação padrão com criptografia usando dmcrypt e LUKS . Mas há um problema com o brilho da tela, ele está definido para 0 antes mesmo de pedir senha para partições criptografadas. Eu consertei parcialmente adicionando:

echo 50 > /sys/class/backlight/acpi_video0/brightness

para /etc/rc.local , mas corrige o brilho depois de digitar a senha correta para montar partições criptografadas. Eu quero corrigir o brilho antes disso, para que eu possa ver o campo de entrada da senha. /etc/rc.local é carregado depois de montar o disco criptografado, então acho que preciso de alguma forma forçar o kernel a alterar o brilho logo depois de carregar ele mesmo e antes de montá-lo.

Existe uma maneira de dizer ao kernel para ajustar o brilho logo após o boot?

As placas gráficas no laptop são: AMD® Radeon HD 8570M + Intel HD Graphics 4000

UPDATE

Eu tentei a solução sugerida por @derobert. Eu criei script initramfs /etc/initramfs-tools/scripts/init-premount/local-backlight-brightness

#!/bin/sh
PREREQ=""
prereqs()
{
    echo "$PREREQ"
}

case $1 in
    prereqs)
        prereqs
        exit 0
    ;;
esac

. /usr/share/initramfs-tools/hook-functions
# Begin real processing below this line

echo 50 > /sys/class/backlight/acpi_video0/brightness

E depois disso:

$ sudo chmod a+rx /etc/initramfs-tools/scripts/init-premount/local-backlight-brightness
$ sudo update-initramfs -u
$ sudo reboot

Mas não funciona, a tela fica quase preta quando se pede senha. Eu nem tenho certeza se esse script foi executado. Como posso verificar se foi executado? Talvez eu deva adicionar alguns requisitos em PREREQ="" para fazê-lo funcionar?

UPDATE 2 FINALMENTE EM TRABALHO

Ok, eu decidi ler o manual do initramfs-tools novamente para verificar se tudo estava bem e parece que eu usei um clichê errado para o meu script. O correto é:

#!/bin/sh
PREREQ=""
prereqs()
{
    echo "$PREREQ"
}

case $1 in
prereqs)
    prereqs
    exit 0
    ;;
esac

. /scripts/functions
# Begin real processing below this line

echo 50 > /sys/class/backlight/acpi_video0/brightness

O problema foi com . /usr/share/initramfs-tools/hook-functions . Esta linha foi usada para scripts de gancho que não estão incluídos na imagem intramfs. Deve ser . /scripts/functions . Depois de alterá-lo, o brilho funciona como eu queria.

Estou marcando a resposta do @derobert como correta porque me orientou a corrigir a solução.

    
por piotrekkr 26.02.2014 / 19:48

1 resposta

3

Você precisa adicionar esse script ao seu initramfs. No Debian (eu suspeito que o Mint é o mesmo), parece que o prompt de senha vem de /usr/share/initramfs-tools/scripts/local-top/cryptroot . Esse script se organiza para ser chamado por último dos scripts locais. Existe um conjunto paralelo de diretórios em /etc destinados à customização local. Então você só precisa plopar um arquivo que se pareça com:

#!/bin/sh
PREREQ=""
prereqs()
{
     echo "$PREREQ"
}

case $1 in
prereqs)
     prereqs
     exit 0
     ;;
esac

echo 50 > /sys/class/backlight/acpi_video0/brightness

em /etc/initramfs-tools/scripts/local-top ou /etc/initramfs-tools/scripts/init-premount . O nome do arquivo não importa, embora eu escolha algo como local-backlight-brightness para ter certeza de que ele não entra em conflito com algum script fornecido pelo pacote. (O clichê de pré-requisitos vem direto da página man do initramfs-tools.)

Em seguida, execute update-initramfs -u .

    
por 26.02.2014 / 20:09