使用伊顿 3S UPS 启动网络 UPS 工具时出现问题

Zeo*_*ite 11 server usb ups

在 Eaton 3S 700VA UPS 上运行 Ubuntu 服务器。Eaton 的 USB 连接进入我的 Ubuntu 服务器。我正在尝试使用NUT来管理 UPS。

经过sudo su“ING

cat /etc/nut/ups.conf

[eaton]
    driver = usbhid-ups
    port = auto
    desc = "Eaton 3S"
Run Code Online (Sandbox Code Playgroud)

upsdrvctl -t start

Network UPS Tools - UPS driver controller 2.6.1
*** Testing mode: not calling exec/kill
   0.000000 
   0.000805 Starting UPS: eaton
   0.000955 exec:  /lib/nut/usbhid-ups -a eaton
Run Code Online (Sandbox Code Playgroud)

upsdrvctl start

Network UPS Tools - UPS driver controller 2.6.1
Network UPS Tools - Generic HID driver 0.35 (2.6.1)
USB communication driver 0.31
Can't claim USB device [0463:ffff]: could not detach kernel driver from interface 0: Operation not permitted
Driver failed to start (exit status=1)
Run Code Online (Sandbox Code Playgroud)

use*_*096 11

虽然我不声称自己是这里的专家,但我担心这个答案不会导致重新启动后的持久权限更改,和/或来自 UPS 的 USB 电缆被移动到不同的端口。

遵循此处的信息:Nannerpuss 的沉思:NUT - 网络 UPS 工具 - 在 Ubuntu 上

“...问题涉及到 Ubuntu 将设备挂载为 root 所拥有的事实,但是 nut 守护进程掉到一个没有必要访问权限的非特权帐户。简单的解决方法是使用 udev 来调整设备权限。

连接设备并(以 root 身份)运行 lsusb 并找到它。请注意总线和设备 ID 以及供应商:产品 ID 对...."

使用上述答案中的输出:

$ lsusb
Bus 002 Device 004: ID 051d:0002 American Power Conversion Uninterruptible Power Supply   
Run Code Online (Sandbox Code Playgroud)

再次从链接“...您可以创建一个 udev 规则来控制启动时的挂载行为:...”(已编辑以更好地匹配此场景)”

  • 使用您最喜欢的文本编辑器制作(最有可能)一个新的 udev rules.d 文件。对于同一操作,该数字必须高于任何其他 udev.d 规则文件:

例如

sudo nano /etc/udev/rules.d/90-nut-ups.rules

# /etc/udev/rules.d/90-nut-ups.rules
ACTION=="add", \
SUBSYSTEM=="usb", \
ATTR{idVendor}=="051d", ATTR{idProduct}=="0002", \
MODE="0660", GROUP="nut"
Run Code Online (Sandbox Code Playgroud)

该规则通过与 UPS 匹配的供应商和产品监视 USB 设备添加。然后将模式设置为 0660 并将组设置为 nut 而不是默认根。

请注意,此答案使用 660 权限而不是 666 权限,因为这应该足够且更安全。

重新加载 udev(重新启动,或者从 UPS 的 pc 端口拔下然后重新插入 USB 电缆),然后断开并重新连接设备并测试新权限是否正确。这部分我不清楚。无论如何,一旦nut用户组对设备进行了读写,应该就可以成功启动了。

udev rules.d 编辑确实在我的 12.04.2 系统上工作,即使我将 USB 电缆移动到不同的端口,导致 lsusb 输出上的总线设备编号不同。Udev 在没有干预的情况下处理了所有事情。事实上,当我移动它时,我可能不必重新启动,但不能肯定地记得并将测试留给其他人。


小智 9

例如

$ lsusb
Bus 002 Device 004: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
$ chmod 0666 /dev/bus/usb/002/004
Run Code Online (Sandbox Code Playgroud)