联想个人云 X1/X1S 前面板控制

概述
本应用专为联想个人云 X1/X1s NAS 设备设计,控制前面板 LED 指示灯和机箱风扇,实现硬件状态的实时可视化与智能温控管理。应用运行于飞牛OS平台,提供 Web 控制面板,支持自动与手动两种控制模式。
要求:系统版本要求≥1.1.3104,必须加载pinctrl驱动(驱动飞牛系统最新版本自带,没有卸载操作可以不管)。
应用目前没有集成x1s前面版屏幕的控制(测试设备为x1),理论上与原小屏幕控制不冲突,可以并存。
核心功能
1. LED 指示灯控制
自动模式下的 LED 行为:
- 硬盘指示灯:故障→黄灯常亮;休眠→黄灯慢闪;在位空闲→白灯常亮;数据传输→白灯按速率闪烁(≥1MB/s 慢闪,≥50MB/s 快闪,1秒防抖)
- 网络指示灯:故障→蓝灯常亮;断开→全灭;链接空闲→白灯常亮;数据传输→白灯按速率闪烁(≥20KB/s 慢闪,≥1MB/s 中闪,≥20MB/s 快闪,1秒防抖)
- 速率闪烁:可通过顶部滑块独立开关,关闭后 LED 仅显示常亮/常灭状态
2. 温度监控
实时监控 CPU、主板、硬盘温度,5 档颜色状态直观反映温度区间:
| 状态 |
CPU 温度 |
硬盘温度 |
颜色 |
| 正常 |
<50°C |
<42°C |
淡蓝 |
| 低速 |
50-68°C |
42-50°C |
绿色 |
| 中速 |
68-80°C |
50-60°C |
橙色(脉冲动画) |
| 高速 |
80-95°C |
60-65°C |
深橙(脉冲动画) |
| 高温 |
≥95°C |
≥65°C |
红色(闪烁警报) |
- CPU 温度采用 3 次滑动平均,避免瞬时波动
- 硬盘温度通过
smartctl -A --nocheck=standby 读取,5 秒缓存减少磁盘操作
--nocheck=standby 参数确保休眠磁盘不会被唤醒,smartctl 检测到休眠状态时直接跳过查询
- 休眠硬盘自动跳过温度读取,风扇控制中默认使用 1°C 不触发升档
3. 风扇 PWM 调速
4 级阶梯式温控策略,配合 5°C 滞回机制防止风扇频繁切换:
| 档位 |
PWM |
CPU 阈值 |
硬盘阈值 |
| LOW |
50 (20%) |
≥50°C |
≥42°C |
| MEDIUM |
100 (40%) |
≥68°C |
≥50°C |
| HIGH |
180 (70%) |
≥80°C |
≥60°C |
| MAX |
255 (100%) |
≥95°C |
≥65°C |
- 滞回机制:升温超过阈值立即升档,降温需低于阈值 5°C 才降档
- 双传感器独立跟踪:CPU 和硬盘各自独立计算档位,取较高者执行
- 紧急优先:硬盘≥65°C 或 CPU≥95°C 立即满速
- 手动模式:支持 0-255 全范围 PWM 滑块调节
- 每 5 秒自动更新一次,接管
pwm_enable=1 确保软件控制权
4. 硬盘状态监控
- 动态检测 SATA 端口映射,自动识别 5 个硬盘槽位
- 支持 4 种状态识别:在位/活动中/休眠/故障
- 通过
hdparm 检测电源状态(30 秒缓存)
- 通过
smartd 日志检测磁盘故障告警(60 秒缓存)
- 实时传输速率计算(基于
/sys/block/*/stat)
5. 双网口监控
- 同时监控
enp2s0(网口1)和 enp3s0(网口2)
- 通过
/sys/class/net/ 读取物理链接状态(carrier)
- 实时上下行速率计算
- 通过
curl 检测外网连通性(30 秒间隔,访问 baidu.com/qq.com)
- 协商速率显示
控制面板
Web 界面采用深色毛玻璃风格,顶部集成以下控制:
- LED 模式切换:手动/自动滑块
- LED 总开关:控制全部 LED 电源
- 速率闪烁开关:独立控制 LED 速率闪烁功能
- LED 测试:一键测试全部 LED(依次点亮→保持→熄灭→恢复)
- 连接状态:实时显示与后端的连接状态
安装依赖
- python312:Python 3.12
- ite-it87_driver:ITE IT87 芯片驱动(用于风扇 PWM 控制)
状态持久化
应用退出时自动保存当前状态(LED 模式、LED 电源、闪烁开关、风扇模式/PWM 值),重启后自动恢复,无需重新配置。
反馈与优化
日志路径:/vol1/@appdata/x1_x1s_ledfancontrol/app.log
没有测试很长时间且设备只有x1,肯定有很多问题,欢迎指点与反馈,目前有以下几点征集大家的意见:
- 有没有必要通过端口访问:目前可以桌面窗口和端口访问,这玩意儿一次设置,后续就不会再打开的,有必要端口吗?
- 风扇风速最低档转速是否合理?4个转速挡位是否合理?
- 闪烁的频率设置是否合理?闪烁阈值设置是否合理?
- 小屏幕的集成:理论没啥问题,但没有设备,难以测试。
- 其他
文件下载地址
通过网盘分享的文件:x1_x1s_ledfancontrol.fpk
链接: https://pan.baidu.com/s/1fnk7rtqmfZn-l8mt-KGiFQ?pwd=kbxh 提取码: kbxh