以下教程只适用于树莓派5,且风扇插在4PIN PWM风扇接口上。其他版本ERI没有测试,因为是在树莓派5发布时入的坑,俗话说的好,买新不买旧。另外只有派5才有4PIN PWM风扇接口,其他版本只能使用GPIO引脚或者USB连接风扇。不过听说接到GPIO 14引脚可以实现相同的效果,实在找不到其他解决办法的可以按照本文方法试一下,完事儿后记得留言反馈~
话不多说,我们直奔主题。树莓派5官方PWM散热风扇默认60度以上才开始启动,我们可以通过修改config.txt文件调整温度阈值。能够实现两种模式:文章源自ERI博客-https://eriboke.one/95.html
一、树莓派风扇在CPU达到特定温度后启动
1. 在终端中输入以下命令以编辑 /boot/firmware/config.txt 文件:文章源自ERI博客-https://eriboke.one/95.html
sudo nano /boot/firmware/config.txt
2. 在 config.txt 文件的末尾添加以下内容启用风扇控制,并设置温度阈值和风扇转速。文章源自ERI博客-https://eriboke.one/95.html
dtparam=cooling_fan=on
dtparam=fan_temp3=36000,fan_temp3_hyst=5000,fan_temp3_speed=255
3. 按Ctrl+x退出nano编辑器,然后输入y确认保存修改,并按Enter退出。文章源自ERI博客-https://eriboke.one/95.html
4. 最后使用sudo reboot重启树莓派。文章源自ERI博客-https://eriboke.one/95.html
其中,文章源自ERI博客-https://eriboke.one/95.html
dtparam=fan_temp3=36000
设置风扇启动的温度阈值。36000表示36°C。当树莓派的 CPU 温度达到或超过36°C时,风扇就会启动。树莓派在只装一个风扇的情况下一般会很难低于36°C,所以下相当于始终开启树莓派的风扇了。文章源自ERI博客-https://eriboke.one/95.html
dtparam=fan_temp3_hyst=5000
配置风扇停止的温度滞后值,也称为“回滞”值。滞后值为5000,即5°C。也就是说,当风扇启动后,温度需要下降到36°C-5°C=31°C以下,风扇才会停止运转。更不可能停止了。文章源自ERI博客-https://eriboke.one/95.html
dtparam=fan_temp3_speed=255
这部分设置风扇的转速。255表示风扇将以100%的速度运行,即全速。这个数值可以在 0 到 255 之间调整,以控制风扇的转速。文章源自ERI博客-https://eriboke.one/95.html
另外也可以根据需要自行调整上面的参数。文章源自ERI博客-https://eriboke.one/95.html
二、根据不同温度调整树莓派风扇转速
1. 同样的,在终端中输入以下命令以编辑 /boot/firmware/config.txt 文件:
sudo nano /boot/firmware/config.txt
2. 在 config.txt 文件的末尾添加以下内容实现不同温度下的风扇转速控制。
dtparam=cooling_fan=on
dtparam=fan_temp0=36000,fan_temp0_hyst=2000,fan_temp0_speed=90
dtparam=fan_temp1=40000,fan_temp1_hyst=3000,fan_temp1_speed=150
dtparam=fan_temp2=52000,fan_temp2_hyst=4000,fan_temp2_speed=200
dtparam=fan_temp3=58000,fan_temp3_hyst=5000,fan_temp3_speed=255
3. 按Ctrl+x退出nano编辑器,然后输入y确认保存修改,并按Enter退出。
4. 同样,最后记得使用sudo reboot重启树莓派。
个人觉得这个配置已经相当合理,没有修改的必要。如果想调整,可以参考下面的参数含义:
dtparam=fan_temp0=36000,fan_temp0_hyst=2000,fan_temp0_speed=90
fan_temp0=36000:当CPU温度达到36°C时,风扇开始运行。
fan_temp0_hyst=2000:风扇将持续运行,温度降低到36°C-2°C= 34°C时停止。
fan_temp0_speed=90:在这个温度区间内,风扇以90的速度运行(约为最大速度的 35%)。
dtparam=fan_temp1=40000,fan_temp1_hyst=3000,fan_temp1_speed=150
fan_temp1=40000:当CPU温度达到40°C时,风扇加速。
fan_temp1_hyst=3000:风扇将持续运行,温度降低到40°C-3°C=37°C时,转速降低至上一个温度区间。
fan_temp1_speed=150:在这个温度区间内,风扇以150的速度运行(约为最大速度的 59%)。
dtparam=fan_temp2=52000,fan_temp2_hyst=4000,fan_temp2_speed=200
fan_temp2=52000:当CPU温度达到52°C时,风扇进一步加速。
fan_temp2_hyst=4000:风扇将持续运行,温度降低到52°C-4°C=48°C时,转速降低至上一个温度区间。
fan_temp2_speed=200:在这个温度区间内,风扇以200的速度运行(约为最大速度的 78%)。
dtparam=fan_temp3=58000,fan_temp3_hyst=5000,fan_temp3_speed=255
fan_temp3=58000:当CPU温度达到58°C时,风扇以全速运行。
fan_temp3_hyst=5000:风扇将持续运行,温度降低到58°C-5°C=53°C时,转速降低至上一个温度区间。
fan_temp3_speed=255:在这个温度区间内,风扇以最大速度 255 运行(即全速)。
最后小结
刚入坑树莓派时遇到没办法控制风扇转速的情况,本以为是个小问题,网上肯定能搜到大把的教程。可是找了一圈下来都没能找到靠谱的解决方案,最后求助大佬才得以解决。或许是因为ERI的搜索方式不对,又或许是因为这个知识过于基础,没有大佬在意。总之,希望这篇文章能够帮助到像ERI一样寻遍互联网最终苦寻无果的新人小伙伴。
如果有任何想法、实践中遇到了任何问题都欢迎在评论区留言,我们一起探讨~~
1F
很好的教程!!!
别忘了配置完要重启树莓派,不然更改不上,我搞了半天觉得没用,重启完就好了
B1
@ xyx 感谢友友补充~~