banner
约 1,500 字
5 分钟

拾光坞G2刷飞牛os风扇转速自动调节应用直装

摘要

拾光坞G2刷上飞牛OS后 BIOS 被阉割,风扇转速没法调,能用的 fanctrl 又只有命令行。干脆把原来的温控脚本做成可视化应用:实时看转速和温度、滑块调速、分档曲线在线编辑、日志和开机自启一键搞定。fpk 直装进飞牛应用中心,桌面点图标就能开。附默认分档曲线和调参说明。

前言

本人在拾光坞G2上安装飞牛os后,发现拾光坞阉割了 BIOS 的很多设置,导致无法控制风扇转速,尝试过很多软件后,发现大部分软件都无法正常使用,只有 fanctrl 可以控制,只支持命令行,一直以来都是脚本控制的。最近风扇有杂声就想调整一下转速,但早就忘了脚本放在哪里,用起来不太方便,所以干脆打包成可视化的应用。自己用起来还不错,也没什么技术含量,发出来给同样有需求的朋友一起改进。

blog image

功能

功能

说明

实时状态面板

当前转速、CPU 温度、硬盘温度、守护进程状态,3 秒自动刷新

手动调速

滑块 + 快捷档(20/35/50/70/100%),直接下发 fanctrl

温控曲线在线编辑

分档表格,改完点保存,即时生效不用重启

基础参数

检测间隔、最低/最高转速、排除硬盘

日志查看

页面内看日志尾部,支持自动刷新与清空

开机自启

一键注册 systemd 服务,重启后自动接管

安装到 NAS

把 FanControl.fpk 传到 NAS,然后二选一:

方式 A:应用中心界面

直接双击 fpk,或应用中心右上角「手动安装」选文件。

方式 B:命令行

bash
appcenter-cli install-fpk FanControl.fpk

CitePix_2026-10-02_10-47-48.png

安装向导会让你设置:

  • Web 访问端口(默认 7300)

  • 页面访问密码(默认 fancontrol,装完请立刻改)

  • 是否停用旧的 fan_control.sh 自启服务(默认停)

装之前:先停掉旧脚本(推荐)

如果你已经装了 fan_control.sh 并在跑,建议先手动停服务,再装本应用。这样过渡最干净,也能确认应用有没有正常接管。

bash
# 1. 先停旧服务 —— 注意先不要 disable,给自己留条后路
systemctl stop fan-control
# 2. 确认已停
systemctl status fan-control --no-pager
# 3. 装应用
appcenter-cli install-fpk FanControl.fpk
# 4. 装完看新应用的守护日志,确认在正常跑
tail -f /var/apps/FanControl/var/fan_control.log

为什么先 stop 不 disable? 万一新应用有问题,你 systemctl start fan-control 就能立刻回到旧状态。等新应用稳定跑几天确认没问题,安装向导里那个「停用旧自启服务」的开关会在安装时帮你 disable 掉,或者你手动执行 systemctl disable fan-control。

关于转速的过渡:fanctrl 是无状态的,停掉旧服务不会改变当前转速,风扇会停在最后一次设定的值。新应用启动后会把转速拉到曲线第一档(默认 25%),中间可能有一小段速度变化,正常现象。

旧文件不会被自动删掉:fan_control.sh、fan-control.service、/var/log/fan_control.log 都会保留,方便随时回退。确认新应用跑稳了、想清干净再手动删:

bash
rm -f /usr/local/bin/fan_control.sh
rm -f /etc/systemd/system/fan-control.service
rm -f /var/log/fan_control.log /var/run/fan_control.state
systemctl daemon-reload

/root/fanctrl 不用删——应用自带一份,/root/fanctrl 只是兜底路径,留着更稳。

访问

装好后两种方式:

  1. 飞牛桌面点图标 —— 应用中心里会出现「风扇温控」,点开即是页面

  2. 浏览器直连 —— http://<NAS内网IP>:7300

Web 服务监听 0.0.0.0:7300,建议只在内网用,页面已加密码鉴权。如果要暴露到公网,请自行加反向代理 + HTTPS,并换一个强密码。

使用

默认密码 fancontrol。登录后右上角「改密码」修改。

  • 想安静:手动调速拖到 20~35%

  • 想省心:打开「温控守护开关」+「开机自启」,之后不用管

  • 调曲线:直接在表格里改数字,点「保存曲线」,下一个检测周期就生效

CitePix_2026-10-02_10-50-35.png

温控曲线怎么设

默认曲线分 5 档,判定逻辑是「CPU 和硬盘各自查表,谁热听谁的」:

档

温度上界 ≤

转速

1

45℃

25%

2

54℃

35%

3

60℃

50%

4

69℃

70%

5

兜底

100%

怎么判定:CPU 和硬盘各自从第 1 档往下找第一个命中的档(条件是 温度 ≤ 该档阈值),两侧算出的转速取较高值。CPU 侧和硬盘侧用的是同一套阈值。

以 CPU 常年 27℃ 为例,最终转速就只看硬盘:

硬盘温度

目标转速

≤45℃

25%

46~54℃

35%

55~60℃

50%

61~69℃

70%

≥70℃

100%

注意别把阈值理解成「这一档的起点」。写 54 表示「≤54℃ 都归这一档」,所以 54℃ 仍是 35%,55℃ 才升到 50%。

嫌吵就把硬盘上界整体调高 2~3℃(比如 54→57、60→63),想让盘更凉就调低。改完点「保存曲线」,下一个检测周期生效。

依赖

不用 pip 装任何东西,后端和守护进程只用 Python 标准库,fanctrl 二进制已经打包进应用。

这三个外部命令是可选增强,缺了对应功能降级、不影响启动:

bash
apt update && apt install -y smartmontools hdparm lm-sensors

命令

用途

smartctl

读硬盘温度

hdparm

检测硬盘休眠,避免检测时把盘唤醒

sensors

CPU 温度兜底(主路径走 /sys/class/thermal,一般用不上)

常见问题

页面打不开?

bash
appcenter-cli list | grep FanControl                  # 看应用状态
cat /var/apps/FanControl/var/web.log                 # 看 Web 日志
tail -f /var/apps/FanControl/var/fan_control.log     # 看守护日志

转速显示「—」? 守护进程还没跑完第一轮,检查:

bash
pgrep -f fand.py
ls -l /var/apps/FanControl/target/bin/fanctrl

硬盘温度读不到? 装 smartmontools。如果硬盘正在休眠,程序会主动跳过不读——这是有意设计,避免检测反而把盘唤醒。

想彻底卸载回原样? 应用中心卸载即可。卸载脚本会自动停进程、关自启服务、删 systemd unit,并把风扇恢复到 35%。之后手动恢复你的 fan_control.sh 就行。

结束

fanctrl 显示的温度和飞牛页面显示的温度不一样,我自己感觉控温是不太准的,这点不清楚原因,希望有大神能解决一下。拾光坞的散热还可以,我基本常年 30% 的转速,也没有遇到温度报警。

下载地址:https://pan.quark.cn/s/5c263c32f859 提取码:TfYr

END

相关文章

暂无相关文章