前回はPowerTOPでおすすめされたスクリプトを起動時に実行するようにしました。でも、私の場合はこれでは十分ではありませんでした。
何が十分じゃなかったかって言うと、一度でもACアダプタを挿すと、一部のパラメータが元に戻ってしまうことです。
こにゃこにゃ調べてみたんですけど、丁度いい資料がありましたよ。
Gentoo Linux ドキュメント -- 電力管理ガイドこれを読むとACPIイベント(蓋を閉じたり、電源ボタンを押したり)をacpidがキャッチするたびに何らかの動作を行っているみたいですね。何のACPIイベントで動作を行うかは/etc/acpi/events/に、実際に行われる動作は/etc/acpi/に書かれているみたいです。
一部のパラメータが元に戻ってしまう現象も、ACアダプタを挿す、というACPIイベントをacpidがキャッチして、何らかの動作をしているんでしょう。
問題はまたACアダプタを抜いた時に、パラメータがACアダプタを挿す前の状態に戻ってくれないところなので、抜いた時に再度スクリプトを実行してくれれば良いわけです。それでは、私の場合に沿って書いていきます。
私の場合、/sys/class/scsi_host/host*/link_power_management_policyの値が"min_power"になるようにしたのに、"max_performance"になっていました。他には変化はありませんでした。(host*はhost0、host1、などのことを指しています)
また値が"min_power"になるよう/etc/acpi/にスクリプトを書きました。
/etc/acpi/powertop.sh
#!/bin/sh echo 'min_power' > '/sys/class/scsi_host/host0/link_power_management_policy' echo 'min_power' > '/sys/class/scsi_host/host1/link_power_management_policy' echo 'min_power' > '/sys/class/scsi_host/host2/link_power_management_policy echo 'min_power' > '/sys/class/scsi_host/host3/link_power_management_policy' echo 'min_power' > '/sys/class/scsi_host/host4/link_power_management_policy' echo 'min_power' > '/sys/class/scsi_host/host5/link_power_management_policy'
あと、この/etc/acpi/powertop.shがACアダプタを抜いた時に実行されるように、/etc/acpi/events/に書きました。
/etc/acpi/events/powertop
event=battery.* action=/etc/acpi/powertop.sh
あとはacpidを再起動すると反映されているはずです。
# /etc/init.d/acpid restart
ACアダプタを挿して、抜いてから、ちゃんと動いてくれているかpowertopコマンドで確かめてみて下さい。律儀に切り替わってくれているはずです。
もうひとつ付け加えておくと、VM writeback timeoutだけは、SSDを積んでいる人はBadのままの方が良いと思います。/proc/sys/vm/dirty_writeback_centisecsの値が1500より大きかったら、そのままで良いと思います。
肝心の駆動時間はどうなったか、ですか?1時間くらい伸びたかなぁ。では。