
그래서 노트북용 새 배터리를 구입했는데, 처음부터 문제가 발생했습니다.
제조업체에서 배터리가 거의 완전히 방전된 상태로 배송되었습니다. 컴퓨터에 연결했는데 배터리에서 충전율이 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'
따라서 배터리가 충전 중이고 에너지 용량은 설계된 것의 약 4분의 1에 불과하며(배터리가 며칠밖에 사용되지 않았음에도 불구하고) 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.
답변1
SBS(스마트 배터리 사양) 버스는 OS에서 직접 액세스할 수 없습니다. 그러나 배터리 핀에 직접 연결된 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.8V입니다. 15.9에 불과하고 충전을 거의 하지 않는다는 사실은 적어도 하나의 셀이 손상되었음을 나타냅니다.
smi 및 acpi 데이터가 정확하지 않다는 사실은 이 노트북 제조업체가 제대로 제작할 수 없다는 것을 의미하므로 가능하면 환불을 위해 반품하고 다시 구매하지 않을 것입니다.
답변3
스마트 배터리라고 확신하시나요? 내 HP Pavilion에 있는 것은 그렇지 않습니다.
그리고 배터리를 어디서 얻었는지가 중요합니다. Dell에서 저렴한 배터리를 구매하기 위해 작동하는 배터리를 얻으려면 3~4번의 시도가 필요했습니다. 드디어 운이 좋았어http://drpowerglobal.com/drbattery/하지만 그건 몇 년 전 일이고, 지금은 그 옷을 닳아버렸어요.