그래서 노트북용 새 배터리를 구입했는데 처음부터 문제가 생겼습니다.
제조업체는 배터리를 거의 완전히 방전된 상태로 둡니다. 컴퓨터에 연결했는데 배터리 충전 속도가 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%이고, 충전 속도가 너무 작아서 얼마나 걸리는지 보고하지도 않습니다. 완전히 충전하려면 .
이제는 몇 시간 동안 충전한 다음 방전시키고 다시 충전하여 배터리를 "보정"할 수 있다는 것을 알고 있습니다.
하지만 이는 옳은 일이 아닌 것 같습니다. 스마트 데이터에 직접 접근할 수 없는지 궁금합니다.중소기업 버스.
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.8V입니다. 15.9에 불과하고 충전이 거의 유지되지 않는다는 사실은 배터리 중 하나 이상이 손상되었음을 나타냅니다.
smi 및 acpi 데이터가 정확하지 않다는 사실은 이 노트북 제조업체가 단순히 노트북을 만드는 데 신경을 쓰지 않았다는 것을 의미하므로 가능하다면 환불을 위해 반품하고 다시는 구매하지 않을 것입니다.
답변3
스마트 배터리 맞나요? 내 HP Pavilion에 있는 것은 그렇지 않습니다.
배터리의 출처도 중요합니다. Dell에서 작동하는 배터리를 구하고 값싼 배터리를 구입하는 데 서너 번의 시도가 필요했습니다. 드디어 운이 좋았어http://drpowerglobal.com/drbattery/그런데 그게 몇 년 전 일이라 지금은 낡아버렸어요.