1. 序章
使用しているLinuxディストリビューションのデスクトップ環境に応じて、デスクトップにバッテリーステータスインジケーターがある場合とない場合があります。 場合によっては、コマンドラインを使用してバッテリーの状態を確認する必要があります。
このチュートリアルでは、コマンドを使用してバッテリーの状態(充電状態と電力の割合)を確認するいくつかの方法を見ていきます。
2. upowerを使用する
upowerは、UPowerデーモンのコマンドラインクライアントであり、ほとんどのLinuxディストリビューションでシステム全体の電源管理を担当します。 このコマンドを使用してバッテリーに関する情報を取得する前に、接続されているバッテリーのパスを把握する必要があります。 これは、 upower-eまたはupower–enumerateを使用して実行できます。
$ upower -e
/org/freedesktop/UPower/devices/line_power_AC
/org/freedesktop/UPower/devices/battery_BAT0
/org/freedesktop/UPower/devices/DisplayDevice
デバイス名が「battery..」で始まる2行目は、私たちが探しているものです。 使用しているディストリビューションに応じて、通常はbattery_BAT0またはbattery_BAT1です。
このパスを取得したら、 upower-iを使用してバッテリーに関する詳細情報を取得できます。
$ upower -i /org/freedesktop/UPower/devices/battery_BAT0
native-path: BAT0
vendor: LGC-LGC3.0
model: DELL 49VTP27
serial: 14057
power supply: yes
updated: Monday 18 April 2022 07:45:28 AM (105 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: charging
warning-level: none
energy: 53.5464 Wh
energy-empty: 0 Wh
energy-full: 57.3981 Wh
energy-full-design: 48.84 Wh
energy-rate: 2.4531 W
voltage: 12.564 V
time to full: 1.6 hours
percentage: 93%
capacity: 100%
technology: lithium-ion
icon-name: 'battery-full-charging-symbolic'
History (rate):
1650248128 2.453 charging
言うまでもなく、 grep またはその他のコマンドを使用して、出力を必要な形式に処理できます。
$ upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep percentage | grep -o "[0-9]*"
93
$ upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep state | cut -d ':' -f2 | xargs
charging
最近では、ほとんどのデバイスにバッテリーが1つしかないため、-dパラメーターを指定してupowerコマンドを使用することもできます。これにより、接続されているすべてのデバイスの情報が基本的に出力されます。
$ upower -d
Device: /org/freedesktop/UPower/devices/line_power_AC
native-path: AC
power supply: yes
updated: Thursday 21 April 2022 07:42:11 AM (658 seconds ago)
has history: no
has statistics: no
line-power
warning-level: none
online: yes
icon-name: 'ac-adapter-symbolic'
Device: /org/freedesktop/UPower/devices/battery_BAT0
native-path: BAT0
vendor: LGC-LGC3.0
model: DELL 49VTP27
serial: 14057
power supply: yes
updated: Thursday 21 April 2022 07:52:12 AM (57 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: charging
warning-level: none
energy: 48.507 Wh
energy-empty: 0 Wh
energy-full: 57.3981 Wh
energy-full-design: 48.84 Wh
energy-rate: 7.1262 W
voltage: 12.544 V
time to full: 1.2 hours
percentage: 93%
capacity: 100%
technology: lithium-ion
icon-name: 'battery-full-charging-symbolic'
History (rate):
1650507732 7.126 charging
....more info
このコマンドは、デバイスごとに upower -e を実行し、続いて upower -i を実行するのと同じであるため、プロセスの1ステップを節約できます。
3. / sys / class /power_supplyディレクトリの使用
Linuxカーネルは、システムおよび接続されているハードウェアデバイスに関するさまざまな情報を、sysfsと呼ばれる読み取り専用ファイルシステムで公開します。 / sysディレクトリを使用してこのファイルシステムにアクセスできます。 ls コマンドを使用して、/ sys / class / power_supplyディレクトリの下にバッテリーデバイスディレクトリを見つけることができます:
$ ls /sys/class/power_supply/
AC BAT0
BAT0は私たちが探しているディレクトリです。 使用しているLinuxディストリビューションに応じて、通常はBAT0またはBAT1です。 次に、ディレクトリ内のファイルからバッテリーに関するさまざまな情報を取得できます。 ファイルの一覧表示から始めて、どのファイルが存在するかを確認できます。
ls /sys/class/power_supply/BAT0
alarm charge_full_design device power subsystem voltage_min_design
capacity charge_now hwmon2 present technology voltage_now
capacity_level current_now manufacturer serial_number type
charge_full cycle_count model_name status uevent
これで、対応するファイルの内容を読み取って、必要なデータを取得できます。
$ cat /sys/class/power_supply/BAT0/capacity
100
$ cat /sys/class/power_supply/BAT0/status
Full
上記のスニペットでは、 capacity はバッテリーの充電率を示し、statusはバッテリーが充電中か放電中かを示します。
4. 結論
この記事では、コマンドラインを使用してバッテリーの状態に関する情報を取得するための2つの異なる方法について説明しました。
upowerコマンドを使用すると、1つまたは2つのコマンドを使用して、バッテリーの状態に関する詳細な出力を出力できます。
/ sys / class / power_supply / BAT0 /(またはBAT1)ディレクトリ内のファイルを使用して情報にアクセスすることもできます。ここでの情報は非常に生で離散的であり、フォーマットはありません。 したがって、必要に応じて、bashスクリプトでデータを直接使用できます。