Ubuntu默认的温控策略偏向保守,为了保证硬件安全,内核往往会让风扇以较高的基础转速运行,再加上传感器驱动没有正确加载、独立显卡持续高负载等因素,风扇一直狂转就成了常见现象。要想彻底解决这个问题,需要先搞清楚温度到底高不高,再针对性地调整风扇控制策略。下面我们从检测、配置、显卡优化三个层面来完整走一遍排查流程。

一、先确认温度:安装并配置lm-sensors
修复的第一步永远是搞清楚事实:到底是硬件真的过热,还是风扇策略有问题。lm-sensors是Linux下最经典的硬件监控工具,可以读取CPU、主板、显卡等多个传感器的实时温度。安装命令如下:
sudo apt update sudo apt install lm-sensors sudo sensors-detect
运行sensors-detect时会有一连串的交互式提问,全部按回车接受默认答案即可,最后一步询问是否将检测到的模块写入/etc/modules时回答yes。完成后执行sensors命令就能看到类似下面的输出:
coretemp-isa-0000 Adapter: ISA adapter Package id 0: +45.0°C (high = +100.0°C, crit = +100.0°C) Core 0: +43.0°C Core 1: +44.0°C acpitz-acpi-0 Adapter: ACPI interface temp1: +46.0°C
如果CPU温度只有四五十度风扇却全速狂转,基本可以断定是控制策略或驱动的问题,而不是散热需求。反过来,如果温度确实偏高(超过80度),那就要考虑清理灰尘、更换硅脂或者排查后台高负载进程了。可以用top或者htop看看是不是某个进程在吃满CPU。
二、手动接管风扇:pwmconfig与fancontrol
确认温度正常后,可以尝试手动接管风扇转速。大多数主板的风扇接口支持PWM调速,通过pwmconfig工具可以生成一份自定义的转速曲线,再由fancontrol服务持续生效。配置流程如下:
sudo apt install fancontrol sudo pwmconfig
pwmconfig会逐个测试每个PWM输出的风扇响应,把每个风扇调到全速再停转,观察哪个传感器有变化,以此建立风扇与温度传感器的对应关系。测试过程中风扇会反复启停,属于正常现象。测试结束后它会根据数据自动生成一份配置,保存到/etc/fancontrol,内容大致如下:
INTERVAL=10 DEVPATH=hwmon2=devices/platform/coretemp.0 hwmon3=devices/platform/it8613 DEVNAME=hwmon2=coretemp hwmon3=it8613 FCTEMPS=hwmon3/pwm1=hwmon2/temp1_input FCFANS=hwmon3/pwm1=hwmon3/fan1_input MINTEMP=hwmon3/pwm1=40 MAXTEMP=hwmon3/pwm1=70 MINSTART=hwmon3/pwm1=60 MINSTOP=hwmon3/pwm1=30 MINPWM=hwmon3/pwm1=30 MAXPWM=hwmon3/pwm1=255
其中MINTEMP和MAXTEMP决定了调速区间:低于MINTEMP时风扇以最低转速运行,达到MAXTEMP时全速。可以把MINTEMP设为40、MAXTEMP设为75左右,让风扇曲线更平缓安静。修改完成后启动服务:
sudo systemctl enable --now fancontrol sudo systemctl restart fancontrol
需要提醒的是,pwmconfig对笔记本的支持并不好。很多笔记本的风扇由EC(嵌入式控制器)直接管理,内核暴露的PWM接口很有限,这时强行配置可能没有效果,甚至出现风扇不受控的情况。遇到这种情况建议停用fancontrol,改用下面的thermald方案。另外,部分华硕笔记本可以安装asus-fan或使用nbfc-linux这类专门的风扇控制工具,针对特定机型效果更好。
三、启用thermald与TLP优化整体发热
Intel推出的thermald是一个官方温控守护进程,它会根据CPU的 thermal spec 主动调节功耗和性能,避免温度冲高导致风扇被动拉满。Ubuntu下安装启用非常简单:
sudo apt install thermald sudo systemctl enable --now thermald systemctl status thermald
thermald的优势在于它工作在内核层面,不依赖具体的风扇硬件接口,对笔记本尤其友好。配合TLP电源管理工具还能进一步压低整体发热:
sudo apt install tlp sudo systemctl enable --now tlp sudo tlp-stat -t
TLP会自动优化USB自动挂起、PCIe电源管理、CPU调速器等 dozens 项参数,减少不必要的功耗。对于Intel CPU,建议再安装intel-microcode及时更新微码,部分批次的CPU通过微码更新能显著改善待机温度。
四、排查NVIDIA显卡驱动导致的异常发热
如果你的机器配有NVIDIA独立显卡,这往往是风扇狂转的头号元凶。没有安装专有驱动时, nouveau 开源驱动无法正确管理显卡功耗,显卡可能一直运行在高性能状态空转发热。先用下面的命令确认当前驱动状态:
ubuntu-drivers devices nvidia-smi
如果提示nvidia-smi命令不存在,说明专有驱动没有安装。推荐执行sudo ubuntu-drivers autoinstall自动安装推荐版本,重启后再用nvidia-smi确认显卡功耗。对于不需要独显性能的场景,可以安装switcheroo-control或使用prime-select切换到省电模式:
sudo prime-select intel prime-select query
这样系统日常使用核显,独显完全断电,发热和噪音会立刻明显下降。需要跑深度学习或游戏时再用sudo prime-select nvidia切回来即可。
五、其他值得检查的细节
除了上面几个主要方向,还有一些容易忽略的点。一是BIOS设置,部分机型在BIOS里有风扇模式选项(安静、标准、性能),切换到安静模式后系统层面的压力会小很多;二是内核参数,某些台式机主板的风扇芯片驱动需要额外安装linux-hwe内核或特定的hwmon模块才能被识别;三是老机器的物理因素,用了四五年的笔记本出风口堵灰、硅脂干裂是非常普遍的散热杀手,软件调优做得再好也抵不过物理散热失效,定期清灰换硅脂才是治本。
整体来看,Ubuntu下风扇高速运转的问题绝大多数可以通过传感器检测加策略调整解决:先用lm-sensors确认温度真实情况,台式机用fancontrol画定制曲线,笔记本靠thermald和TLP压功耗,双显卡机器装好驱动并合理切换显卡模式。按这个思路逐层排查,一般都能让机器回到安静、凉快的工作状态。
Ubuntu风扇风扇控制lm-sensors修改时间:2026-09-03 01:28:52