power_supply 파일 이해

power_supply 파일 이해

이것은 매우 간단한 질문이지만 아쿠아 출력이 있다는 사실에 그 단순성이 있다고 생각합니다.

/sys/class/power_supply상황은 호스팅되는 파일 과 시스템 배터리 모니터링을 관리하는 파일을 더 잘 이해하고 싶습니다 . 내 경우에는 배터리가 있는 노트북을 사용하는데 그 디렉토리는 에 있습니다 /sys/class/power_supply/BAT0.AC 어댑터/sys/class/power_supply/AC0내가 이해하는 한, 인터페이스는여기.

배터리 인터페이스 내부에서 다양한 파일을 발견했습니다.

/sys/class/power_supply/BAT0$ ls
alarm               model_name
capacity            power
capacity_level      present
charge_full         serial_number
charge_full_design  status
charge_now          subsystem
current_now         technology
cycle_count         type
device              uevent
hwmon2              voltage_min_design
manufacturer        voltage_now

나는 이것이 capacity현재 배터리 비율을 의미한다는 것을 알고 있습니다. 나는 또한 문맥을 통해 이해합니다 capacity_level.status

/sys/class/power_supply/BAT0$ cat capacity
81

/sys/class/power_supply/BAT0$ cat capacity_level
Normal

/sys/class/power_supply/BAT0$ cat status
Discharging

charge_full그러나 , 또는 다음과 같은 다른 파일을 이해할 수 없습니다 charge_full_design.charge_nowcurrent_nowcycle_count

/sys/class/power_supply/BAT0$ cat charge_full
900000
/sys/class/power_supply/BAT0$ cat charge_full_design
4100000
/sys/class/power_supply/BAT0$ cat charge_now
630000
/sys/class/power_supply/BAT0$ cat current_now
1191000
/sys/class/power_supply/BAT0$ cat cycle_count
0

이 과정 에서는 uevent이전의 각 변수를 보고 자세한 내용을 알아볼 수 있습니다.

POWER_SUPPLY_NAME=BAT0
POWER_SUPPLY_TYPE=Battery
POWER_SUPPLY_STATUS=Discharging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Li-ion
POWER_SUPPLY_CYCLE_COUNT=0
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=11400000
POWER_SUPPLY_VOLTAGE_NOW=11759000
POWER_SUPPLY_CURRENT_NOW=1089000
POWER_SUPPLY_CHARGE_FULL_DESIGN=4100000
POWER_SUPPLY_CHARGE_FULL=900000
POWER_SUPPLY_CHARGE_NOW=675000
POWER_SUPPLY_CAPACITY=75
POWER_SUPPLY_CAPACITY_LEVEL=Normal
POWER_SUPPLY_MODEL_NAME=standard
POWER_SUPPLY_MANUFACTURER=OEM
POWER_SUPPLY_SERIAL_NUMBER=00001

배터리 용량의 백분율에 대한 명확한 이해는 POWER_SUPPLY_CHARGE_NOW( /sys/class/power_supply/BAT0/charge_now) ~ POWER_SUPPLY_CHARGE_FULL( /sys/class/power_supply/BAT0/charge_full)의 계산에서 나옵니다: 100*675000/900000=75.

하지만 이러한 가치를 어떻게 이해합니까? 그거 어디서 났어 POWER_SUPPLY_CHARGE_NOW? 위 값의 전압에 간섭이 있습니까?

답변1

Linux 전원 장치 클래스가 어떻게 정의되는지 알고 싶을 수도 있습니다.include/linux/power_supply.hLinux 커널 소스 코드에서. 여기에 설명된 데이터 구조의 값은 다음과 같이 표시됩니다 /sys/class/power_supply/*.

/*
 * All voltages, currents, charges, energies, time and temperatures in uV,
 * µA, µAh, µWh, seconds and tenths of degree Celsius unless otherwise
 * stated. It's driver's job to convert its raw values to units in which
 * this class operates.
 */

/*
 * For systems where the charger determines the maximum battery capacity
 * the min and max fields should be used to present these values to user
 * space. Unused/unknown fields will not appear in sysfs.
 */

따라서 모든 charge_*값은 마이크로암페어시 단위이고 current_now단위는 마이크로암페어입니다.

POWER_SUPPLY_VOLTAGE_MIN_DESIGN=11400000
POWER_SUPPLY_VOLTAGE_NOW=11759000

배터리의 최소 설계 전압(= 이 전압 이하에서는 절대로 방전되지 않음)은 11400000 마이크로볼트 = 11.4V입니다.

현재 전압 레벨은 11.759V입니다.

POWER_SUPPLY_CURRENT_NOW=1089000

이제 배터리는 1.089A를 제공합니다.

POWER_SUPPLY_CHARGE_FULL_DESIGN=4100000
POWER_SUPPLY_CHARGE_FULL=900000
POWER_SUPPLY_CHARGE_NOW=675000

새 배터리일 때 배터리의 완전 충전 용량은 4.10암페어 시간이라고 주장했지만 이후 성능이 저하되어 현재는 완전 충전 용량이 0.9암페어 시간에 불과합니다. 현재 0.675암페어 시간이 남았습니다.

따라서 현재 배터리에서 끌어오는 전류를 기준으로 간단히 추정하면 0.675 Ah / 1.089 A = 약 0.62시간, 즉 약 37분 정도 남은 충전 시간이 됩니다.

파일 power_supply.h에는 다양한 값의 의미를 직접적으로 설명하는 기타 유익한 설명이 많이 있습니다. 이 댓글을 읽어보고 싶을 수도 있습니다.

관련 정보