
写在前面:
对于绝大多数人来说,这都是个没有卵用的教程。
绝大多数厂商的主板,要控制CPU和机箱风扇转速,只需要开机时先进入BIOS,通过BIOS设定风扇供电的PWM/DC参数即可。
如果你是一台暂时无法关机的Linux主机(如部署了一大堆乱七八糟服务的服务器),又确实需要控制风扇转速,继续往下看。
Centos系统版本如下:
# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)
1、安装lm-sensors
yum install lm-sensors
2、装好之后执行 sensors-detect
一路输入yes或者y回车

输入yes或者y回车,要反复好几次

出现这个输入y回车就结束了
3、执行sensors,你会看到它检测到的所有温度/电压/转速等数据

sensors数据
4、执行 pwmconfig ,检测pwm控制的风扇并配置其参数。
执行之后出现下图,你机箱里的风扇应该会开始满速运行。

出现这个时,机箱里风扇开始满速,不要怕,继续
5、回车之后,命令行出现类似“Testing pwm control hwmon1/device/pwm1 ...”,解释一下这个过程:因为你的主板上可能有多个4pin或者3pin风扇接口,可能有些安装了风扇有些没有,这个软件并不知道对应的关系,在这一步的过程中软件在逐个关闭这些接口,通过观察哪个风扇停转来确认对应关系。
我的机箱里仅仅只安装了一个CPU风扇,在它关闭了hwmon1/device/pwm1时我仍然听到风扇在满速转动,所以这个pwm1不是我当前的风扇对应的接口。
Did you see/hear a fan stopping during the above test (n)?
所以输入n 回车

pwm1不是,输入n回车
依次类推,可以确定哪个pwm接口控制的是哪个风扇,如果你装的风扇贼多,最好是记住。
我的主机仅装了一个CPU风扇,是pwm2 在控制
6、确定好了之后按Y,它会尝试阶梯式地调节pwm参数并将数据输出在控制台,此时你会观察到风扇转速由快逐渐变慢最后又恢复满速。

一个pwm参数对应一个转速
7、其余pwm接口同上,扫描完所有PWM设备之后,就要写入配置文件了,输入y,回车

一路n,回车,略过其它接口
8、配置文件地址就输入默认的 /etc/fancontrol 回车,如果你不小心打错了,不要按退格键,要按Delete键才能删除

输入 /etc/fancontrol
9、确认pwm设备和作为调节转速的依据的温度值
9.1、选择上一步我们通过逐个停转确认的pwm设备,hwmon1/device/pwm2,所以输入1,回车
9.2、下图中大红框标出来的部分就是当前能检测到的温度值,挑选一个作为PWM控制的依据(参数) 关于这些温度值,上面9个温度都是跟cpu有关的,第1个是CPU封装的温度,后面8个是每个核心的温度,这里我们选择第一个,下面输入1,回车
(ps,下面那个-127°C看着像是检测不到值给的默认值,109°C和111°C怕不是我的主板有什么地方要热炸了。。。害怕)

确认pwm设备和作为调节转速的依据的温度值
10、接下来会让你输入数字来配置pwm参数

配置pwm参数
如上图,需要依次输入三个值,第一个表示低于多少度时处于最小速度(我输入的60),第二个表示高于多少度时处于最大速度(我输入的85),第三个表示当你的cpu已经超出了最高限制时pwm输出多少(最高限制跟CPU和系统配置有关,各不相同,我选择让pwm拉满255,温度还继续上升的话就该死机死机吧),参考下图理解

pwm-温度
11、最后输入4回车,配置文件就保存好了,此时输入sensors可以看看风扇转速,
前:

fancotrol
想让它开始工作,还需要执行一行命令。
nohup fancontrol &
然后再输入sensors对比一下,应该已经生效啦
后:

fancotrol后
完结撒花,希望能有所帮助。