Неисправность запуска сетевых инструментов ИБП с ИБП Eaton 3S

Работа сервера Ubuntu на ИБП Eaton 3S 700VA. USB-соединение Eaton входит в мой Ubuntu Server. Я пытаюсь использовать NUT для управления ИБП.

После sudo su '

cat /etc/nut/ups.conf:

[eaton]
    driver = usbhid-ups
    port = auto
    desc = "Eaton 3S"

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

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)
10
задан 28 February 2013 в 13:22

5 ответов

В то время как я не утверждаю, что был экспертом здесь, я обеспокоен, что этот ответ не приведет к персистентному разрешению, переключают перезагрузку, и/или USB-кабель от UPS перемещен в другой порт.

После информации отсюда: Размышления Nannerpuss: ГАЙКА - Сеть Инструменты UPS - на Ubuntu.

"... Проблема включает то, что Ubuntu монтирует устройство, как принадлежится корню, но демон гайки опускается до непривилегированной учетной записи, которая не имеет необходимого доступа. Простая фиксация должна использовать udev для корректировки полномочий устройства.

Подключите устройство, и (как корень) выполняет lsusb и определяют местоположение его. Отметьте идентификаторы Шины и Устройства, а также идентификационную пару Vendor:Product...."

использование вывода как в вышеупомянутом ответе:

$ lsusb
Bus 002 Device 004: ID 051d:0002 American Power Conversion Uninterruptible Power Supply   

снова из ссылки "... Можно создать правило 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"

Правило наблюдает за дополнениями USB-устройства с поставщиком и продуктом, которые соответствуют UPS. Это затем устанавливает режим на 0660 и группу к гайке вместо корня по умолчанию.

Обратите внимание, что этот ответ использует 660 разрешений, а не 666, так как это должно быть достаточным и более безопасным.

Перезагрузите udev (перезагрузка, или возможно отключающий затем ре, включающее USB-кабель от UPS в порте ПК), затем разъедините и повторно подключите устройство и тест, что новые полномочия корректны. Я неясное на этой части. В любом случае, после того как группа пользователей гайки читала и запись на устройстве, это должно смочь запуститься успешно.

udev rules.d редактирование действительно работал над моими 12.04.2 системами, даже когда я переместил USB-кабель в другой порт, приводящий к различным Номерам устройств Шины на выводе lsusb. Udev обработал все без вмешательства. На самом деле я не должен был перезагружать, когда я переместил его, но не могу помнить наверняка и оставлю то тестирование кому-то еще.

10
ответ дан 28 February 2013 в 13:22

Как сказал ndemou, FAQ по NUT знает об этой проблеме, а также выпущенный патч, исправляющий ошибку. Но старые стабильные дистрибутивы могут быть затронуты. Надеюсь, решение очень простое ...

Из NUT FAQ: «Мой USB-ИБП поддерживается, но не работает!» :

В Linux предусмотрены правила udev для установки правильных прав доступа к файлу устройства. Это позволяет драйверу NUT взаимодействовать с ИБП через этот файл устройства.

Однако драйвер может все еще не запускаться и не поддерживать устройство с сообщением типа:

не удалось запросить USB-устройство: не может запросить интерфейс 0: операция не разрешена

Работа не разрешено сообщение, указывающее на проблему с привилегиями. Наиболее частая проблема заключается в том, что udev фактически не применял правило:

if NUT has been freshly installed,
and if the device USB cord was already plugged when installing NUT. 

В этом случае просто отключите и снова подключите USB-шнур, затем перезапустите NUT.

Произошла ошибка в именовании файла правил NUT udev, в результате чего правила были переопределены другим файлом конфигурации udev. Хотя это было исправлено в основной ветке Git, ваш дистрибутив все еще может быть затронут. Подробности доступны в следующем выпуске Github: https://github.com/networkupstools/nut/issues/140

Если посмотреть дальше на проблему Github, дайте мне решение :

правила udev применяются слишком поздно (приоритет 52), в результате чего привилегии орехов перезаписываются. Окончательный результат заключается в том, что драйвер не запускается, а об ошибках подключения к драйверу / ИБП сообщают upsd и upsmon.

Исправление заключается в том, чтобы просто установить приоритет 62, переименовав файл правил:

$ mv /lib/udev/rules.d/ndom5,6 enj2-nut-usbups.rules

Эта ошибка влияет на:

Debian: http://bugs.debian.org/721600
Fedora / Redhat: https://bugzilla.redhat.com/show_bug.cgi?id=488368
Ubuntu: https://bugs.launchpad.net/debian/+source/nut/+bug/1099947 and probably all Linux distribution
0
ответ дан 28 February 2013 в 13:22

относительно этой ошибки:

 failed to claim USB device: could not claim interface 0: Operation not permitted

ГАЙКА FAQ по http://www.networkupstools.org/docs/FAQ.html имеет это (шахта акцента):

если ГАЙКА была недавно установлена, и если устройство, провод USB был уже включен при установке гайки [затем] просто, отключает и включает назад провод USB, то перезапускает гайку.

Тот прием работал на меня.

3
ответ дан 28 February 2013 в 13:22
  • Можно использовать lsusb узнать номер шины и номер устройства

  • Затем измените разрешение на устройство

    chmod 0666 /dev/bus/usb/[bus number]/[device number]
    

Например,

$ lsusb
Bus 002 Device 004: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
$ chmod 0666 /dev/bus/usb/002/004
9
ответ дан 28 February 2013 в 13:22

Если вы находитесь вдали от USB-шнура вашего ИБП (вы подключаете новый ИБП и выполняете настройку несколько месяцев спустя, потому что у вас не хватает времени), и перезапуск машины не является вариантом, вы можете перезапустите правила udev:

udevadm control --reload
udevadm trigger
systemctl restart nut-server

Выполняет работу.

1
ответ дан 3 December 2019 в 11:09

Другие вопросы по тегам:

Похожие вопросы: