solaris 10 下面如何获取cpu温度?请高手帮忙,不胜感激!

我的机器是HP ML350 G6,使用Xeon5500系列处理器,需要监控cpu的温度。由于不是Sparc处理器,所以使用prtdiag -v 命令无法获取cpu温度。于是我想写个小程序,通过读取处理器内部温度传感器的数值来获取cpu的温度。

在windows下可以通过类似下面的代码获取处理器内部温度传感器的数值:

C/C++ code

_asm
{
mov eax,6;
cpuid;
mov deax,eax;
mov debx,ebx;
mov decx,ecx;
mov dedx,edx;
mov ecx,0x19c;
rdmsr;
mov deax,eax;
}



不知道这种方式能不能在Solaris下使用?
在Windows下需要在ring0下才能执行rdmsr指令,不知道在Solaris下是不是也需要进入ring0来执行这个指令?如果需要的话要怎么才能进入ring0?
除此之外有没有更好的办法获取cpu的温度?

还请高手指点,谢谢了。

作者: hf1414   发布时间: 2011-04-28

作者: thefirstz   发布时间: 2011-04-28