sysfs alternativa para / proc / acpi / button / lid / LID / state

2

Como você provavelmente sabe, o procfs ACPI está obsoleto em novas versões do kernel e com o sysfs eu não conheço uma maneira limpa de ler o estado do botão da tampa.

A única maneira que eu tenho é ligar evento acídico de mudança de botão de tampa e gravar seu estado em algum arquivo. Mas o problema com essa abordagem é que, no caso de você colocar seu laptop para dormir com a tampa fechada e retomá-la com a tampa aberta, você acabará com um estado incorreto escrito nesse arquivo de status.

Também não me importaria se houvesse uma maneira de recuperar o estado com o módulo acpi_call.

    
por rindeal 22.11.2015 / 19:31

1 resposta

1

Eu tive a mesma pergunta - parece que, infelizmente, não há uma (pelo menos, não pela maneira como meu sistema é configurado). Um patch foi enviado para a Lista de Discussão do Kernel do Linux em 2010 que teria adicionado arquivos para sysfs para consultar o estado de um comutador GPIO, mas o patch parece ter sido retirado depois que o remetente foi informado das chamadas ioctl() para ler isto ( EVIOCG* ).

A solução que estou usando é evtest para consultar o estado do switch (que sai 0 se a tampa for aberto e 10 se a tampa estiver fechada):

sudo evtest --query /dev/input/event5 EV_SW SW_LID

Seria bom se houvesse uma versão dessa solução que não exigisse acesso root.

    
por 07.11.2017 / 21:27