
새로 설치된 배터리에 대해 배터리 잔량 비율 보고가 부정확한 상황을 디버깅하고 있습니다.
~에 대한이전 질문에 대한 답변, 다양한 도구가 배터리 자체에서 직접 배터리 정보를 쿼리합니다. 그러나 배터리 전압의 출력은 /sys/class/power_supply/BAT1/voltage_now
다음과 같이 다양합니다 upower
.
# upower
voltage: 10.974 V
# /sys/...
10500000
또한 통계는 2분마다 실시간으로 upower
업데이트되는 것처럼 보입니다 . /sys/class/power_supply/BAT1/voltage_now
이는 또한 두 데이터 소스의 출처가 다를 수 있음을 시사합니다.
그렇다면 이 두 데이터 소스의 데이터 소스는 무엇입니까?
답변1
그러나 배터리 전압의 출력
/sys/class/power_supply/BAT1/voltage_now
은upower
이것이 당신의 문제입니다.
또한 upower는 2분마다 통계를 업데이트합니다.
여기에 직접 답하셨습니다.. 업데이트 시간일 뿐입니다. 업데이트 시 cat voltage_now
실행 하면 upower
동일한 결과를 얻을 수 있습니다.
$ upower -i /org/freedesktop/UPower/devices/battery_BAT1 |egrep 'updated|voltage'; cat /sys/class/power_supply/BAT1/voltage_now
updated: Mon 17 Feb 2020 07:07:31 AM CAT (0 seconds ago)
voltage: 17.156 V
17156000
그럴 때 참고하세요고쳐 쓰다시간은0초 전, 그 값은 동일합니다. 명령을 여러 번 시도하면 시간이 다를 때 더 큰 차이를 볼 수 있습니다.120초 전.
업데이트된 값을 즉시 제공 하려면 upower
다음을 사용하여 강제로 새로 고칠 수 있습니다.
dbus-send --print-reply --system --dest=org.freedesktop.UPower /org/freedesktop/UPower/devices/battery_BAT1 org.freedesktop.UPower.Device.Refresh; upower -i /org/freedesktop/UPower/devices/battery_BAT1 |egrep 'updated|voltage'
그렇다면 이 두 데이터 소스의 데이터 소스는 무엇입니까?
데이터 소스 upower
는 입니다 upowerd
. upowerd
에서 데이터를 읽고 /sys/.../BAT1/*
기록을 에 저장합니다 /var/lib/upower/
. 구성된 폴링 시간 이전 에 upower
요청이 전송 되면 응답이 이루어지고 기록 값이 반환됩니다.Upower
upowerd
limiting data to last 120 seconds