스마트 배터리 메모리를 지우거나 재설정하는 방법은 무엇입니까?

스마트 배터리 메모리를 지우거나 재설정하는 방법은 무엇입니까?

그래서 노트북용 새 배터리를 구입했는데, 처음부터 문제가 발생했습니다.

제조업체에서 배터리가 거의 완전히 방전된 상태로 배송되었습니다. 컴퓨터에 연결했는데 배터리에서 충전율이 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/하지만 그건 몇 년 전 일이고, 지금은 그 옷을 닳아버렸어요.

관련 정보