绿联的 UGOSPro 升级到 1.5.0.2628 之后,UPS 的服务 nut 默认配置文件 ups.conf 添加了硬编码的延迟属性
offdelay = 10ondelay = 5
这个指定参数可能导致 nut 的 ups 识别驱动无法启动在我的雷迪司 H1000 报错
setvar(ups.delay.start, 5)setvar: value out of range [ups.delay.start: 5]Start delay '5' out of rangeDriver failed to start (exit status=1)
翻查了一下 nut 的源码 drivers/nutdrv_qx.c 和相关文档nutdocs
延迟值需要设备支持这么低否则会报错
if (dstate_getinfo("ups.delay.start")) { /* Retrieve user defined delay settings */ val = getval(QX_VAR_ONDELAY); if (val && setvar("ups.delay.start", val) != STAT_SET_HANDLED) { fatalx(EXIT_FAILURE, "Start delay '%s' out of range", val); } }
nut 在文档nutdocs提及了部分设备可能不支持低于 3 分钟的启动延时,驱动自带默认参数为 180 秒是适合大部分设备的值
绿联直接硬编码延时为 5 秒,如果他们发版前真测试了,那大概就只针对他自家 UPS 测试了
这种故障使用第三方 UPS 的只能下底层排查,但是这个参数默认又不需要修改,往好点说是屎上雕花雕出了问题
有罪推测的话总不能市占还没起来,就开始学上群晖给用户下绊子强推自家的 ups 吧