É uma questão muito simples, mas acho que na sua simplicidade tem saída aqua.
o caso é que estou interessado em entender melhor os arquivos que estão hospedados no /sys/class/power_supply
, e que gerenciam o monitoramento da bateria do sistema. No meu caso, uso um laptop com bateria, cujo diretório está localizado em /sys/class/power_supply/BAT0
. Por outro lado, tenho a interface ac-ADaPter em /sys/class/power_supply/AC0
, pelo que entendi daqui .
Dentro da interface da bateria, encontro vários arquivos:
/sys/class/power_supply/BAT0$ ls
alarm model_name
capacity power
capacity_level present
charge_full serial_number
charge_full_design status
charge_now subsystem
current_now technology
cycle_count type
device uevent
hwmon2 voltage_min_design
manufacturer voltage_now
Entendo essa capacity
referência à porcentagem atual da bateria. eu também entendo por contexto capacity_level
e status
:
/sys/class/power_supply/BAT0$ cat capacity
81
/sys/class/power_supply/BAT0$ cat capacity_level
Normal
/sys/class/power_supply/BAT0$ cat status
Discharging
no entanto, não entendo outros arquivos como charge_full
, charge_full_design
, charge_now
ou :current_now
cycle_count
/sys/class/power_supply/BAT0$ cat charge_full
900000
/sys/class/power_supply/BAT0$ cat charge_full_design
4100000
/sys/class/power_supply/BAT0$ cat charge_now
630000
/sys/class/power_supply/BAT0$ cat current_now
1191000
/sys/class/power_supply/BAT0$ cat cycle_count
0
Na uevent
aula você pode revisar cada variável anterior, com mais alguns detalhes:
POWER_SUPPLY_NAME=BAT0
POWER_SUPPLY_TYPE=Battery
POWER_SUPPLY_STATUS=Discharging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Li-ion
POWER_SUPPLY_CYCLE_COUNT=0
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=11400000
POWER_SUPPLY_VOLTAGE_NOW=11759000
POWER_SUPPLY_CURRENT_NOW=1089000
POWER_SUPPLY_CHARGE_FULL_DESIGN=4100000
POWER_SUPPLY_CHARGE_FULL=900000
POWER_SUPPLY_CHARGE_NOW=675000
POWER_SUPPLY_CAPACITY=75
POWER_SUPPLY_CAPACITY_LEVEL=Normal
POWER_SUPPLY_MODEL_NAME=standard
POWER_SUPPLY_MANUFACTURER=OEM
POWER_SUPPLY_SERIAL_NUMBER=00001
Entendendo claramente que a porcentagem de capacidade da bateria vem do cálculo de POWER_SUPPLY_CHARGE_NOW
( /sys/class/power_supply/BAT0/charge_now
) sobre POWER_SUPPLY_CHARGE_FULL
( /sys/class/power_supply/BAT0/charge_full
): 100*675000/900000=75.
Mas como entender esses valores? de onde POWER_SUPPLY_CHARGE_NOW
vem? a voltagem dos valores acima interfere em alguma coisa?
Talvez você queira ver como a classe de dispositivo de fonte de alimentação do Linux é definida em include/linux/power_supply.h no código-fonte do kernel do Linux. Os valores nas estruturas de dados descritas são apresentados como estão em
/sys/class/power_supply/*
:Portanto, todos os
charge_*
valores estão em unidades de microamperes-hora ecurrent_now
estão em microamperes.A tensão mínima de projeto da bateria (= nunca deve ser descarregada abaixo desta tensão) é 11400000 microvolts = 11,4 volts.
O nível de tensão atual é de 11,759 volts.
A bateria está fornecendo agora 1,089 amperes de corrente.
Quando era nova, a bateria afirmava ter uma capacidade totalmente carregada de 4,10 amperes-hora, mas desde então se degradou, de modo que a capacidade atual totalmente carregada é de apenas 0,9 amperes-hora. Atualmente, ele tem 0,675 amperes-hora de carga restante.
Então, como uma estimativa simples, com a corrente que você está tirando da bateria agora, você terá 0,675 Ah / 1,089 A = cerca de 0,62 horas ou cerca de 37 minutos de energia restante.
O
power_supply.h
arquivo tem muitos outros comentários informativos, que descrevem diretamente o que os vários valores significam. Você pode querer ler esses comentários.