如何清除/重置智能電池記憶?
所以,我為我的筆記型電腦買了一塊新電池,從一開始,我就遇到了問題。
電池幾乎從製造商處完全放電。我把它插到我的電腦上,電池會報告充電率為 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.
智能電池規範 (SBS) 匯流排不能直接從作業系統訪問。但是,可以通過直接連接到電池引腳的 USB-I2C 適配器直接與電池通信。
編輯: https ://media.blackhat.com/bh-us-11/Miller/BH_US_11_Miller_Battery_Firmware_Public_WP.pdf
編輯 2:我個人設法使用 Raspberry PI 的 i2c 引腳和您提到的命令直接與電池交談。
量規沒有問題;您的電池有缺陷,因此您只需退回並要求更換。4 節鋰離子電池的完全充電電壓為 4.2 x 4 = 16.8 伏。事實上,它只有 15.9 並且幾乎沒有充電,這表明至少有一個電池損壞了。
smi 和 acpi 數據不正確的事實表明,這台筆記型電腦的製造商只是懶得把它修好,所以如果可能的話,我會退回它以獲得退款,不再從他們那裡購買。