2023-11-25 Sat: EndeavourOS で充電管理する
私が使用している EndeavourOS には、power-profiles というソフトウェアが導入されている
そのため TLP という充電管理と競合してしまうため。他の手段を模索する
状態確認
まずは acpi モジュールに何が使われているかの確認
code:sh
dmesg | grep acpi
私の場合は、 thinkpad_apciであった。ThinkPad X13 と新し目のものなのでこのモジュールとなるよう。
次に充電時に使用される管理ファイルを確認
code:sh
cat /sys/class/power_supply/BAT0/charge_control_start_threshold #=> 0 cat /sys/class/power_supply/BAT0/charge_control_end_threshold #=> 100 戻り値は「でしょうね」と言った感じ。
古めのモジュールだと charge_start_threshold、charge_stop_thresholdというファイルを見ているらしい。
udev ルールの作成
上記のファイルの値を更新すればよいのだけど。それだけでは再起動後に元の木阿弥となるので、udev にルールを追加する
今回の場合、/etc/udev/rule.d に追加する形となるよう
code:sh
sudo nvim /etc/udev/rule.d/90-custom-battery.rules
code:rules
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_NAME}=="BAT0", \
RUN+="/bin/sh -c 'echo 60 > /sys/class/power_supply/BAT0/charge_control_start_threshold'", \
RUN+="/bin/sh -c 'echo 80 > /sys/class/power_supply/BAT0/charge_control_end_threshold'"
60% で充電開始、80% で充電終了とした。
udev ルールの適用
code:sh
sudo udevadm control --reload-rules
sudo udevadm trigger
最後に確認
code:sh
cat /sys/class/power_supply/BAT0/charge_control_start_threshold #=> 60 cat /sys/class/power_supply/BAT0/charge_control_end_threshold #=> 80 設定後、充電をしてみたらちゃんと 80% で止まっているので、charge_control_*の方であっていたみたい