Подключение UPS с USB-интерфейсом

Аватар пользователя Andre

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

Есть хорошо зарекомендовавший себя в работе UPS Powercom BNT-600AP из серии Black Knight Pro:

которому слегка не повезло - он тоже оснащен USB-интерфейсом.

Производитель оснащает его управляющим софтом для линукса (в атаче). Именно управляющим софтом, а не драйвером - в этом семействе UPS применена именно такая концепция.

Софт представляет собой всего 2 исполняемых файлика - upsmon_usbv092 и down, которые согласно инструкции нужно положить в каталог /upsmon, а второй еще и в корень "/".

После чего нужно запустить софт в работу командой

./upsmon_usb1 Parameter_A Parameter_B Parameter_Cгде

- Parameter_A - время отсутствия сетевого напряжения, после которого UPS должен дать серверу команду на выключение
- Parameter_A - время, которое отводится серверу на shutdown
- Parameter_C - обозначен просто: USB Name

Вот с этим третьим параметром и вся загвоздка - непонятно, какое значение нужно прописывать.

Если бы UPS был бы с RS-232 интерфейсом, то в качестве этого параметра нужно указывать dev/ttyS0

Но вот в одной из других инструкций удалось подсмотреть такой пример:

./upsmon_usb1 100 120 /dev/usb/hid/hiddev0
Однако в списке имеющихся в системе портов обнаружились только такие:

usbdev1.1
usbdev1.3
usbdev2.1
usbdev3.1

да и то их номера иногда изменяются после перезапуска линукса.

Попытка подставить эти порты в качестве параметра "C" дает один и тот же результат:

/dev/usbdev1.1 is not UPS

В чем тут загвоздка?

PS. Оборудование исправно - виндовс, запускаемая на этом же комьютере, обнаруживает UPS и работает с ним без проблем.
Также и линукс ASPLinux 11.2 успешно работает с этими USB-портами - флешка, USB-плейер на этих портах ведут себя нормально.

ВложениеРазмер
linux_usb_v092.zip10.7 КБ
Аватар пользователя IsakovAN

Подключение UPS с USB-интерфейсом

http://www.networkupstools.org/
Все эти дрова из комплекта - туфта. К моему тоже дрова прилагались. Даже работали. Но по сравнению с nut это все детский лепет!

Аватар пользователя Andre

Подключение UPS с USB-интерфейсом

IsakovAN,
И с nut, и с этой ссылки все начиналось. Но такой подход требует наличия драйверов к UPS, которые у данной модели не существует.

Аватар пользователя BigAndy

Подключение UPS с USB-интерфейсом

Andre писал(а):
Если бы UPS был бы с RS-232 интерфейсом, то в качестве этого параметра нужно указывать dev/ttyS0

Но вот в одной из других инструкций удалось подсмотреть такой пример:

Есть подозрение, что эта штуковина монтирруется в /dev/ttyACMx
Постмотрите.
Посмотрите, куда симлинкнуты usbdevX.Y
Если usb девайс действительно симлинкнут на ttyacmX , то симлинкните егона usbdev.
Так по крайней мере мне помнится. Года два назад прибил на большинстве udev, hal и kudzu - и радуюсь отсутсвию разных фокусов. Оно конечно можно haldaemon настоить.. Но надо ли?

Аватар пользователя Andre

Re: Подключение UPS с USB-интерфейсом

BigAndy писал(а):
Есть подозрение, что эта штуковина монтирруется в /dev/ttyACMx

Увы, нет подобных устройств в системе - только ttyXY и ttyS0..3

Аватар пользователя IsakovAN

Подключение UPS с USB-интерфейсом

Andre писал(а):
Но такой подход требует наличия драйверов к UPS, которые у данной модели не существует.

man powercom пробовали?

Аватар пользователя Andre

Re: Подключение UPS с USB-интерфейсом

IsakovAN писал(а):
man powercom пробовали?

Да что там man - перепахано на порядок больше манускриптов, но все упирается в что, что исключительно все они базируются на нормальном интерфейсе - RS-232, здесь же - USB.
И вся проблема скорее в том, что в линуксе почему-то не появляются устройства типа hiddevX, с которыми можно было бы работать (в виндовсе подобное устройство появляется).

Как вдруг сегодня сегодня в папке /dev было замечено ранее отсутствующее устройство /dev/hiddev0 !
(почему появилось - не знаю, не спрашивайте, экспериментов по приручению данного юпса было поставлено такое несметное количество, что был пропущен момент его появления).

Теперь эксперименты ушли в направлении изучения этого устройства на предмет управления им UPS.

Аватар пользователя IsakovAN

