
Então, comprei uma bateria nova para meu laptop e, desde o início, estou tendo problemas.
A bateria veio quase totalmente descarregada do fabricante. Eu o conectei ao meu computador e o batedor informaria que a taxa de carga é 0 e, portanto, nunca alcançaria "totalmente carregado"
Depois de alguns minutos e o X11 travando, estou neste ponto ( 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 projetada (mesmo que a bateria tenha apenas alguns dias), está em 73% e a taxa de carga é tão pequena que não até mesmo informar quanto seria necessário até que estivesse totalmente carregado.
Agora, eu sei que você pode “calibrar” uma bateria, carregando-a por algumas horas, deixando-a descarregar e depois carregá-la novamente.
No entanto, esta não parece ser a maneira certa de fazer. Gostaria de saber se não consigo acessar os dados inteligentes diretamente, por meio doSMBus.
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 testar 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, significa que não há nada conectado ao ônibus?
Não importa qual endereço estou tentando descartar, 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 informações da bateria deem 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 os dados da bateria inteligente, como configurá-la (presumivelmente com i2cset
) e possivelmente como ela é formatada (quais dados codificam quais informações, etc.)
acpi -V
fica 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.)
A última informação que posso encontrar é dmidecode
a saí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 dizem muito.
dmidecode -t connector
relatórios:
Getting SMBIOS data from sysfs.
SMBIOS 2.4 present.
Responder1
O barramento Smart Battery Specification (SBS) não pode ser acessado diretamente do sistema operacional. No entanto, é possível comunicar diretamente com a bateria através de um adaptador USB-I2C conectado diretamente aos pinos da bateria.
EDITAR: https://media.blackhat.com/bh-us-11/Miller/BH_US_11_Miller_Battery_Firmware_Public_WP.pdf
EDIT 2: Eu pessoalmente consegui falar diretamente com a bateria usando os pinos i2c do Raspberry PI e os comandos que você mencionou.
Responder2
Não há nada de errado com o medidor; sua bateria está com defeito, então você precisa apenas devolvê-la e exigir uma substituição. Uma bateria de íon-lítio de 4 células tem uma voltagem totalmente carregada de 4,2 x 4 = 16,8 volts. O fato de estar em apenas 15,9 e quase não receber 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 simplesmente não se preocupou em construí-lo corretamente, então eu o devolveria e receberia um reembolso, se possível, e não compraria deles novamente.
Responder3
Tem certeza de que é mesmo uma bateria inteligente? O do meu HP Pavilion não é.
E onde você conseguiu a bateria é importante. Levei 3 ou 4 tentativas para conseguir uma bateria funcionando para meu Dell comprando baterias baratas. Finalmente tive sorte emhttp://drpowerglobal.com/drbattery/mas isso foi há anos, agora eu usei esse.