Donc, j'ai une nouvelle batterie pour mon ordinateur portable, et dès le départ, j'ai des problèmes.
La batterie est presque entièrement déchargée du fabricant. Je l'ai branché sur mon ordinateur et le batteur signale que le taux de charge est 0 et n'atteindrait donc jamais "complètement chargé"
Après quelques minutes et avoir un crash X11, j'en suis là ( 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'
Ainsi, la batterie est en charge, la capacité énergétique n'est que d'un quart de celle pour laquelle elle a été conçue (même si la batterie n'a que quelques jours), elle se situe à 73% et le taux de charge est si petit qu'il ne le fait pas même signaler combien il faudrait jusqu'à pleine charge.
Maintenant, je sais que vous pouvez "calibrer" une batterie en la chargeant pendant quelques heures, puis en la laissant à plat et en la rechargeant à nouveau.
Cependant, cela ne semble pas être la bonne façon de procéder. Je me demande si je ne peux pas accéder directement aux données intelligentes, via le SMBus .
i2cdetect -l
rapports:
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
J'ai donc essayé de sonder 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: -- -- -- -- -- -- -- --
C'est assez étrange pour moi, cela signifie-t-il qu'il n'y a rien de connecté au bus?
Peu importe l'adresse que j'essaye de vider, le résultat est toujours le même:
i2cdump 0 0x03
(toutes les autres adresses valides produisent la même sortie):
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
Voilà jusqu'où je suis arrivé.
Le système obtient ses informations sur la batterie quelque part , mais je ne peux pas comprendre comment et d'où.
Quant à l'accès I²C / SMBus à la batterie: aucune idée si je fais quelque chose de mal, ou c'est impossible comme ça.
Je voudrais savoir comment accéder aux données de la batterie intelligente, comment les définir (probablement avec i2cset
) et éventuellement comment elles sont formatées (quelles données codent quelles informations, etc.)
acpi -V
est encore plus confus:
Battery 0: Unknown, 73%
Battery 0: design capacity 6600 mAh, last full capacity 1680 mAh = 25%
Adapter 0: on-line
(capacité de conception signalée de manière incorrecte, etc.)
La dernière information que je peux trouver est la dmidecode
sortie:
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
Vous pouvez y voir toutes ces chaînes "OEM_Define2", etc., qui ne disent pas grand-chose.
dmidecode -t connector
rapports:
Getting SMBIOS data from sysfs.
SMBIOS 2.4 present.
la source
Réponses:
Le bus Smart Battery Specification (SBS) n'est pas directement accessible depuis le système d'exploitation. Il est cependant possible de communiquer directement avec la batterie via un adaptateur USB-I2C connecté directement aux broches de la batterie.
EDIT: https://media.blackhat.com/bh-us-11/Miller/BH_US_11_Miller_Battery_Firmware_Public_WP.pdf
EDIT 2: J'ai personnellement réussi à parler directement à la batterie en utilisant les broches i2c d'un Raspberry PI et les commandes que vous avez mentionnées.
la source
Il n'y a rien de mal avec la jauge; votre batterie est défectueuse, vous devez donc simplement la retourner et demander un remplacement. Une batterie li-ion à 4 cellules a une tension complètement chargée de 4,2 x 4 = 16,8 volts. Le fait qu'il soit assis à seulement 15,9 et ne prenne pratiquement aucune charge indique qu'au moins une cellule est endommagée.
Le fait que les données smi et acpi soient incorrectes indique que le fabricant de cet ordinateur portable ne pouvait tout simplement pas être dérangé pour le construire correctement, donc je le retournerais si possible pour un remboursement et je n'achèterais plus chez eux.
la source
Êtes-vous sûr que c'est même une batterie intelligente? Ce n'est pas le cas dans mon HP Pavilion.
Et où vous avez la batterie compte. Il m'a fallu 3 ou 4 essais pour obtenir une batterie fonctionnelle pour mon Dell achetant des batteries bon marché. J'ai finalement eu de la chance sur http://drpowerglobal.com/drbattery/ mais c'était il y a des années, maintenant je l'ai porté.
la source