风扇间歇性停转多因温控驱动未加载或ACPI策略冲突所致,需通过dmesg、lsmod排查模块缺失,按CPU架构加载对应驱动,并禁用kylin-power-manager服务以稳定控制。

风扇间歇性停转不是硬件坏了,大概率是温控驱动没正确加载或 ACPI 策略冲突
确认是否为驱动未加载导致的“假停转”
很多用户看到风扇停转就以为散热失效,其实可能是系统误判温度后主动停扇——这背后往往是内核风扇控制模块(如 thinkpad_acpi、asus_fan 或通用 fancontrol)没加载,或被屏蔽了。银河麒麟 V10 SP3+ 默认禁用部分 ACPI 风扇策略以保稳定,但代价就是温控“断连”。
- 运行
dmesg | grep -i "fan\|thermal",看是否有ACPI: fan: Failed to get device或acpi_thermal_rel: not loaded类报错 - 检查当前加载模块:
lsmod | grep -E "(fan|thermal|hwmon)",若无输出或缺失关键模块(如coretemp、it87),说明驱动未就位 - 特别注意:飞腾/鲲鹏平台常见
arm_smc_thermal模块未启用,需手动加载(仅限 ARM64 架构)
加载或替换正确的温控驱动模块
麒麟OS 基于 Debian,但对国产芯片做了定制,不能直接套用 Ubuntu 的 fancontrol 流程。必须区分 CPU 架构和主板芯片组,否则会触发内核 panic。
- 先查清芯片型号:
cat /sys/class/dmi/id/board_vendor和cat /sys/class/dmi/id/board_name(华为 Atlas、中科曙光、长城擎天等均有专用驱动) - AMD/Intel 平台可尝试启用通用模块:
sudo modprobe coretemp it87 hwmon_vid,再执行echo 'coretemp' | sudo tee -a /etc/modules持久化 - 飞腾平台(FT-2000+/D2000)必须安装厂商提供的
phytium-thermaldeb 包,不可用开源acpi_enforce_resources=lax强行绕过 - 若已装 NVIDIA 驱动,注意其自带的
nvidia-smi -r会干扰主板风扇 PWM,建议禁用:sudo nvidia-smi -r后加sudo systemctl disable nvidia-fan-control.service
修复 ACPI 温控策略冲突(常见于合盖/休眠后停扇)
麒麟OS 默认启用 acpi_enforce_resources=lax,但某些 OEM 主板(尤其是联想启天、同方超锐)的 DSDT 表里风扇控制被标记为 “_HID=PNP0C0B”,会被内核当成“非关键设备”跳过初始化——结果就是风扇在唤醒后不自动恢复。
- 临时验证:重启进 GRUB,按
e编辑启动项,在linux行末尾加acpi_enforce_resources=no acpi_osi=Linux,回车启动;若风扇正常,说明是 ACPI 策略问题 - 永久修复需反编译 DSDT:
sudo cat /sys/firmware/acpi/tables/DSDT > dsdt.dat→iasl -d dsdt.dat→ 修改Scope (_SB)下风扇设备的_HID为PNP0C0B并重编译,再通过 initramfs 注入(此步风险高,仅推荐有备份且熟悉 AML 的用户) - 更稳妥做法:用
acpid监听 lid、powerbtn 事件,在/etc/acpi/events/lidbtn中添加动作,唤醒后执行echo 255 > /sys/class/hwmon/hwmon*/pwm1(需先确认 pwm 节点路径)
最常被忽略的是:麒麟OS 的 kylin-power-manager 服务会覆盖 sysfs pwm 设置,即使你手动写入也几秒后被重置。真要稳控风扇,得先停掉它:sudo systemctl stop kylin-power-manager,再配合 fancontrol 或自定义脚本——但这意味着放弃系统级电源策略,得自己管好温限阈值。


















