新しい ASUS ラップトップは、バッテリー寿命を延ばすバッテリー レベルの制限をサポートしています。この記事では、Linux で ASUS ラップトップのバッテリー充電しきい値を設定する方法について説明します。
バッテリーの寿命は、使用年数、高温、充電サイクル数、完全充電までの時間によって影響を受けます。バッテリー充電しきい値は、フル充電 (100%) の持続時間を短縮し、バッテリーの状態/寿命を改善します。
ASUS ノートパソコンは、Linux 5.4 から充電しきい値の設定をサポート .充電しきい値を設定するカーネル WMI メソッドは、最初のバッテリ (BAT0
) であると仮定して、バッテリを指定する方法を提供しません。 )。ただし、一部の新しい ASUS ラップトップでは、プライマリ バッテリー BAT0
に接続されません。 、しかし BATT
(例:Zenbook UM431DA) および BAT1
(例:ASUS TUF Gaming FX706II)。 [編集] また、BATC もあります。
そのため、Linux 5.4 以降の ASUS ラップトップはバッテリー充電プロセスの制限をサポートしていますが、これは BAT0
のラップトップのみを対象としています。 . BATT
の ASUS ラップトップの場合 BAT1
の場合、プライマリ バッテリーの名前として Kernel 5.7 が必要です。 この 5.8 カーネルが必要です (バッテリー名を正確に確認する方法については、以下の手順を参照してください)。 [編集] バッテリー名 BATC を使用する ASUS ラップトップの場合、Linux 5.9 以降が必要です。
同様に、すべての ASUS ラップトップがバッテリー充電しきい値の設定をサポートしているわけではないため、ASUS ラップトップのモデルによっては、これが機能する場合と機能しない場合があります。私が見つけたサポートされているデバイスのリストはありません。
ASUS ノートブックのバッテリー充電しきい値を設定するカーネル WMI メソッドは、停止値 (charge_control_end_threshold
) (開始しきい値も設定できません)。バッテリーの充電レベルが充電停止しきい値よりも高い場合、AC 主電源が接続されている場合、充電停止しきい値まで放電されません。
そしてもう一つ注意。私の ASUS ZenBook 14 UX433FAC と GNOME Shell の Ubuntu 20.04 では、バッテリー レベルが充電しきい値以上で、ラップトップが接続されているときにバッテリー レベルが制限されている場合、トップ パネルのバッテリー インジケーターが残り時間から変化します。バッテリーがバッテリーを充電するために残っている時間まで放電するまで、主電源に接続します。これは、バッテリーが充電されていない場合でも発生します。しばらくすると (ラップトップを主電源に接続した直後ではありません)、バッテリー インジケーターは意図したとおりに「充電されていません」に変わります。
ASUS に加えて、一部の Lenovo および Huawei (後者は Linux 5.5 でサポートされています) ラップトップも、バッテリー充電の制限をサポートしています。ただし、ASUS ラップトップが 1 台しかなく、他のデバイスでテストできないため、これらの手順は ASUS にのみ適用されます。
これも好きかも:auto-cpufreq は Linux 用の CPU 速度とパフォーマンスのオプティマイザーです
Linux で ASUS ラップトップのバッテリー充電を停止するしきい値を設定する方法
1. ASUS ノートパソコンのバッテリーの名前を調べてください。
ASUSラップトップのバッテリー名を理解することから始めましょう.これは次のコマンドで実行できます:
ls /sys/class/power_supply
このコマンドは次のように表示されます:
AC0 BAT0
この例 (私の ASUS ノートブックから) では、バッテリーの名前は BAT0
です。 、しかし上で述べたように、それはあなたのためでもあります BAT1
または BATT
、これらは ASUS ラップトップのカーネルでサポートされている唯一のバッテリー名です。
2. systemd サービスを作成して、起動時にバッテリー充電を停止するためのしきい値を設定します。
systemd サービスを作成する前に、ラップトップに実際に charge_control_end_threshold
があることを確認してください /sys/class/power_supply/BAT*
で (それなしでは機能しません):
ls /sys/class/power_supply/BAT*/charge_control_end_threshold
このコマンドが charge_control_end_threshold
へのパスを返すとき の場合、お使いの ASUS ノートブックはバッテリー充電の制限をサポートしています。そのようなファイルやディレクトリがないというエラーがコマンドから返された場合、お使いのラップトップは充電しきい値の設定をサポートしていません。
ASUS ラップトップにこのファイルがある場合は、次に進みます。 battery-charge-threshold.service
という名前のファイルを作成します /etc/systemd/system
で .
このファイルは、次の方法で標準のコンソール テキスト エディターで開くことができます。
sudo editor /etc/systemd/system/battery-charge-threshold.service
または、Gedit または使用したい任意のグラフィカル エディターを使用します (たとえば、Gedit でこのファイルをルートとして開くには:gedit admin:///etc/systemd/system/battery-charge-threshold.service
)
このファイルには、以下を含める必要があります:
[Unit]
Description=Set the battery charge threshold
After=multi-user.target
StartLimitBurst=0
[Service]
Type=oneshot
Restart=on-failure
ExecStart=/bin/bash -c 'echo CHARGE_STOP_THRESHOLD > /sys/class/power_supply/BATTERY_NAME/charge_control_end_threshold'
[Install]
WantedBy=multi-user.target
ここで、BATTERY_NAME
を変更します バッテリーの名前 (BAT0
、 BAT1
または BATT
)、および CHARGE_STOP_THRESHOLD
使用する充電停止しきい値 (1 から 100 の間) を使用します。ユーザーは料金のしきい値を任意の値に設定できず、60、80、および 100 にのみ設定できることを読んだことに注意してください。
私が読んだことによると、ラップトップがほとんどの時間プラグに接続されているときに最高のバッテリー寿命を得るには、バッテリー停止充電しきい値を約 50 または 60 に設定します。バッテリーが少し頻繁に使用される場合は、バッテリー停止しきい値を約90。
3.バッテリー充電しきい値の systemd サービスをアクティブ化して開始します。
それでは、新しく作成した Battery Charge Threshold システム サービスを有効にして開始しましょう:
sudo systemctl enable battery-charge-threshold.service
sudo systemctl start battery-charge-threshold.service
systemd 220 を使用すると、サービスを経由して送信できます。 systemctl enable --now
をアクティブ化して開始するには しかし、一部の読者が古いバージョンの systemd を使用している場合に備えて、2 つのコマンドを使用することを好みます。
バッテリーの充電を停止するしきい値を変更したい場合 、この /etc/systemd/system/battery-charge-threshold.service
を編集する必要があります ExecStart
から番号をファイルして変更します 行 (echo
の後) ) を使用する新しい値に変更してから、systemd をリロードし (ファイルの内容が変更されたため)、次のコマンドで systemd サービスを再起動します:
sudo systemctl daemon-reload
sudo systemctl restart battery-charge-threshold.service
4.バッテリー停止しきい値が機能していることを確認してください。
ASUS ラップトップがこれをサポートしている場合、バッテリーの充電制限はステップ 2 で使用した値に設定されているはずです。
これは、ラップトップを battery-charge-threshold.service
で設定されたしきい値まで充電することで確認できます 、次にこのコマンドを使用します:
cat /sys/class/power_supply/BATTERY_NAME/status
BATTERY_NAME
に置き換えます ステップ 1 で説明したように、バッテリーの名前を付けます。
バッテリの充電停止しきい値が機能している場合、コマンドは次の出力を表示する必要があります:
Not Charging
「放電中」と表示されている場合は、ASUS ノートパソコンが実際にバッテリーではなく AC 電源で動作していることを確認してください。ただし、「充電中」と表示されている場合は、ラップトップが充電停止しきい値を超えて充電しているため、これは機能しません。また、ASUS ラップトップがサポートしていないためです (サポートしているとしたら奇妙です) charge_control_end_threshold
手順 2) で述べたように、使用している Linux のバージョンが古すぎて、ASUS ノートブックのバッテリーの充電を制限できないか、または人為的なエラーが原因ですか?️.
おまけ:systemd を使用していない場合は、sudo crontab -e
を実行して cron を使用することもできます。 次に、次の行を貼り付けます (これは 1 行です。行全体を選択するには、行を 3 回クリックします)。 /b>
@reboot echo CHARGE_STOP_THRESHOLD > /sys/class/power_supply/BATTERY_NAME/charge_control_end_threshold
CHARGE_STOP_THRESHOLD
に置き換えます 使用する充電停止しきい値と BATTERY_NAME
ステップ 1 で示したバッテリー名を使用してください。
systemd サービスまたは cron ジョブを使用する理由このガイドを編集した u / esrevartb によると、「udev ルールが機能していないようです。これは、ルールの適用時に batterysysfs パスがまだ初期化されていないか、この特定の charge_control_end_threshold 属性を使用できないためです。このように変更 「.
[[編集] ASUS ラップトップの充電しきい値を簡単に設定するには (systemd サービスの自動セットアップとコマンドで充電しきい値を変更する機能)、現在の充電しきい値を確認するには、bat を参照してください。
ノートパソコンのバッテリー関連:Bwall は Linux (bash スクリプト) 用のバッテリーのアニメーション壁紙です
上記の r / Linux ハードウェア (Thanks u / esrevartb)