收起左侧

UPS 已被系统与 NUT 正常识别,但飞牛 UI “USB UPS” 页面不显示设备

1
回复
204
查看
[ 复制链接 ]

0

主题

0

回帖

0

牛值

江湖小虾

2026-4-7 15:24:17 显示全部楼层 阅读模式

[BUG] CyberPower / 硕天 USB UPS 已被系统与 NUT 正常识别,但飞牛 UI “USB UPS” 页面不显示设备

一、问题概述

img.jpg

我使用 CyberPower / 硕天 UPS UT650EGC 通过 USB 连接飞牛 NAS,在两台不同版本的飞牛系统上测试:

  • 飞牛 1.1.18
  • 飞牛 1.1.26

两台机器的共同现象是:

  • USB 设备可以被系统正常识别
  • NUT 后端可以识别并读取 UPS 状态
  • 但飞牛前端页面“连接 UPS → USB UPS → 选择设备”中,仍然显示 “暂无数据 / 请接入 USB UPS 设备”

也就是说:

后端正常,前端不显示。

其中:

  • 1.1.18 还存在后端自动配置缺失问题(ups.conf 为空)
  • 1.1.26 后端已经基本正常,但前端页面依旧疑似有设备枚举 / 展示 bug

二、测试环境

1)UPS 设备信息

  • 品牌:CyberPower / 硕天
  • 实际识别型号:UT650EGC
  • USB ID:
    • vendorid = 0764
    • productid = 0501

lsusb 识别结果如下:

Bus 001 Device 003: ID 0764:0501 Cyber Power System, Inc. CP1500 AVR UPS

或:

Bus 001 Device 002: ID 0764:0501 Cyber Power System, Inc. CP1500 AVR UPS

三、飞牛 1.1.18 上的表现

1)初始现象

系统已识别 USB UPS:

lsusb

输出:

Bus 001 Device 002: ID 0764:0501 Cyber Power System, Inc. CP1500 AVR UPS

但是:

upsc -l

报错:

Error: Connection failure: Connection refused

同时:

systemctl status nut-server.service --no-pager -l

显示:

  • nut-server.service 启动失败

进一步查看日志后,发现核心报错为:

Warning: no UPS definitions in ups.conf
Fatal error: at least one UPS must be defined in ups.conf

2)1.1.18 的根因

/etc/nut/ups.conf 实际为空,没有任何 UPS 定义,导致:

  • nut-server.service 无法启动
  • upsc -l 返回 Connection refused

也就是说:

1.1.18 除了 UI 不显示外,还存在后端自动生成 UPS 配置失败的问题。


3)在 1.1.18 上做过的修改

(1)手工写入最小可用配置

写入:

[ups]
    driver = usbhid-ups
    port = auto
    vendorid = 0764
    productid = 0501

对应命令:

sudo tee /etc/nut/ups.conf >/dev/null <<'EOF'
[ups]
    driver = usbhid-ups
    port = auto
    vendorid = 0764
    productid = 0501
EOF

(2)修改 nut.conf

原来:

MODE=netserver

改为:

MODE=standalone

对应命令:

echo 'MODE=standalone' | sudo tee /etc/nut/nut.conf

(3)重启 NUT 服务

sudo systemctl restart nut-driver-enumerator.service
sudo systemctl restart nut-server.service
sudo systemctl restart nut-monitor.service

4)修改后的结果(1.1.18)

nut-server.service 正常运行

systemctl status nut-server.service --no-pager -l

显示:

  • active (running)

并可见:

Connected to UPS [ups]: usbhid-ups-ups

upsc -l 正常

upsc -l

输出:

ups

upsc ups@localhost 正常

示例输出:

battery.charge: 43
battery.runtime: 3108
battery.voltage: 12.8
device.mfr: CPS
device.model: UT650EGC
driver.name: usbhid-ups
driver.parameter.port: auto
driver.parameter.productid: 0501
driver.parameter.vendorid: 0764
input.voltage: 232.0
output.voltage: 232.0
ups.status: OL CHRG
ups.realpower.nominal: 360

这说明:

  • 底层 USB 正常
  • NUT 驱动正常
  • UPS 状态可读
  • 后端已经可以正常工作

5)1.1.18 上仍然存在的问题

虽然命令行层面已经完全正常,但飞牛前端页面中:

  • UPS 类型选择 USB UPS
  • “选择设备” 下拉框仍然显示 暂无数据

也就是说:

1.1.18 在手工修复后端之后,UI 仍然无法显示设备。


6)1.1.18 上尝试过但无效/不建议的改法

曾经尝试把 ups.conf 改成更完整的写法:

[ups]
    driver = usbhid-ups
    port = auto
    vendorid = 0764
    productid = 0501
    vendor = "CPS"
    product = "UT650EGC"
    desc = "CyberPower UT650EGC"

结果:

upsc ups@localhost

报错:

Error: Driver not connected

