Wie lösche / setze ich den Smart Battery Memory zurück?

9

Also habe ich einen neuen Akku für meinen Laptop bekommen und von Anfang an habe ich Probleme.

Der Akku wurde fast vollständig vom Hersteller entladen. Ich habe es an meinen Computer angeschlossen und der Akku würde melden, dass die Laderate 0 ist und daher niemals "voll aufgeladen" erreichen würde.

Nach ein paar Minuten und einem X11-Absturz bin ich jetzt bei diesem ( 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'

Der Akku wird also aufgeladen, die Energiekapazität beträgt nur etwa ein Viertel der geplanten Kapazität (obwohl der Akku nur ein paar Tage alt ist), er liegt bei 73% und die Laderate ist so gering, dass dies nicht der Fall ist Berichten Sie sogar, wie viel es dauern würde, bis es vollständig aufgeladen ist.

Jetzt weiß ich, dass Sie einen Akku irgendwie "kalibrieren" können, indem Sie ihn einige Stunden lang aufladen, dann leer laufen lassen und dann wieder aufladen.

Dies scheint jedoch nicht der richtige Weg zu sein. Ich frage mich, ob ich nicht direkt über den SMBus auf die Smart-Daten zugreifen kann .

i2cdetect -l Berichte:

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

Also habe ich versucht, SMBus ( i2cdetect -r 0) zu testen :

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

Das ist ziemlich seltsam für mich. Bedeutet das, dass nichts mit dem Bus verbunden ist?

Egal welche Adresse ich ausgeben möchte, das Ergebnis ist immer das gleiche:

i2cdump 0 0x03 (Alle anderen gültigen Adressen erzeugen dieselbe Ausgabe):

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

So weit bin ich gekommen.

Das System erhält die Batterieinformationen von irgendwoher , aber ich kann nicht herausfinden, wie und von wo.

Was den I²C / SMBus-Zugang zum Akku betrifft: Keine Ahnung, ob ich etwas falsch mache oder ob es so unmöglich ist.

Ich möchte wissen, wie man auf intelligente Batteriedaten zugreift, wie man sie einstellt (vermutlich mit i2cset) und möglicherweise wie sie formatiert sind (welche Daten welche Informationen codieren usw.).


acpi -V ist noch verwirrter:

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

(Entwurfskapazität falsch angegeben usw.)


Die letzte Information, die ich finden kann, ist die dmidecodeAusgabe:

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

Sie können all diese "OEM_Define2" usw. Zeichenfolgen dort sehen, die nicht viel aussagen.

dmidecode -t connector Berichte:

Getting SMBIOS data from sysfs.
SMBIOS 2.4 present.
Polemon
quelle
Ich habe versucht, es auf die altmodische Weise zu kalibrieren (flach laufen lassen und über Nacht aufladen). Es ist immer noch so schlimm. Dies ist OT zu meiner Frage, aber ich denke, meine Batterie ist kaputt.
Polemon

Antworten:

5

Auf den SBS-Bus (Smart Battery Specification) kann nicht direkt vom Betriebssystem aus zugegriffen werden. Es ist jedoch möglich, über einen USB-I2C-Adapter, der direkt an die Batteriestifte angeschlossen ist, direkt mit der Batterie zu kommunizieren.

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

EDIT 2: Ich persönlich habe es geschafft, mit den i2c-Pins eines Raspberry PI und den von Ihnen erwähnten Befehlen direkt mit dem Akku zu sprechen.

RetroDroid
quelle
1

Es ist nichts falsch mit dem Messgerät; Ihre Batterie ist defekt, daher müssen Sie sie nur zurückgeben und einen Ersatz anfordern. Ein 4-Zellen-Li-Ionen-Akku hat eine voll aufgeladene Spannung von 4,2 x 4 = 16,8 Volt. Die Tatsache, dass es nur bei 15,9 sitzt und kaum Ladung nimmt, zeigt an, dass mindestens eine Zelle beschädigt ist.

Die Tatsache, dass die smi- und acpi-Daten falsch sind, deutet darauf hin, dass der Hersteller dieses Laptops sich einfach nicht die Mühe machen konnte, ihn richtig zu bauen. Daher würde ich ihn nach Möglichkeit gegen eine Rückerstattung zurückgeben und nicht erneut bei ihnen kaufen.

psusi
quelle
-1

Sind Sie sicher, dass es sich sogar um eine intelligente Batterie handelt? Der in meinem HP Pavilion ist es nicht.

Und woher kommt die Batterie? Ich habe 3 oder 4 Versuche gebraucht, um einen funktionierenden Akku für meinen Dell zu bekommen, der billige Akkus gekauft hat. Ich hatte endlich viel Glück bei http://drpowerglobal.com/drbattery/, aber das war vor Jahren, jetzt habe ich das abgenutzt.

Alan Corey
quelle