Como detectar a presença de uma bateria?

4

Estou tentando automatizar a configuração da área de trabalho e, como parte disso, gostaria de instalar um pacote de monitores de bateria < em> somente se a máquina tiver atualmente uma bateria conectada (as UPS e outras baterias externas não são relevantes). Como posso detectar isso?

Meu laptop tem um diretório /sys/class/power_supply/BAT1 e minha área de trabalho não tem nada no diretório /sys/class/power_supply . Isso é um indicador sólido em um sistema com sysfs ? A referência não menciona os diretórios BATn ; eles são provavelmente um recurso específico do fornecedor?

    
por l0b0 08.11.2014 / 01:29

1 resposta

4

A presença de informações da bateria em /sys/class/power_supply é um indicador confiável de que o sistema suporta uma bateria, e é um recurso padrão do Linux, mas nem sempre será chamado da mesma coisa. Seu é chamado BAT1 . Eu estou olhando para um aqui que é chamado battery . Além disso, nem todas as entradas em /sys/class/power_supply são pilhas.

Procure todos os arquivos correspondentes ao padrão /sys/class/power/supply/*/type . Se pelo menos um deles contiver o trabalho Battery , há uma bateria. Outros valores possíveis para type são Mains e USB , talvez mais.

Uma outra coisa que é possível é que o sistema aceita uma bateria, mas a bateria foi fisicamente removida. Nesse caso, a fonte de energia Battery ainda será exibida. Como você pode detectar este pode ser dependente do sistema, mas tente ler capacity ou algo assim e veja se você obteve um erro de leitura, o que provavelmente indica que a bateria foi removida.

Detalhes: Documentação / power / power_supply_class.txt

    
por 08.11.2014 / 02:21