PWM Fan Driver + Web Monitor

为 OEC-Turbo (RK3566) 适配的 4 线 PWM 风扇驱动:CPU / 硬盘双温度自适应、Web 面板,现提供飞牛 fnOS 应用包。

下载

  • 网盘目录:pan.runyf.cn/downloads/pwnfan(应用包、脚本、历史版本)
  • 非飞牛系统:curl -fL https://dl.runyf.cn/pwnfan/install.sh | sudo bash

硬件接线

风扇线颜色接法
GND黑外部 12V 电源 GND
12V黄/红外部 12V 电源正极
TACH绿/黄TX(转速读取)
PWM蓝RX(控制信号)
OEC 风扇接线

飞牛 fnOS 安装(推荐)

  1. 下载上面的 pwm-fan-1.9.0-arm64.fpk;
  2. 飞牛「应用中心 → 手动安装」上传,安装完成后桌面出现「PWM 风扇控制」;
  3. 点桌面图标打开面板。应用通过飞牛统一网关访问(/app/pwm-fan),由飞牛校验登录态后转发到应用内的 Unix socket,不监听 8081 端口,局域网无法直连。

应用不开放独立端口:面板通过飞牛统一网关 /app/pwm-fan 访问,由飞牛校验登录态后转发;局域网直接访问 设备IP:8081 不可用。

从旧脚本迁移:先清理旧服务(点击展开)

如果之前用一键脚本装过(/opt/pwm-fan + systemd),请先清理,否则会抢 GPIO 和端口:

sudo systemctl disable --now pwm-fan pwm-fan-web
sudo rm -f /etc/systemd/system/pwm-fan.service /etc/systemd/system/pwm-fan-web.service
sudo systemctl daemon-reload
sudo rm -rf /opt/pwm-fan

功能

  • CPU + 硬盘双温度自适应:硬盘工作时 CPU / 硬盘两路取较高档位;硬盘休眠时只用 CPU 温度,且探测过程不会唤醒硬盘
  • 实时曲线:首页显示最近 10 分钟的 CPU / 硬盘温度,以及占空比、转速
  • 曲线编辑:温度曲线可在坐标轴上直接拖动控制点,支持一键恢复默认
  • 手动模式:0~100% 滑杆 + 快捷档位(仅 Manual 模式显示)
  • GPIO 可配置:PWM / TACH 的 gpiochip 与引脚都能改,默认适配 OEC(gpiochip0 / pin24 / TACH pin25)

界面预览

PWM 风扇控制主界面
温度设置界面

温度策略与默认曲线

曲线默认控制点
CPU42°C → 0%;50°C → 30%;60°C → 65%;70°C → 100%
硬盘40°C → 0%;45°C → 25%;50°C → 60%;55°C → 100%

依据:RK3566 的 Tj 上限约 85°C,70°C 全速留出余量;机械硬盘建议长期不超过 50°C;4 线风扇的启动占空比通常需要 20~30%,所以第一段非零点给到 30%。

非飞牛系统(Armbian 等)

# root 机器
curl -fL https://dl.runyf.cn/pwnfan/install.sh | sudo bash

# 手动部署后访问
http://设备IP:8081

配置入口

  • 温度设置(面板右上角):曲线编辑、CPU 回差
  • 高级设置(⚙):GPIO 引脚
  • 配置保存在 /etc/pwm-fan.json,温度曲线保存后立即生效;GPIO 修改需重启应用

注意事项

GPIO 占用:pin24 在部分固件下与 UART2 复用。飞牛 OEC 镜像实测可以共存,不要只看内核参数里的 console=ttyS2;只有报 GPIO 被占用(EBUSY)时才需要排查旧服务或串口。

更新记录

版本更新
1.9.0

改用飞牛统一网关,不再监听 8081 端口;更换应用图标

1.8.x

实时温度/风扇曲线、曲线拖动编辑、手动控制仅在 Manual 显示、设置拆分为「温度设置 / 高级设置」

1.7.0

CPU + 硬盘双温度自适应,硬盘休眠时不读盘、不唤醒

最后修改:2026 年 11 月 08 日
如果觉得我的文章对你有用,请随意赞赏