udev regras de power_supply que não estão acionando

3

Eu sei que esta parece ser a pergunta mais comum sobre udev aqui, mas acredito que fiz tudo corretamente e ainda assim minhas regras nunca são acionadas. O script é executável e funciona perfeitamente quando executado manualmente a partir da linha de comando. (Ubuntu 15.04)

O script deve ser simples: diminua a intensidade da tela quando a fonte de alimentação for desconectada e leve-a de volta ao brilho máximo quando estiver conectada. Aqui estão as regras (em um arquivo chamado 80-power_supply.rules in /etc/udev/rules.d/ :

SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_PRESENT}=="1", RUN+="/usr/local/bin/powermonitor.sh up"
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_PRESENT}=="0", RUN+="/usr/local/bin/powermonitor.sh down"

Meu script:

#!/bin/sh

FILE="/sys/class/backlight/intel_backlight/brightness";

if [ "$1"  = "up" ]; then
    echo "937" > $FILE;
fi

if [ "$1" = "down" ]; then
    echo "92" > $FILE;
fi

Se eu executar o script manualmente com os argumentos up ou down , ele funcionará perfeitamente. Mas quando eu desconectar minha fonte de alimentação ou reconectá-la, nada acontece.

    
por armadadrive 09.09.2015 / 03:45

1 resposta

1

Altere ENV{POWER_SUPPLY_PRESENT} para ENV{POWER_SUPPLY_ONLINE} .

POWER_SUPPLY_PRESENT não muda na conexão / desconexão e, por esse motivo, a variável de ambiente errada está sendo testada.

POWER_SUPPLY_ONLINE muda de 1 para 0 quando é removido da energia do adaptador de CA e, portanto, é mensurável de forma consistente.

    
por 10.09.2015 / 16:36