AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 726822
Accepted
Fco Javier Balón
Fco Javier Balón
Asked: 2022-12-01 03:02:24 +0800 CST2022-12-01 03:02:24 +0800 CST 2022-12-01 03:02:24 +0800 CST

Entendendo os arquivos power_supply

  • 772

É 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 capacityreferência à porcentagem atual da bateria. eu também entendo por contexto capacity_levele 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_nowou :current_nowcycle_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 ueventaula 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_NOWvem? a voltagem dos valores acima interfere em alguma coisa?

linux
  • 1 1 respostas
  • 47 Views

1 respostas

  • Voted
  1. Best Answer
    telcoM
    2022-12-06T05:31:30+08:002022-12-06T05:31:30+08:00

    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/*:

    /*
     * All voltages, currents, charges, energies, time and temperatures in uV,
     * µA, µAh, µWh, seconds and tenths of degree Celsius unless otherwise
     * stated. It's driver's job to convert its raw values to units in which
     * this class operates.
     */
    
    /*
     * For systems where the charger determines the maximum battery capacity
     * the min and max fields should be used to present these values to user
     * space. Unused/unknown fields will not appear in sysfs.
     */
    

    Portanto, todos os charge_*valores estão em unidades de microamperes-hora e current_nowestão em microamperes.

    POWER_SUPPLY_VOLTAGE_MIN_DESIGN=11400000
    POWER_SUPPLY_VOLTAGE_NOW=11759000
    

    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.

    POWER_SUPPLY_CURRENT_NOW=1089000
    

    A bateria está fornecendo agora 1,089 amperes de corrente.

    POWER_SUPPLY_CHARGE_FULL_DESIGN=4100000
    POWER_SUPPLY_CHARGE_FULL=900000
    POWER_SUPPLY_CHARGE_NOW=675000
    

    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.harquivo tem muitos outros comentários informativos, que descrevem diretamente o que os vários valores significam. Você pode querer ler esses comentários.

    • 2

relate perguntas

  • Existe uma maneira de fazer ls mostrar arquivos ocultos apenas para determinados diretórios?

  • Inicie/pare o serviço systemd usando o atalho de teclado [fechado]

  • Necessidade de algumas chamadas de sistema

  • astyle não altera a formatação do arquivo de origem

  • Passe o sistema de arquivos raiz por rótulo para o kernel do Linux

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve