Как очистить / сбросить память смарт-батареи?

9

Итак, я получил новую батарею для моего ноутбука, и с самого начала у меня проблемы.

Аккумулятор пришел почти полностью разряженным от производителя. Я подключил его к своему компьютеру, и тесто сообщило бы, что уровень заряда равен 0, и, следовательно, никогда не достигнет «полностью заряженного»

Через пару минут и после сбоя X11, я теперь в этом ( 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'

Таким образом, батарея заряжается, ее энергетическая емкость составляет всего около четверти от того, что она была разработана (даже если батарее всего пара дней), она составляет 73%, а скорость зарядки настолько мала, что не даже сообщить, сколько потребуется до полной зарядки.

Теперь я знаю, что вы можете «откалибровать» батарею, зарядив ее на пару часов, затем дать ей разрядиться и снова зарядить.

Однако это не совсем верный способ. Мне интересно, не могу ли я получить доступ к интеллектуальным данным напрямую через SMBus .

i2cdetect -l доклады:

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

Итак, я попытался исследовать 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: -- -- -- -- -- -- -- --                         

Это довольно странно для меня, значит ли это, что к автобусу ничего не подключено?

Независимо от того, какой адрес я пытаюсь получить, результат всегда один и тот же:

i2cdump 0 0x03 (все другие действительные адреса выдают тот же результат):

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

Вот как далеко я дошел.

Система откуда- то получает информацию об аккумуляторе , но я не могу понять, как и откуда.

Что касается доступа I²C / SMBus к аккумулятору: не знаю, делаю ли я что-то не так, или это невозможно.

Я хотел бы знать, как получить доступ к данным смарт-батареи, как их установить (предположительно с помощью i2cset) и, возможно, как они отформатированы (какие данные кодируют, какая информация и т. Д.)


acpi -V еще больше запутался

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

(неправильно указана расчетная мощность и т. д.)


Последний бит информации, который я могу придумать, это dmidecodeвывод:

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

Вы можете увидеть все эти строки "OEM_Define2" и т. Д., Которые мало что говорят.

dmidecode -t connector доклады:

Getting SMBIOS data from sysfs.
SMBIOS 2.4 present.
Полемон
источник
Я попытался откалибровать его старомодным способом (запустить его без подзарядки и зарядить за ночь). Это все так же плохо. это ОТ моего вопроса, но я думаю, моя батарея сломана.
Полемон

Ответы:

5

Шина Smart Battery Specification (SBS) не доступна напрямую из ОС. Тем не менее, можно напрямую обмениваться данными с аккумулятором через адаптер USB-I2C, подключенный непосредственно к контактам аккумулятора.

РЕДАКТИРОВАТЬ: https://media.blackhat.com/bh-us-11/Miller/BH_US_11_Miller_Battery_Firmware_Public_WP.pdf

РЕДАКТИРОВАТЬ 2: Мне лично удалось поговорить напрямую с аккумулятором, используя контакты Raspberry PI i2c и команды, которые вы упомянули.

RetroDroid
источник
1

Там нет ничего плохого с датчиком; Ваш аккумулятор неисправен, поэтому вам нужно просто вернуть его и потребовать замены. 4-элементная литий-ионная батарея имеет полностью заряженное напряжение 4,2 x 4 = 16,8 Вольт. Тот факт, что он стоит всего 15,9 и почти не заряжается, указывает на повреждение хотя бы одной ячейки.

Тот факт, что данные smi и acpi неверны, указывает на то, что производитель этого ноутбука просто не удосужился построить его правильно, поэтому я бы возвратил его за возмещение, если это возможно, и больше не покупал у них.

psusi
источник
-1

Вы уверены, что это даже умный аккумулятор? Такого в моем павильоне HP нет.

И где вы взяли аккумулятор имеет значение. Мне потребовалось 3 или 4 попытки получить работающую батарею для моего Dell, покупающего дешевые батареи. Мне наконец-то повезло на http://drpowerglobal.com/drbattery/, но это было много лет назад, а теперь я его измотал.

Алан Кори
источник