本指南记录了在 Milk-V Jupiter(SpacemiT K1)开发板上,如何通过 sysfs 接口手动控制主板 FAN 接口的 PWM 风扇,包括硬件接线验证与手动送电测试。


目录

  1. 背景:Bianbu OS 默认低温不供电
  2. 确认风扇对应的 hwmon 设备节点
  3. 手动强送电测试
  4. 结果排查与下一步动作
  5. 参考链接

1. 背景:Bianbu OS 默认低温不供电

Milk-V Jupiter 板载一个 FAN 接口(JST 1.25mm 4-Pin),默认由 SoC 的 PWM 控制器管理。Bianbu OS 的自动温控策略在 CPU/GPU 温度较低时(通常 < 50°C),不输出任何电压,导致风扇完全静止。

[!WARNING] 如果风扇完全不转,并不代表接线错误;请先进行手动送电测试以排除系统策略干扰,再做结论。


2. 确认风扇对应的 hwmon 设备节点

通过遍历 udev hwmon 设备,可以快速确定哪个节点对应风扇:

root@milkv-jupiter:~# for i in /sys/class/hwmon/hwmon*; do echo -n "$i: "; cat "$i/name"; done
/sys/class/hwmon/hwmon0: top_thermal
/sys/class/hwmon/hwmon1: gpu_thermal
/sys/class/hwmon/hwmon2: cluster0_thermal
/sys/class/hwmon/hwmon3: cluster1_thermal
/sys/class/hwmon/hwmon4: pwmfan
设备节点名称说明
hwmon0top_thermalCPU 顶层温度传感器
hwmon1gpu_thermalGPU 温度传感器
hwmon2cluster0_thermal核心簇 0 温度传感器
hwmon3cluster1_thermal核心簇 1 温度传感器
hwmon4pwmfanPWM 风扇控制器

确认风扇的节点为 /sys/class/hwmon/hwmon4(名称是 pwmfan)。


3. 手动强送电测试

[!WARNING] 本测试将强制主板 FAN 接口输出 5V 最大电压,请确保风扇已正确连接,且电流消耗在主板承受范围内。

在开发板终端(SSH 或串口)依次执行以下命令:

# 1. 切换到风扇控制目录
cd /sys/class/hwmon/hwmon4

# 2. 将风扇切换为手动控制模式
echo 1 > pwm1_enable

# 3. 写入最大值 255(强行让主板 FAN 接口输出最大 5V 电压)
echo 255 > pwm1

写入后风扇应立刻做出反应。

还原自动温控

测试完成后,如需还原为系统温控:

# 切回自动控制模式
echo 0 > pwm1_enable
# 或直接重启主板
reboot

4. 结果排查与下一步动作

执行 echo 255 > pwm1 后,根据风扇状态判断:

风扇立刻开始旋转

结论:接线完全正确!

风扇依然不转

结论:红黑线序依然是反的,或者接口接触不良。


5. 参考链接