因此确认:

  • vendor= / product= 这类字段不能随便手工补
  • 对这台 UPS,最稳定的仍是最小配置:
[ups]
    driver = usbhid-ups
    port = auto
    vendorid = 0764
    productid = 0501

四、飞牛 1.1.26 上的表现

1)USB 与 NUT 后端均正常

lsusb

Bus 001 Device 003: ID 0764:0501 Cyber Power System, Inc. CP1500 AVR UPS

upsc -l

Init SSL without certificate database
1514091

这里的 1514091 不是报错,而是 NUT 当前识别到的设备名。

systemctl status nut-server.service --no-pager -l

  • Active: active (running)

说明:

1.1.26 的后端已经明显比 1.1.18 正常,系统已能自动生成并加载 UPS 设备。


2)1.1.26 上 UPS 状态可直接读取

执行:

upsc 1514091@localhost

返回完整 UPS 状态,例如:

battery.charge: 47
battery.charge.low: 10
battery.charge.warning: 20
battery.runtime: 648
battery.voltage: 12.9
device.mfr: CPS
device.model: UT650EGC
driver.name: usbhid-ups
driver.parameter.bus: 001
driver.parameter.port: auto
driver.parameter.product: UT650EGC
driver.parameter.productid: 0501
driver.parameter.vendor: CPS
driver.parameter.vendorid: 0764
input.voltage: 232.0
output.voltage: 233.0
ups.load: 25
ups.realpower.nominal: 360
ups.status: OL CHRG
x.additional.devicetype: USB

说明:

  • 1.1.26 已经能自动完成 NUT 设备定义
  • UPS 已被后端正常接管
  • 状态读取完全正常

3)1.1.26 上仍然存在的问题

即使:

  • lsusb 正常
  • nut-server.service 正常
  • upsc -l 正常
  • upsc 1514091@localhost 正常

飞牛页面中:

  • “连接 UPS”
  • 类型选 USB UPS
  • “选择设备” 下拉框仍显示 暂无数据

也就是说:

1.1.26 已没有 1.1.18 的后端空配置问题,但 UI 仍可能存在设备枚举 / 展示 bug。


五、问题对比总结

飞牛 1.1.18

存在两个问题:

  1. 后端配置生成问题
    • /etc/nut/ups.conf 为空
    • nut-server.service 启动失败
    • 需要手工写入最小配置才能恢复
  2. 前端 UI 不显示问题
    • 即使手工修复后端
    • 页面依旧“暂无数据”

飞牛 1.1.26

后端已经明显修复:

  • nut-server.service 正常
  • upsc -l 正常
  • upsc 设备名@localhost 正常

但仍存在:

  • 前端 UI 不显示设备

六、我的结论

结论 1

这不是 UPS 本身不兼容的问题。

结论 2

这不是 USB 物理连接问题。

结论 3

飞牛底层 NUT 对这台 UPS 的识别和状态读取是正常的。

结论 4

问题主要在飞牛前端 UPS 页面:

后端能识别并读取,前端却不展示设备。

结论 5

版本差异如下:

  • 1.1.18:后端自动配置 + 前端显示都有问题
  • 1.1.26:后端已基本正常,但前端显示问题仍疑似存在

七、建议官方重点排查方向

  1. UPS 页面“选择设备”下拉框的数据来源
    • 是否没有正确读取当前 NUT 已在线设备
  2. 前端是否只能识别某种固定格式的 UPS 配置
    • 导致实际已经工作的设备不被展示
  3. 1.1.18 的自动配置流程
    • 为什么会出现 ups.conf 为空的情况
  4. 1.1.26 的页面逻辑
    • 为什么 upsc -lupsc 设备名@localhost 已正常,但 UI 仍然暂无数据

八、官方可用于复现/判断的关键命令

USB 层识别

lsusb

NUT 服务状态

systemctl status nut-server.service --no-pager -l

查看当前 NUT 识别到的设备

upsc -l

查看 UPS 实时状态

1.1.18 修复后:

upsc ups@localhost

1.1.26 自动识别后:

upsc 1514091@localhost

九、希望官方确认的问题

  1. 飞牛 UPS 页面是否存在“后端已识别但前端不显示”的已知 bug
  2. 1.1.18 中 ups.conf 为空是否属于自动配置异常
  3. 1.1.26 中 UI 是否仍存在设备枚举/展示问题
  4. 该问题是否影响其他 CyberPower / 硕天 USB UPS 型号

十、附加说明

1.1.18 最终可用配置(手工修复后)

/etc/nut/nut.conf

MODE=standalone

/etc/nut/ups.conf

[ups]
    driver = usbhid-ups
    port = auto
    vendorid = 0764
    productid = 0501
收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

300

主题

1万

回帖

0

牛值

管理员

fnOS1.0上线纪念勋章

2026-4-9 15:15:36 显示全部楼层

已收到反馈 我转给负责的同事确认一下

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则