Como limpar / redefinir a memória da bateria inteligente?

9

Então, eu adquiri uma bateria nova para o meu laptop e, desde o início, estou tendo problemas.

A bateria veio quase totalmente descarregada do fabricante. Eu o conectei no meu computador e a massa informava que a taxa de carga é 0 e, portanto, nunca chegaria a "totalmente carregada"

Após alguns minutos e tendo o X11 travado, agora estou neste ( upower -i /org/freedesktop/UPower/devices/battery_BAT0):

  native-path:          BAT0
  vendor:               Hewlett-Packard
  model:                Primary
  power supply:         yes
  updated:              Fri 21 Oct 2016 08:28:33 AM CEST (106 seconds ago)
  has history:          yes
  has statistics:       yes
  battery
    present:             yes
    rechargeable:        yes
    state:               charging
    warning-level:       none
    energy:              17.8704 Wh
    energy-empty:        0 Wh
    energy-full:         24.192 Wh
    energy-full-design:  95.04 Wh
    energy-rate:         0.0996923 W
    voltage:             15.947 V
    percentage:          73%
    capacity:            25.4545%
    technology:          lithium-ion
    icon-name:          'battery-full-charging-symbolic'

Portanto, a bateria está carregando, a capacidade de energia é apenas cerca de um quarto do que foi projetado (embora a bateria tenha apenas alguns dias), fica em 73% e a taxa de carga é tão pequena que não até relate quanto demoraria até a carga completa.

Agora, eu sei que você pode "calibrar" uma bateria, carregando-a por algumas horas, deixando-a funcionar e recarregando-a novamente.

Esta não parece ser a maneira certa de fazer, no entanto. Gostaria de saber se não consigo acessar os dados inteligentes diretamente, via SMBus .

i2cdetect -l relatórios:

i2c-0   smbus       SMBus I801 adapter at 8000          SMBus adapter
i2c-1   i2c         NVIDIA i2c adapter 0 at 1:00.0      I2C adapter
i2c-2   i2c         NVIDIA i2c adapter 2 at 1:00.0      I2C adapter
i2c-3   i2c         NVIDIA i2c adapter 3 at 1:00.0      I2C adapter
i2c-4   i2c         NVIDIA i2c adapter 5 at 1:00.0      I2C adapter

Então, tentei investigar o SMBus ( i2cdetect -r 0):

WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0 using read byte commands.
I will probe address range 0x03-0x77.
Continue? [Y/n] y   
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         

Isso é muito estranho para mim, isso significa que não há nada conectado ao ônibus?

Independentemente do endereço que estou tentando despejar, o resultado é sempre o mesmo:

i2cdump 0 0x03 (todos os outros endereços válidos produzem a mesma saída):

No size specified (using byte-data access)
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0, address 0x1a, mode byte
Continue? [Y/n] y
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
20: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
40: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
80: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
a0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX

Foi assim que cheguei.

O sistema obtém as informações da bateria de algum lugar , mas não consigo descobrir como e de onde.

Quanto ao acesso I²C / SMBus à bateria: não faço ideia se estou fazendo algo errado, ou é impossível assim.

Gostaria de saber como acessar dados inteligentes da bateria, como configurá-los (presumivelmente com i2cset) e, possivelmente, como eles são formatados (quais dados codificam quais informações etc.)


acpi -V é ainda mais confuso:

Battery 0: Unknown, 73%
Battery 0: design capacity 6600 mAh, last full capacity 1680 mAh = 25%
Adapter 0: on-line

(capacidade de projeto relatada incorretamente etc.)


O último bit de informação que posso apresentar é a dmidecodesaída:

Handle 0x0010, DMI type 39, 22 bytes
System Power Supply
    Location: OEM_Define0
    Name: OEM_Define1
    Manufacturer: OEM_Define2
    Serial Number: OEM_Define2
    Asset Tag: OEM_Define3
    Model Part Number: OEM_Define4
    Revision: OEM_Define5
    Max Power Capacity: 75 W
    Status: Present, OK
    Type: Regulator
    Input Voltage Range Switching: Auto-switch
    Plugged: No
    Hot Replaceable: No

Você pode ver todas essas strings "OEM_Define2" etc., que não estão dizendo muito.

dmidecode -t connector relatórios:

Getting SMBIOS data from sysfs.
SMBIOS 2.4 present.
polemon
fonte
Tentei calibrá-lo da maneira antiquada (executando o plano e cobrando durante a noite). Ainda é tão ruim. isso é AT para a minha pergunta, mas acho que minha bateria está quebrada.
Polemon

Respostas:

5

O barramento Smart Battery Specification (SBS) não é acessível diretamente no SO. No entanto, é possível se comunicar diretamente com a bateria através de um adaptador USB-I2C conectado diretamente aos pinos da bateria.

EDIT: https://media.blackhat.com/bh-us-11/Miller/BH_US_11_Miller_Battery_Firmware_Public_WP.pdf

EDIÇÃO 2: Eu pessoalmente consegui falar diretamente com a bateria usando os pinos i2c do Raspberry PI e os comandos que você mencionou.

RetroDroid
fonte
1

Não há nada errado com o medidor; Como a bateria está com defeito, é necessário devolvê-la e exigir uma substituição. Uma bateria de iões de lítio de 4 células possui uma voltagem totalmente carregada de 4,2 x 4 = 16,8 volts. O fato de estar sentado a apenas 15,9 e não cobrar quase nenhuma carga indica que pelo menos uma célula está danificada.

O fato de os dados smi e acpi estarem incorretos indica que o fabricante deste laptop não conseguiu se dar ao trabalho de construí-lo da maneira certa; portanto, eu o devolveria para reembolso, se possível, e não compraria novamente.

psusi
fonte
-1

Tem certeza de que é uma bateria inteligente? O do meu HP Pavilion não é.

E onde você conseguiu a bateria é importante. Foram necessárias 3 ou 4 tentativas para obter uma bateria funcionando para a minha Dell comprar baterias baratas. Finalmente tive boa sorte em http://drpowerglobal.com/drbattery/, mas isso foi anos atrás, agora eu já o gastei.

Alan Corey
fonte