upower出力が/sys/class/power_supplyの内容と異なるのはなぜですか?

upower出力が/sys/class/power_supplyの内容と異なるのはなぜですか?

新しく取り付けられたバッテリーのバッテリー残量率の報告が不正確な状況をデバッグしています。

~について前の質問への回答、さまざまなツールがバッテリー自体から直接バッテリー情報を照会します。ただし、バッテリ電圧の出力は/sys/class/power_supply/BAT1/voltage_now次のように異なりますupower

# upower
    voltage:             10.974 V

# /sys/...
10500000

また、統計は2分ごとにリアルタイムでupower更新されるようです。/sys/class/power_supply/BAT1/voltage_nowこれはまた、両方のデータソースのソースが異なる可能性があることを示唆している。

それでは、これら2つのデータソースのデータソースは何ですか?

ベストアンサー1

ただし、バッテリ電圧の出力/sys/class/power_supply/BAT1/voltage_nowupower

これがあなたの問題です。

また、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'

それでは、これら2つのデータソースのデータソースは何ですか?

データソースupowerはですupowerdupowerdからデータを読み取り、/sys/.../BAT1/*履歴をに保存します/var/lib/upower/。設定されたポーリング時間より前にupower要求が送信されると、応答が行われ、履歴値が返されます。Upowerupowerdlimiting data to last 120 seconds

おすすめ記事