Várias chaves de eventos ACPI possuem o mesmo ID

3

Ubuntu 14.04 LTS

Kernel: 3.19.0-37-generic

INTRODUÇÃO

Quando inicio acpi_listen no meu sistema, posso testar várias LaptopSpecialKeys. Os botões de brilho funcionam perfeitamente bem, por exemplo:

video/brightnessdown BRTDN 00000087 00000000
video/brightnessup BRTUP 00000086 00000000

A função desejada está funcionando.

PROBLEMA

Se eu testar algumas outras chaves, elas não terão nenhum evento acpi acionado (acpi_listen não faz nada) ou várias chaves serão mapeadas para o mesmo código, como as três chaves de volume:

button/volumeup VOLUP 00000080 00000000 K
button/volumedown VOLDN 00000080 00000000 K
button/mute MUTE 00000080 00000000 K

O resultado das teclas de volume que estão sendo mapeadas para o mesmo código é que as ações de aumentar, diminuir e silenciar o volume estão se comportando de maneira muito estranha. Por exemplo. se eu pressionar a tecla de função de aumento de volume, o evento de aumento de volume é acionado repetindo infinitamente.

E o mais estranho de tudo:

Como o evento acpi distingue essas três chaves, reconhecendo que cada uma tem sua própria funcionalidade (VOLUP, VOLDN, MUTE), embora todas as três chaves tenham o mesmo código 0x80?

PERGUNTA

Você tem alguma ideia sobre como lidar com esses problemas com eventos acpi? É um problema do kernel, não reconhecendo drivers específicos de notebook? Ou existem soluções no nível do usuário que possam reparar essa funcionalidade quebrada do LaptopSpecialKeys?

    
por Jan 05.12.2015 / 11:11

1 resposta

1

Na verdade, eles são muito distinguíveis, seu script receberá toda a linha como argumento. Exemplo:

button/volumeup VOLUP 00000080 00000000 K

Você tem 5 argumentos e está livre para processá-los.

Talvez da maneira mais fácil:

event=button/*
action=/etc/acpi/yourscript.sh %e

Em seguida, em seu script, usei o terceiro argumento $3 que será VOLUP , VOLDN ou MUTE , além de alguns outros botões (potência, ...).

Veja:

por user.dz 05.12.2015 / 11:41