之前写了一篇Linux下利用Superio控制GPIO的教程,这次继续利用Superio读取CPU风扇转速,CPU风扇属于环境控制器(EC),内置在IT8786E-I中,包括五个电压输入,三个温度传感器输入,五个FAN转速计输入和五组先进的风扇控制器。 EC监控硬件环境,实现个人电脑的环境控制。
大致流程
进入MB PnP 模式(87h, 01h, 55h, 55h;)
使能 EC(LDN=04h, Index 30h=01)
得到EC Base Address
基地址由逻辑设备寄存器确定(index=60h, 61h)
数据端口(Base+05h);数据端口(Base+06h)
配置风扇转速寄存器(index=0Ch,default=00h)
计算出风扇转速(index=0Dh,18h)
退出MB PnP 模式(index=02h,default=02h)
LInux实现代码
1 | #include<stdio.h> |