最近整理并开发了一个用于 Qualcomm QSDK 固件的 LuCI 插件:
luci-app-qsdk-accel,在烧饼论坛首发。项目地址:https://github.com/wwng2333/luci-app-qsdk-accel
当前版本:
v0.5.1这个插件主要用于查看 ECM、NSS、PPE、SFE、SDX 等硬件加速组件的运行状态,帮助判断连接是否真正进入硬件加速,以及排查 NSS 驱动、ECM 前端和固件接口之间的兼容问题。
本插件不是 NSS/ECM 驱动,也不会凭空为固件增加硬件加速能力。使用前需要确保固件已经包含并正确加载相应的 ECM、NSS 或 PPE 模块。
主要功能
加速状态概览
可以集中查看:
- 当前识别到的 ECM 前端:NSS、PPE、SFE 或 SDX
- ECM 服务运行状态
- ECM 当前连接数量
- IPv4/IPv6 硬件加速连接数量
- TCP、UDP 和非端口协议加速数量
- 待处理的加速和减速命令
- ECM 命令平均延迟
- ECM hosts、interfaces、mappings、nodes 数据库统计
- NSS redirect 和前端选择状态
SUnreclaim等内存指标
NSS 实时性能监控
Performance 页面每 5 秒采样一次,可以显示:
- NSS Core 0 当前负载
- NSS 实际运行时钟
- IPv4/IPv6 加速流数量
- Pending queue
- NSS driver、N2H、IPv4、IPv6、Wi-Fi、Wi-FiLi 和 PPPoE 统计
- RX/TX、drop/error 累计计数
- 根据实际采样间隔计算的每秒速率
页面最多保存 180 个样本,大约对应 15 分钟历史。
历史数据只保存在浏览器内存中:
- 不启动后台采样进程
- 不写入
/tmp - 不写入闪存
- 刷新或关闭页面后自动清除
三态能力检测
不同 QSDK 固件中的 debugfs 路径和统计格式差异很大。本插件不会简单地把缺失数据当成零,而是区分三种状态:
- 固件没有提供对应统计文件
- 统计文件存在,但当前版本尚未识别其文本格式
- 已成功解析并显示统计数据
例如:
/sys/kernel/debug/qca-nss-drv/stats/ipv4即使文件存在但格式无法解析,也不会再错误显示为 “此固件未提供”,而会明确提示 “统计源存在,但尚未识别其计数格式”。
如果已经解析到有效计数,但没有匹配到标准 RX/TX、丢包或错误分类,页面会自动回退展示原始计数器。
硬件卸载异常统计
支持查看 IPv4/IPv6 offload exception:
- 异常类型
- 触发次数
- 所占比例
- 常见异常排序
对于没有提供 exception stats 的固件,会显示为可选能力缺失,不会误报为硬件加速故障。
健康检查
内置只读健康检查,可以检查:
- ECM 是否运行
- NSS 驱动是否加载
- 加速前端是否存在
- NSS 固件是否成功启动
- NSS Core 是否被识别
- NSS 时钟是否可读取
- IPv4/IPv6 加速能力
- Wi-Fi NSS 模块或启动日志
- 内存回收压力
- Pending command 是否异常
检查结果分为正常、警告和失败,并附带对应说明。
组件和平台识别
采用 capability-based 检测,不按具体路由器型号硬编码。
目前重点兼容:
- Qualcomm IPQ5000/IPQ50xx
- IPQ807x 等 NSS 平台
- 较老的 QSDK 5.4
- 新版 QSDK/ImmortalWrt
- 单核或双核 NSS
- 不同 ECM 前端目录
- 不同 NSS 时钟节点
- 不同 Wi-Fi NSS/Wi-FiLi 驱动组合
旧版 QSDK 没有提供某些 sysctl、debugfs 或 Core 1 时,不会因此直接判定系统异常。
ECM 管理
插件还提供有限的 ECM 管理功能:
- 启动 ECM
- 停止 ECM
- 重启 ECM
- 清理 ECM 连接
- 可选的延迟启动配置
可能影响现有连接的操作都会要求确认。
诊断信息导出
支持生成和下载诊断信息:
- 文本诊断报告
- JSON 诊断快照
- 平台、ECM、NSS 和 telemetry 状态
- 近期相关内核日志
- NSS 客户端能力
- ECM exception 信息
仓库中还提供了脱敏采集脚本,方便收集不同 QSDK 固件的接口差异。采集过程会对 MAC 地址等信息进行脱敏。
APK 安装方法
APK 适用于采用 APK 包管理器的新版 OpenWrt/ImmortalWrt。
请先从 GitHub Release 下载与你的固件匹配的
.apk文件,然后上传到路由器的/tmp目录。在电脑上执行:
scp luci-app-qsdk-accel-*.apk [email protected]:/tmp/登录路由器:
ssh [email protected]安装软件包:
apk add --allow-untrusted /tmp/luci-app-qsdk-accel-*.apk安装后重启 rpcd:
/etc/init.d/rpcd restart如果 LuCI 菜单没有立即出现,可以退出 LuCI 后重新登录,或者清除浏览器缓存。
插件入口:
状态 → QSDK Acceleration升级已有版本
先把新版本上传到
/tmp,然后再次执行:apk add --allow-untrusted /tmp/luci-app-qsdk-accel-*.apk /etc/init.d/rpcd restart建议确保
/tmp中只保留一个版本的软件包,避免通配符同时匹配多个 APK。可选:安装前校验文件
如果 Release 同时提供了
SHA256SUMS,可以将它和 APK 放在同一目录并执行:cd /tmp sha256sum -c SHA256SUMS校验通过后再安装。
关于旧版 IPK 固件
OpenWrt/ImmortalWrt 23.05、21.02 以及其他使用
opkg的旧固件不能安装 APK,需要下载对应的.ipk文件:opkg install /tmp/luci-app-qsdk-accel_*.ipk /etc/init.d/rpcd restartAPK 和 IPK 不能混用,请根据固件实际使用的包管理器选择。
依赖说明
插件依赖:
luci-base rpcd jsonfilter正常情况下,配置好软件源后,包管理器会自动处理这些依赖。
ECM、NSS、PPE 等内核驱动需要由固件自身提供,本插件不会自动安装或替换任何加速驱动。
安全与兼容说明
- 性能监控和诊断接口均为只读。
- 不会自动修改 vendor ECM 参数。
- 不会自动调节 NSS 时钟。
- 不会持久化性能历史。
- 不存在的可选统计项不会被当作零值。
- 缺少 Core 1、exception stats 或 Wi-Fi stats 不一定表示硬件加速异常。
- 停止、重启或清理 ECM 连接可能短暂影响现有网络连接。
如果遇到某项显示 “统计源存在,但尚未识别其计数格式”,欢迎使用仓库里的采集脚本生成脱敏信息并反馈,我会继续补充不同 QSDK 固件的解析兼容。
- 收藏支持反对打赏
好东西
@doit #1 谢谢支持,欢迎 issue/PR。
ipq6000 系列的还不行么?
@cyang #3 没有设备无法测试,理论上可以用。有问题的话请运行状态采集脚本 https://github.com/wwng2333/luci-app-qsdk-accel/blob/main/tools/collect-ipq-platform-info.sh 发 issue,注意脱敏。
好
三态检测这想法挺实在。
@BSD #6 你是什么 AI?

牛逼啊
@Xshell #8 我还在坚持用 xshell
