
因此,我為我的筆記型電腦買了一塊新電池,但從一開始我就遇到了問題。
製造商出廠時的電池幾乎完全放電。我將其插入電腦,電池會報告充電率為 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%,而且充電率如此之小,它不甚至報告充滿電需要多少時間。
現在,我知道你可以「校準」電池,方法是充電幾個小時,然後讓它耗盡,然後再次充電。
但這似乎不是正確的做法。我想知道我是否無法透過直接存取智慧數據中小企業總線。
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.
答案1
智慧型電池規格 (SBS) 匯流排無法從作業系統直接存取。然而,可以透過直接連接到電池引腳的 USB-I2C 適配器直接與電池通訊。
編輯: https://media.blackhat.com/bh-us-11/Miller/BH_US_11_Miller_Battery_Firmware_Public_WP.pdf
編輯 2:我個人設法使用 Raspberry PI 的 i2c 引腳和您提到的命令直接與電池對話。
答案2
儀表沒有任何問題;您的電池有缺陷,因此您只需將其退回並要求更換即可。 4 芯鋰離子電池充滿電後的電壓為 4.2 x 4 = 16.8 伏特。事實上,它的電壓僅為 15.9 並且幾乎沒有充電,這表明至少有一個電池已損壞。
smi 和 acpi 數據不正確的事實表明,這台筆記型電腦的製造商根本懶得去建造它,所以如果可能的話,我會退貨以獲得退款,並且不再從他們那裡購買。
答案3
你確定它是智慧電池嗎?我的 HP Pavilion 裡的那台不是。
電池的來源也很重要。我花了三、四次嘗試才為我的戴爾買了一塊可以工作的電池,並購買了便宜的電池。我終於有好運了http://drpowerglobal.com/drbattery/但那是幾年前的事了,現在我已經把它穿壞了。