首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何清除/重置智能电池内存?

如何清除/重置智能电池内存?
EN

Unix & Linux用户
提问于 2016-10-21 07:02:21
回答 3查看 20.2K关注 0票数 12

所以,我为我的笔记本买了一个新电池,从一开始,我就有问题了。

电池几乎全部从制造商排出。我把它插到我的电脑里,面糊会报告收费率是0,因此永远达不到“完全充电”的水平。

在经历了几分钟的X11崩溃之后,我现在在这里(upower -i /org/freedesktop/UPower/devices/battery_BAT0):

代码语言:javascript
复制
  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报告:

代码语言:javascript
复制
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):

代码语言:javascript
复制
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 (所有其他有效地址产生相同的输出):

代码语言:javascript
复制
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,2,C/ SMBus的电池访问:不知道我是不是做错了什么,或者是不可能的。

我想知道如何访问智能电池数据,如何设置它(大概是用i2cset),以及它可能是如何格式化的(哪些数据编码哪些信息,等等)。

acpi -V甚至更加困惑:

代码语言:javascript
复制
Battery 0: Unknown, 73%
Battery 0: design capacity 6600 mAh, last full capacity 1680 mAh = 25%
Adapter 0: on-line

(设计能力报告不正确等)

我能得到的最后一点信息是dmidecode输出:

代码语言:javascript
复制
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报告:

代码语言:javascript
复制
Getting SMBIOS data from sysfs.
SMBIOS 2.4 present.
EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2017-03-16 04:51:12

智能电池规范(SBS)总线不能直接从操作系统访问。然而,可以通过直接连接到电池引脚的USBI2C适配器与电池直接通信。

编辑:https://media.blackhat.com/bh-us-11/Miller/BH_我们_11_米勒_电池_固件_公共的_WP.pdf

编辑2:我亲自设法使用Raspberry的i2c引脚和您提到的命令直接与电池对话。

票数 5
EN

Unix & Linux用户

发布于 2017-03-16 13:18:06

计量器没有什么问题,你的电池有问题,所以你只需要归还它,并要求更换。4电池锂离子电池的全充电电压为4.2x4= 16.8伏特.它只坐15.9,几乎不充电,这一事实表明至少有一个牢房被损坏。

smi和acpi数据不正确这一事实表明,这台笔记本电脑的制造商只是不能费心把它建好,所以如果可能的话,我会把它退回去,不再从他们那里购买。

票数 1
EN

Unix & Linux用户

发布于 2018-12-01 23:32:35

你确定这是个智能电池吗?我惠普馆里的那个不是。

还有你从哪里弄到电池的问题。我花了三四次才为我的戴尔买了一台电池,买了便宜的电池。我终于在http://drpowerglobal.com/drbattery/取得了好运,但那是几年前的事了,现在我已经把它穿坏了。

票数 -1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/317864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档