lm_sensors & fancontrol

たしか Gentoo Wiki にガイドがあったんだけど、今なんかトラブってるらしくて見れない。仕方ないので昔やったときの記憶に頼ってやってみたらうまくいったぽいのでメモメモ。

カーネルの設定

lm_sensors を動かすのに色々必要なので # make menuconfig で

Device Drivers --->
   I2C support --->
      <M> I2C device interface
      I2C Hardware Bus Support --->
         # 今回は nForce3 だったのでこれ
         # よくわかんなかったら、片っ端から <M> にする
         <M> Nvidia nForce 2, nForce3 and nForce4
   Hardware Monitoring support --->
      #よくわかんなかったので、片っ端から <M> にした

として、# make && make modules_install
モジュールを追加しただけって形になってるから不要かなと思ったけど、一応 bzImage を /boot にコピーして再起動しといた

lm_sensors をインストール

#emerge -av lm_sensors すると、最後の message で「sensors-detect してね」とか言われるのでやる。するとほぼ自動で使えるセンサーの設定をしてくれるみたい。
# /etc/init.d/lm_sensors start で起動できたら # sensors で動いてることを確認して # rc-update add lm_sensors default しておく。

fancontrol の設定

pwmconfig というツールで使えるセンサーとPWMを検出して設定ファイルを作ってくれるので、これをやる。最後にセンサーとPWMの対応とか温度を設定できるけどこのツールの画面だとどのセンサーがどこの温度なのかとかよくわかんなかったので、その辺はてきとーに入力して設定ファイルを保存しておく。
そしたら # sensors を見てどのセンサーがどこの温度なのか当たりをつけておいて、/etc/fancontrol を修正しながらどの pwm がどのファンにつながってるのかを確認しておく。
詳しくは # man fancontrol に載ってるけど、/etc/fancontrol の書式が不思議なことになってて

<設定項目名>=<pwm device1>=<設定1> <pwm device2>=<設定2>

みたいに、1行に1項目で、その中で pwm1 も pwm2 も・・・という感じ。
で、MINTEMP を無駄に高くしておくとファンが止まるので、調べたい pwm 以外を全部止めておいてPCケースの中を覗くなんていう方法でどの pwm がどのファンを制御してるのか調べる。/etc/fancontrol を変更して # /etc/init.d/fancontrol restart すると変更が適用される。言うまでもなくファン止めるとか危険なので要注意。
今回は pwm が2個(3個あるのだが3つ目は使ってない)で pwm1=CPU, pwm2=PSU兼ケース、温度は k8temp-pci-00c3 というのに CPU のと it8712-isa-0d00 というのに M/B, CPU, Temp3(どうも使ってないらしい)の4つだった。CPUの温度がセンサー2つあって温度が異なるというのはどういうことなのかわからない。内臓センサーとM/B側のセンサーなんだろうか。

ここまでわかったら温度と回転を設定する。
MAXTEMPとMINTEMPはてきとーに設定して回転数をどうしようか、と思っていたのだけど肝心のMINPWMを書いておくと fancontrol が起動できないなんて困ったことに。使い方間違ってると思うのだが MINSTART と MINSTOP を変更することで回転数上げ下げできるっぽいので、そっちで調整することにした。