GNU/Linux >> Linux の 問題 >  >> Ubuntu

Linux で ASUS ラップトップのバッテリー充電を制限する (充電しきい値を設定する) 方法

新しい 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 を変更します バッテリーの名前 (BAT0BAT1 または 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)


Ubuntu
  1. LinuxでプロセスのCPU使用率を制限する方法

  2. 特定のプロセスのリソース使用量を制限するにはどうすればよいですか?

  3. Linux上のASUSラップトップの充電しきい値をbatでロードするだけです

  1. UbuntuLinuxで開いているポートを表示/確認する方法

  2. UbuntuLinuxでCPULimitを使用してCPU使用率を制限する方法

  3. Linuxでラップトップのバッテリー性能を向上させる方法

  1. UbuntuにLinux用のAndroidファイル転送をインストールする方法

  2. sudoセッションの制限時間を指定する方法

  3. Ubuntu20.04LTSでSudoセッションの時間制限を指定する方法