Linux で消費電力を節約する方法
Powertop は、バッテリー電力を節約するための優れたツールであり、別のツール acpid の助けを借りて、acpi イベントを観察し、自動的に構成します.
Acpid には、トリガーされたイベントの事前定義されたアクションが付属しています.デフォルトでは、これらのアクションは
アクション「ac_adapter」にはデフォルトのオプションがあります
したがって、AC に接続されているかどうかに関係なく、次のログを表示できます.
この場合、
変更を保存し、AC のプラグを抜くと、ログに次のように表示されます.
変更が機能します.これで、powertop コマンドを追加できます.これは私の
ACなしでラップトップを起動すると、これは機能しないことに注意してください.どのように解決しますか?
次の post に触発されて、新しい systemd ユニットを作成しました.
スクリプト
このようにして、ラップトップの起動時に acpi アクションをシミュレートします.
私の場合、MSI Modern 14 では、すべてのパワートップ オプションが有効になっている場合、バッテリーは 3 時間以上持ちます.
Acpid には、トリガーされたイベントの事前定義されたアクションが付属しています.デフォルトでは、これらのアクションは
/etc/acpi/handler.sh
で定義されています.アクション「ac_adapter」にはデフォルトのオプションがあります
*)
logger "ACPI action undefined: $2"
したがって、AC に接続されているかどうかに関係なく、次のログを表示できます.
journalctl -f
ene 12 20:54:49 msi root[3888]: ACPI action undefined: ACPI0003:00
この場合、
/etc/acpi/handler.sh
を次のように変更する必要があります.ac_adapter)
case "$2" in
ACPI0003:00)
変更を保存し、AC のプラグを抜くと、ログに次のように表示されます.
ene 12 21:00:31 msi root[6101]: AC unpluged
変更が機能します.これで、powertop コマンドを追加できます.これは私の
handler.sh
です:ac_adapter)
case "$2" in
ACPI0003:00)
case "$4" in
00000000)
powertop --auto-tune
echo 'on' > '/sys/bus/usb/devices/3-2/power/control' # USB USB Receiver [Logitech]
echo 'enabled' > '/sys/class/net/wlo1/device/power/wakeup'
echo 'enabled' > '/sys/bus/usb/devices/usb1/power/wakeup'
echo 'enabled' > '/sys/bus/usb/devices/usb2/power/wakeup'
echo 'enabled' > '/sys/bus/usb/devices/usb3/power/wakeup'
echo 'enabled' > '/sys/bus/usb/devices/usb4/power/wakeup'
echo 'enabled' > '/sys/bus/usb/devices/3-2/power/wakeup'
echo 'enabled' > '/sys/bus/usb/devices/3-5/power/wakeup'
echo 'enabled' > '/sys/bus/usb/devices/3-10/power/wakeup'
logger 'AC unpluged'
;;
00000001)
echo 'disabled' > '/sys/class/net/wlo1/device/power/wakeup'
echo 'disabled' > '/sys/bus/usb/devices/usb1/power/wakeup'
echo 'disabled' > '/sys/bus/usb/devices/usb2/power/wakeup'
echo 'disabled' > '/sys/bus/usb/devices/usb3/power/wakeup'
echo 'disabled' > '/sys/bus/usb/devices/usb4/power/wakeup'
echo 'disabled' > '/sys/bus/usb/devices/3-2/power/wakeup'
echo 'disabled' > '/sys/bus/usb/devices/3-5/power/wakeup'
echo 'disabled' > '/sys/bus/usb/devices/3-10/power/wakeup'
logger 'AC pluged'
;;
ACなしでラップトップを起動すると、これは機能しないことに注意してください.どのように解決しますか?
次の post に触発されて、新しい systemd ユニットを作成しました.
/usr/lib/systemd/system/acpid-boot.service
[Unit]
Description=ACPI boot handle
Documentation=man:acpid(8)
[Service]
Type=oneshot
ExecStart=/usr/local/sbin/acpi-boot-handle.sh
[Install]
WantedBy=multi-user.target
スクリプト
/usr/local/sbin/acpi-boot-handle.sh
には以下が含まれます.#!/usr/bin/env bash
set -euo pipefail
if [[ $(acpi -a | grep on) ]]
then
onBit=1
else
onBit=0
fi
/etc/acpi/handler.sh ac_adapter ACPI0003:00 foo 0000000$onBit
このようにして、ラップトップの起動時に acpi アクションをシミュレートします.
私の場合、MSI Modern 14 では、すべてのパワートップ オプションが有効になっている場合、バッテリーは 3 時間以上持ちます.
Reference
この問題について(Linux で消費電力を節約する方法), 我々は、より多くの情報をここで見つけました https://dev.to/callepuzzle/how-to-save-power-consumption-in-linux-4a2eテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol