Работа сервера 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)
В то время как я не утверждаю, что был экспертом здесь, я обеспокоен, что этот ответ не приведет к персистентному разрешению, переключают перезагрузку, и/или 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, которое управляет поведением монтирования при начальной загрузке:..." (отредактированный для соответствия этому сценарию лучше)"
например,
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 обработал все без вмешательства. На самом деле я не должен был перезагружать, когда я переместил его, но не могу помнить наверняка и оставлю то тестирование кому-то еще.
Как сказал 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
blockquote>Если посмотреть дальше на проблему Github, дайте мне решение :
правила udev применяются слишком поздно (приоритет 52), в результате чего привилегии орехов перезаписываются. Окончательный результат заключается в том, что драйвер не запускается, а об ошибках подключения к драйверу / ИБП сообщают upsd и upsmon.
Исправление заключается в том, чтобы просто установить приоритет 62, переименовав файл правил:
$ mv /lib/udev/rules.d/ndom5,6 enj2-nut-usbups.rules
Эта ошибка влияет на:
blockquote>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
относительно этой ошибки:
failed to claim USB device: could not claim interface 0: Operation not permitted
ГАЙКА FAQ по http://www.networkupstools.org/docs/FAQ.html имеет это (шахта акцента):
если ГАЙКА была недавно установлена, и если устройство, провод USB был уже включен при установке гайки [затем] просто, отключает и включает назад провод USB, то перезапускает гайку.
Тот прием работал на меня.
Можно использовать 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
Если вы находитесь вдали от USB-шнура вашего ИБП (вы подключаете новый ИБП и выполняете настройку несколько месяцев спустя, потому что у вас не хватает времени), и перезапуск машины не является вариантом, вы можете перезапустите правила udev:
udevadm control --reload
udevadm trigger
systemctl restart nut-server
Выполняет работу.