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度だそうな。