De onde vêm os 3 passos para um pressionamento de tecla?
Você obtém três etapas de brilho para um pressionamento de tecla porque:
- O driver de ACPI / vídeo padrão ajusta etapa 1
- O driver
thinkpad_acpi
diz ao BIOS para ajustar etapa 2 , mas ainda encaminha o evento keypress - O daemon de energia do GNOME intercepta esse pressionamento de tecla e informa à ACPI para ajustar mais uma vez etapa 3
1. Desabilite o driver de vídeo de ajustar o brilho por si próprio
Isso elimina uma das três etapas (etapa 1) acima.
- Abra o terminal
- Digite
sudo sh -c 'echo -n 0 > /sys/module/video/parameters/brightness_switch_enabled'
- Teste, agora você deve ter o controle de brilho em etapas de dois
-
Para desabilitar isso automaticamente na inicialização, abra
/etc/rc.local
em seu editor favorito e antes da última linha (exit 0
), adicione:echo -n 0 > /sys/module/video/parameters/brightness_switch_enabled
2. Recompile o módulo thinkpad_acpi
para resolver o problema de duplo pressionamento
- Temos que parar
thinkpad_acpi
de ajustar o brilho via BIOS e tê-lo somente encaminhando a tecla para o GNOME, para que o GNOME faça a única etapa de ajuste - Este é um bug conhecido que foi corrigido no kernel 3.4 +
-
Para corrigi-lo para o Ubuntu 12.04 / Precise, teremos o patch de sua versão de
thinkpad_acpi
e recompilá-lo:- Instale os cabeçalhos do kernel:
sudo apt-get install linux-headers-$(uname -r)
- Instalar ferramentas de compilação
sudo apt-get install build-essential
- Crie um diretório temporário e altere para ele:
mkdir ~/tpacpi-bright && cd ~/tpacpi-bright
-
Baixe e corrija o arquivo de origem
thinkpad_acpi.c
do repositório git do Kernel do Ubuntu:wget -O- "http://kernel.ubuntu.com/git?p=ubuntu/ubuntu-precise.git;\ a=blob_plain;f=drivers/platform/x86/thinkpad_acpi.c;hb=HEAD"\ | sed -e 's/tp_features.bright_acpimode && acpi_video/acpi_video/g' \ > thinkpad_acpi.c
-
Na mesma pasta em que
thinkpad_acpi.c
foi baixado, você precisará de um "Makefile". Você pode baixá-lo diretamente deste Pastebin , usando:wget -OMakefile http://pastebin.com/raw.php?i=ybpnxeUT
OU cole o abaixo em um arquivo chamado
Makefile
,:obj-m += thinkpad_acpi.o
all: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean- Agora digite
make
para criar o módulo; você verá um arquivothinkpad_acpi.ko
na pasta quando terminar.
- Instale os cabeçalhos do kernel:
-
Teste o módulo corrigido depois de carregá-lo com:
sudo rmmod thinkpad_acpi && sudo lsmod thinkpad_acpi.ko
-
Se o brilho agora estiver fixo e você tiver controle total, substitua o módulo de armazenamento pelo módulo corrigido:
TPDIR=/lib/modules/$(uname -r)/kernel/drivers/platform/x86 sudo mv $TPDIR/thinkpad_acpi.ko $TPDIR/thinkpad_acpi.ko.stock sudo mv ~/tpacpi-bright/thinkpad_acpi.ko $TPDIR/thinkpad_acpi.ko
-
Você pode limpar a pasta de construção com
make clean
; guarde-o para futuros upgrades de kernel!