読者です 読者をやめる 読者になる 読者になる

opamp_sando's blog

クソザコが割りと適当なことを書くためにある備忘録です。あとたまに普通の日記も書きます

MacBookAirのArchLinuxでファンコントロールする方法

ArchLinux

MacBookAir(というよりいわゆるMacintosh)ではArchWikiなどに乗ってるfan controlの方法は一般に通用しないようなのでメモ。

sensors-detectで必要なモジュールを検出して起動時にモジュールをロードするところまでは同じように行ったほうが良いと判断したのでそこからメモをする。

sensors-detectを使う

まず、lm_sensorsパッケージがインストールされてない場合はインストールする。

$ (sudo) pacman -S lm_sensors

sensors-detectコマンドを用いてモジュールを検出してもらう。

$ (sudo) sensors-detect

ArchWikiにもあるように、対話式でいろいろ選択させられるが、基本的にはデフォルト値(つまり空エンターを押していくだけ)でよい。
できたら/etc/conf.d/lm_sensorsというファイルが生成される。

ここまでできたら、lm_sensors.serviceをenableにして起動時に検出したモジュールを自動ロードするようにする。

$ (sudo) systemctl enable lm_sensors.service

これで一旦rebootする。(startしてもいいけど念の為)

うまく行けばsensorsコマンドが正しく動作しているはず。 以下出力のサンプルとして貼ってみる。

$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +56.0°C  (high = +100.0°C, crit = +100.0°C)
Core 0:         +56.0°C  (high = +100.0°C, crit = +100.0°C)
Core 1:         +56.0°C  (high = +100.0°C, crit = +100.0°C)

applesmc-isa-0300
Adapter: ISA adapter
Exhaust  :   1982 RPM  (min = 1200 RPM, max = 6500 RPM)
TB0T:         +36.0°C  
TB1T:         +36.0°C  
TB2T:         +32.2°C  
TC0E:         +58.5°C  
TC0F:         +60.2°C  
TC0P:         +51.2°C  
TC1C:         +57.0°C  
TC2C:         +56.0°C  
TCGC:         +56.0°C  
TCHP:         +47.0°C  
TCMX:         +57.0°C  
TCSA:         +53.0°C  
TCXC:         +57.0°C  
TH0A:         +56.0°C  
TH0B:         +56.0°C  
TH0C:        -127.0°C  
TH0F:         -25.0°C  
TH0R:         -25.0°C  
TH0V:         +61.2°C  
TH0a:         +56.0°C  
TH0b:         +56.0°C  
TH0c:        -127.0°C  
THSP:         +41.2°C  
TM0P:         +48.0°C  
TPCD:         +56.0°C  
TS2P:         +52.2°C  
TW0P:         +43.8°C  
Ta0P:         +45.8°C  
Th1H:         +37.5°C  
Tm0P:         +43.0°C  
Ts0P:         +32.0°C  
Ts0S:         +37.2°C

mbpfan-gitを使う

ArchWikiやググって上の方に出てくる資料ではpwmconfigを使い設定ファイルを生成して云々という手段でfancontrolのdaemonを動かすという方法が書かれている。 macだとmoduleがないとか言われてpwmconfigが動かないので違う方法を探した。

その結果、次のパッケージ(AURにある)をインストールすることでFan Controlができることがわかった。

AUR (en) - mbpfan-git

インストールする。

$ yaourt -S mbpfan-git

PKGBUILDを見た感じだと/etc/mbpfan.confとmbpfan.serviceを生成するよう。
デフォルトで最低限の設定がされているようなのでそのまま起動してみる。

$ (sudo) systemctl start mbpfan

自動起動するようにenableにもしておく

$ (sudo) systemctl enable mbpfan

これでsensorsコマンドを使ってファンの回転数を確認すると/etc/mbpfan.confに設定した最低値になっていることが確認できた。

参考資料

dgraziotin/Fan-Control-Daemon · GitHub

lm sensors - ArchWiki

Fan speed control - ArchWiki

まだこの方法を知ったばかりであまり設定については調べていないので細かい設定方法は省略。
今後調べてメモる必要があると判断したら(つまりは手こずったら)別の記事に続きを書くかもしれない。

Firefox ブラウザ無料ダウンロード