MacBook AirのCPU温度を取得する
Mac OS Xのバッテリー残量は
ioreg -n AppleSmartBattery
というコマンドで取得できるけど、CPUの温度については標準で付いてくるコマンドではどうやら取得できないらしい。
IOKitのインターフェイスを使ってCで持ってこれるんだけど、まさにそういうツールを公開してる人がいて、↓の smc.h と smc.c でOKみたい。(たぶんこのソースもどこかから持ってきたものみたいだけど)
ただし、Mac OS X 10.5 (Leopard) 以降ではIOConnectMethodStructureIStructureOがIOConnectCallStructMethodに変わったことでコンパイルできなくなっていた。
で、その修正版も公開してる人がいた。
- http://d.hatena.ne.jp/bootblack/20090610
- http://d.hatena.ne.jp/bootblack/20120603/p1
- http://www.geocities.jp/freeggggroup/nf/ ←の "ClamNF.app v5.5.9 for Mac (OS X 10.8 Mountain Lion)" ではなく、旧版の "ClamNF.app v5.5.5 for Mac OS X 10.5.8" の中にある
.app の中にソースが入ってるのだけど、面倒なので Gist に貼っておいた。(元々 GPL なので)
clang -framework IOKit -o smc smc.c
使い方
$ ./smc -h
Apple System Management Control (SMC) tool 0.01_2
Usage:
./smc [options]
-f : fan info decoded
-h : help
-k <key> : key to manipulate
-l : list all keys and values
-r : read the value of a key
-w <value> : write the specified value to a key
-v : version
$ ./smc -f
Total fans in system: 1
Fan #0:
Actual speed : 1997
Minimum speed: 2000
Maximum speed: 6500
Safe speed : 0
Target speed : 2000
Mode : auto
Temp = 55.375
Temp TB0T = 32.6875
Temp TC0D = 55.375
Temp TC0P = 50.5
Temp TM0P = 46.875
Temp TN0P = 0
Temp Th0H = 0
Temp Ts0P = 30.625
Temp TN1P = 0
Temp Th1H = 35.375現在のCPU温度は55.375度だそうな。
