GentooLinuxでfancontrolとサスペンド
GentooLinuxマシンのOSからファン回転数を制御をするfancontrolについての話題です。今回はその導入法は省略します。さて。温度によってファンの回転数を増減させるのには成功しました。しかし、問題が発生。
サスペンド状態にした後スリープから復帰させると、ファン速度が最大になってしまいます。これはよろしくないことです。
linux#>/etc/init.d/fancontrol restart
とrootでサービスを再起動すると元に戻りますが、毎回コレをするのは面倒です。どうなっているのでしょう。
設定で回避できそうな項目もないために、ググって情報を探すと、同様な事象が見つかりました。
http://askubuntu.com/questions/531882/high-fan-speed-after-suspend
http://efod.se/blog/archive/2013/03/02/fancontrol-not-working-after-resume
まあ、素朴というか、対処療法的ですが、サスペンドからの復帰時にサービスを再起動するというのが現状での解決策なようです。 ()
1.
linux#> vim /etc/pm/sleep.d/10_fancontrol
を適当なエディタで作ります。内容は以下の通り。
#!/bin/sh
case "$1" in
resume)
exec service fancontrol restart;;
esac
上記で復帰時にエラーになる場合があるので、下記のように休止時にサービスを停止する方が良いようです。カーネルバージョンによるかもしれません。(2017/12/21追記)
#!/bin/sh case "$1" in resume | thaw) exec /etc/init.d/fancontrol start;; hibernate | suspend) exec /etc/init.d/fancontrol stop;; esac
2.このファイルに実行権限をつけます。
linux#>chmod +x /etc/pm/sleep.d/10_fancontrol
これで、サスペンド後にもfancontrolが正常に動作します(というか再起動する)。ubuntuユーザさんのページでしたが、参考になりました。なお、最近のubuntuもsystemdになってしまいましたので、systemd な人はディレクトリと内容が異なります(サスペンドを管理しているプログラムがpm-utilsでないと思われるため)のでご留意ください。(上記サイトによれば、/lib/systemd/system-sleep
#!/bin/bash case "$1" in post) exec service fancontrol restart;; esac
とのことですが、当方では未検証)