Wie lösche/setze ich den Speicher der Smart-Batterie zurück?

Wie lösche/setze ich den Speicher der Smart-Batterie zurück?

Ich habe also einen neuen Akku für meinen Laptop bekommen und hatte von Anfang an Probleme.

Der Akku wurde vom Hersteller fast vollständig entladen geliefert. Ich steckte ihn in meinen Computer und der Akku meldete, dass die Laderate 0 sei und erreichte daher nie den Wert „vollständig geladen“.

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

Die Batterie wird also geladen. Die Energiekapazität beträgt nur etwa ein Viertel der angegebenen Kapazität (obwohl die Batterie erst ein paar Tage alt ist). Sie liegt bei 73 % und die Laderate ist so gering, dass nicht einmal angezeigt wird, wie lange es dauern würde, bis sie vollständig aufgeladen ist.

Ich weiß, dass man eine Batterie gewissermaßen „kalibrieren“ kann, indem man sie ein paar Stunden lang auflädt, sie dann leerlaufen lässt und sie dann wieder auflädt.

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

i2cdetect -lBerichte:

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 für mich ziemlich seltsam. Bedeutet das, dass nichts mit dem Bus verbunden ist?

Egal welche Adresse ich versuche zu dumpen, das Ergebnis ist immer das gleiche:

i2cdump 0 0x03(alle anderen gültigen Adressen erzeugen die gleiche 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 seine Batterieinformationen vonirgendwo, aber ich kann nicht herausfinden, wie und von wo.

Was den I²C/SMBus-Zugriff auf die Batterie betrifft: keine Ahnung, ob ich etwas falsch mache oder ob es so nicht möglich ist.

Ich möchte wissen, wie ich auf die Daten der Smart Battery zugreifen kann, wie ich sie einstelle (vermutlich mit i2cset) und möglicherweise, wie sie formatiert sind (welche Daten welche Informationen kodieren usw.).


acpi -Vist noch verwirrter:

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

(falsch angegebene Auslegungskapazität usw.)


Die letzte Information, die mir einfällt, ist dmidecodedie Ausgabe:

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 dort alle diese Zeichenfolgen „OEM_Define2“ usw. sehen, die nicht viel aussagen.

dmidecode -t connectorBerichte:

Getting SMBIOS data from sysfs.
SMBIOS 2.4 present.

Antwort1

Der Smart Battery Specification (SBS)-Bus ist vom Betriebssystem aus nicht direkt zugänglich. 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: Mir ist es persönlich gelungen, mithilfe der I2C-Pins eines Raspberry PI und den von Ihnen erwähnten Befehlen direkt mit der Batterie zu kommunizieren.

Antwort2

Mit der Anzeige ist alles in Ordnung; Ihr Akku ist defekt, Sie müssen ihn also nur zurückgeben und Ersatz verlangen. Ein Lithium-Ionen-Akku mit 4 Zellen hat eine Spannung von 4,2 x 4 = 16,8 Volt im voll geladenen Zustand. Die Tatsache, dass er nur bei 15,9 Volt steht und kaum Ladung aufnimmt, deutet darauf hin, dass mindestens eine Zelle beschädigt ist.

Die Tatsache, dass die SMI- und ACPI-Daten falsch sind, weist darauf hin, dass sich der Hersteller dieses Laptops einfach nicht die Mühe gemacht hat, ihn richtig zu bauen. Daher würde ich ihn, wenn möglich, gegen Erstattung des Kaufpreises zurückgeben und nicht wieder bei ihnen kaufen.

Antwort3

Sind Sie sicher, dass es sich überhaupt um eine Smart-Batterie handelt? Die in meinem HP Pavilion ist es nicht.

Und woher Sie die Batterie haben, ist wichtig. Ich habe 3 oder 4 Versuche gebraucht, um eine funktionierende Batterie für meinen Dell zu bekommen, indem ich billige Batterien gekauft habe. Ich hatte endlich Glück beihttp://drpowerglobal.com/drbattery/aber das ist schon Jahre her, jetzt ist das Teil abgenutzt.

verwandte Informationen