Re: Подключение UPS с USB-интерфейсом

Andre писал(а):
Как вдруг сегодня сегодня в папке /dev было замечено ранее отсутствующее устройство /dev/hiddev0

На вопрос почему hiddevа нет отвечает команда:

zcat /proc/config.gz | grep -i hid

Она ДОЛЖНА показывать включенные опции CONFIG_USB_HID и CONFIG_USB_HIDDEV

Andre писал(а):
Да что там man - перепахано на порядок больше манускриптов, но все упирается в что, что исключительно все они базируются на нормальном интерфейсе - RS-232, здесь же - USB.

Значит оные манускрипты вы не внимательно читали. Идем на http://www.networkupstools.org/faq/ и ищем по USB:

Цитата:
Q: I just bought a new WhizBang UPS that has a USB connector. How do
I monitor it?

A: There are several driver to support USB models.

- usbhid-ups supports various manufacturers complying to the HID standard,
- tripplite_usb supports various Tripp-Lite units,
- bcmxcp_usb supports various Powerware units.

Refer to the "driver-name" (Поражён manpage for more information.

Ищем файлы, входящие в пакет NUT, в имени которых встречается USB:

Цитата:
# qlist -e nut | grep -i usb
/etc/udev/rules.d/70-nut-usbups.rules
/lib/nut/bcmxcp_usb
/lib/nut/tripplite_usb
/usr/share/man/man8/tripplite_usb.8.bz2
/usr/share/man/man8/bcmxcp_usb.8.bz2

В первом же файле находим интереснейшую информацию:

Цитата:
# Powercom - usbhid-ups
SYSFS{idVendor}=="0d9f", SYSFS{idProduct}=="0001", MODE="664", GROUP="nut"

О чем это нам говорит? О том, что с Powercomовским USBшникам нужно использовать драйвер usbhid-ups.

Аватар пользователя Andre

Re: Подключение UPS с USB-интерфейсом

В-общем, новости плохие, но это тоже новости.

Итак, устанавливаю управляющий софт NUT.
Для ASPLinux 11.2 подошли федоровские пакеты:

nut-client-2.0.3-0.fc4.2.i386.rpm
nut-2.0.3-0.fc4.2.i386.rpm

# rpm - ihv nut-client-2.0.3-0.fc4.2.i386.rpm nut-2.0.3-0.fc4.2.i386.rpm

Корректирую фрагмент конфига /etc/ups/ups.conf следующим образом:

[powerpal]
	driver = powercom
	port = /dev/hiddev0
	desc = "Web server"

где driver - имя драйвера для UPS семейства POWERCOM, взятое из этой таблицы.

Теперь пытаюсь стартовать юпиэсовский сервис:

# upsdrvctl start

- но фигушки - в ответ вываливается афигительно информативная месага:

Network UPS Tools - PowerCom and similars protocol UPS driver $ Revision: 0.5 $ (2.0.3)
Network UPS Tools - UPS driver controller 2.0.3

Unable to open /dev/hiddev0: Permission denied

 Current user id: nut (57)
 Serial port owner: root (0)
 Serial port group: root (0)
 Mode of port: 0600

Things to try:
 - Use another port (with the right permissions)
 - Fix the port owner/group or permissions on this port
 - Run this driver as another user (upsdrvctl -u or 'user=...' in ups.conf).
   See upsdrvctl(8) and ups.conf(5).

Fatal error: unusable configuration
Driver failed to start (exit status=1)

из которой становится ясно, что все плохо, а еще не хватает прав для использования вожделенного порта /dev/hiddev0.

Ладно, добавляю права - меняю из 600 на 777.
Надо же - полегчало! Т.е. месага стала намного короче:

Network UPS Tools - USB driver controller 2.03
Network UPS Tools - PowerCom and similars protocol UPS driver $ Revision: 0.5 $ (2.0.3)

tcgetattr(/dev/hiddev0): invalid argument
Driver failed to start (exit staus=1)

Кто-нибудь что-нибудь здесь понимает? :hammer:

PS. Кто там сказал, что в линухе все проще, а мануалы понятнее? :DB:
В винде все поставил и настроил за 15 минут.
Зато в линухе уже целую неделю до одури читаю пи****тые мануалы и ставлю эксперименты один за одним, а толку - никакого Блюёт

И если знатоки ничего дельного, кроме "кури ман", подсказать не могут, то значит, эта гипотеза о простоте на деле ничего не стоит.

Аватар пользователя Andre

Подключение UPS с USB-интерфейсом

IsakovAN,
Сорри, пока писал свой пост, за это время появился ваш. Щас буду его осваивать.

RSS-материал