给飞牛 NAS 写了个风扇控制器 v1.0:液态玻璃界面 + 多区域管理 + 一键安装包
先说结论:我的飞牛 NAS,终于不吵了。
而且说实话,做出来的这个东西——可能是你能找到的最好看的飞牛风扇控制器。这话不是我吹,往下看就知道了。
国内镜像仓库:gitee.com/linxiang011/fnos-fan-console
起因:一台半夜嗡嗡叫的 NAS
我家这台飞牛 NAS 一直有个小毛病:风扇基本只有两种状态,要么装死,要么狂转。
深夜码字的时候,它突然"呼呼呼"来一阵;等我去看,温度其实也没多高。原厂那套温控逻辑,大概是"能用就行"的水平——能转,但转得随心所欲。
我也试过改配置,折腾半天,能调的东西就那么点。曲线?没有。多风扇分区?没有。温度异常发个通知?想都别想。
那段时间我正好在学校啃操作系统和计网,想想干脆自己写一个算了。
中途踩的坑,比我预想的多
一开始我天真地以为,这活儿一两天就能干完。
结果光界面就推倒重来了不知道多少次。第一版做的是"液态玻璃"那种半透明质感,好看是真好看,但一上来就翻车了——面板上挂了实时模糊,数值一变浏览器就跟着喘,滚动起来一卡一卡的。
后来我把实时模糊、折射、动画这些"看起来很贵"的效果全删了。你猜怎么着?视觉几乎没变。因为我们感受到的玻璃质感,靠的是描边和高光,不是真的去算背景模糊。这一刀砍下去,界面反而顺滑了。
再往后是曲线编辑器。别人家拖拽节点是基础操作,我自己写起来才发现:温度不能越界、转速要限幅、拖完还得提醒"你没保存"……每个小细节都能耗掉一晚上。
最抓狂的是多区域。我脑子里想的是"一个控制器管好几把风扇",真做的时候,通道冲突、状态同步、保存逻辑全是坑。有天晚上调到一个风扇"人格分裂"——界面上一个速度,实际转另一个速度,我盯着屏幕愣了半天。
这些坑踩下来,倒攒出了一个还算拿得出手的 v1.0。
它现在能做什么
核心就一句话:让风扇跟着温度讲道理。
最重要的一块是温控曲线。横轴温度、纵轴转速,拖几个节点,它就照着这条线调速:低温压着转速图安静,过了某个温度再慢慢拉高。改完没保存,标题旁边会亮个小提示;手滑要关页面,浏览器还会拦你一下。
温度来源也能挑:CPU、硬盘、GPU,或者"谁高听谁的"。我的机器是核显,GPU 温度走 i915;用独显的朋友,N 卡还有 nvidia-smi 兜底。
然后是我折腾最久的多区域。机箱里几把风扇,可以各自绑定不同的 PWM 通道、温度来源和曲线——CPU 扇跟着 CPU 走,硬盘扇盯着硬盘,谁也不耽误谁。
首页还挂了一张温度趋势小图,最近两分钟谁热谁凉,一眼就能看出来。日志会自动刷新,能按"信息 / 警告 / 错误"筛,也能一键导出。
通知做了两条路:浏览器通知,页面开着就能弹;另一个是 Webhook,填个地址就行,服务器端保护一触发(比如温度连续读不到、自动降级),它会推一条 JSON 过去,Bark、钉钉都能直接收。
剩下还有些零碎但用着舒服的小东西:配置一键导出导入、四套壁纸还能传自己的图、手机端适配加上"添加到主屏"。这些就不展开了,不然真成说明书了。
安全这件事,我做得比较保守
风扇控制这东西,可以不好用,但不能帮倒忙。
所以我给它上了三道保险:温度连续读不到,先"全速保护"——先吹起来再说;持续读不到,自动降级成最保守的曲线;就算程序整个崩了,还有看门狗在外面守着,把风扇交还给系统。
还有个细节我自己挺满意:失败保护是按温度来源分别生效的。以前那种老逻辑,CPU 传感器抖一下,硬盘那边的风扇也跟着躁动;现在谁的事谁管,互不牵连。
它长什么样
就放一张首页截图吧,免得像在写产品说明书。
液态玻璃的面板、拯救者风格的仪表盘、跟着鼠标走的流光,还有底下那条实时温度趋势。想看全套的,仓库里留了一整套 16:9 截图。
怎么装
我把它打成了飞牛的 .fpk 安装包,应用中心手动上传就行,或者一行命令:
appcenter-cli install-fpk fan-console_1.0.0.fpk小提示:安装包的应用标识为 fan-console(v1.0 起由 fan-control 更名);需要从旧版迁移的同学,配置迁移步骤见仓库发行说明。
安装向导里设一下端口和密码,装完打开就能用。默认加载的是最保守的温控曲线,不用担心一上来就折腾硬件。
顺便说一句,源码完全开源,连构建都是可复现的:一条命令重新组装界面,一条命令重新打包,还有 68 个单元测试兜着。折腾党可以自己改了玩。
获取方式
- 国内镜像(Gitee,推荐):gitee.com/linxiang011/fnos-fan-console —— 源码 + 发行版附件;
- 安装包直链(国内):下载 fan-console_1.0.0.fpk(约 82KB);
- GitHub:搜索 fnos-fan-console(账号 Yangling777),源码和整套截图都在那边;
- 上游项目:AriesOxO/fnos-fan-control(GitHub,MIT 协议),我的改造建立在它的基础上。
写这东西的初衷,只是想让自己的 NAS 安静一点。如果它也能让你的半夜安静一点,那就值了。
在用飞牛 NAS 的朋友,评论区聊聊你的风扇吵不吵;觉得有意思的话,顺手去仓库点个 star —— 就当请我喝了杯咖啡。
免责声明:风扇调速涉及硬件,请在理解各项配置含义后再调整;因不当配置造成的问题由使用者自行承担。