LINUX.ORG.RU

ИБП Powercom BNT-1000AP и NUT

 , ,


0

2

Доброго дня, коллеги.

Опишу свою проблему: У нас на работе есть сервер, который подключен к сети 220В через ИБП Powercom BNT-1000AP. Появилась мысль сделать так, чтобы при разряде батареи сервер начинал завершение работы.

Сервер работает под гентой:

%machine_name% ~ # uname -a
Linux %machine_name% 3.14.58-gentoo-r1-ovs-testing-lts #1 SMP Sat May 7 12:47:07 EEST 2016 x86_64 Intel(R) Xeon(R) CPU X5650 @ 2.67GHz GenuineIntel GNU/Linux

ИБП видится в системе как HID-устройство:

[1456081.093757] usb 7-2: new low-speed USB device number 2 using uhci_hcd
[1456081.283743] usb 7-2: New USB device found, idVendor=0d9f, idProduct=0004
[1456081.283747] usb 7-2: New USB device strings: Mfr=3, Product=1, SerialNumber=2
[1456081.283750] usb 7-2: Product: HID UPS Battery
[1456081.283752] usb 7-2: Manufacturer: POWERCOM Co.,LTD
[1456081.283754] usb 7-2: SerialNumber: 004-ABCD-000
[1456081.737947] hid-generic 0003:ABCD:0004.0008: hiddev0,hidraw0: USB HID v1.00 Device [POWERCOM Co.,LTD HID UPS Battery] on usb-0000:00:1d.2-2/input0

Поставил NUT с USE-флагами usb, ups_drivers_powercom, ups_drivers_usbhid-ups. Настроил, и ничего - все попытки запуска оканчиаются неудачей. upsdrv не конектится к ИБП.

При использовании драйвера usbhid-ups и конфига

[pcmbnt1000ap]
  driver = usbhid-ups
  port = auto
  pollonly
# port = /dev/usb/hiddev0
  desc = "Powercom BNT-1000AP"
  vendorid = 0d9f
  productid = 0004
# serial = "004-ABCD-000"
имеем:
%machine_name% nut # service upsdrv start
 * Starting UPS drivers ...
Network UPS Tools - UPS driver controller 2.6.5
Network UPS Tools - Generic HID driver 0.37 (2.6.5)
USB communication driver 0.31
No matching HID UPS found
Driver failed to start (exit status=1)
 * Failed to start UPS drivers!                                           [ !! ]
 * ERROR: upsdrv failed to start

Я попробовал все варианты: и указывать порт, и auto; и с vendor id/product id/serial и без них; и с pollonly и без. Результат всегда одинаков. Драйвер powercom вообще работает только с моделями, подключающимися через RS-232 или виртуальный COM-порт.

Куда копать?

P.S. Сервер ставил и настраивал его не я, а другой админ. На сервере крутится много важного, и надо его не сломать своими єкспериментами.

И да, я знаю что єта модель ИБП полное Г.., но увы, надо работать с тем что есть.

Попробуйте в консолии от root запустить драйвер UPS'а,

/sbin/usbhid-ups -DDDD -a pcmbnt1000ap

может что интерестное напишет.

mky ★★★★★ ()
[powercom]	
	driver = powercom
	port = /dev/ttyUSB0
	desc = "BNT-800"
	type = BNT-other

+ перевести драйвер в режим ком-порта.

еще минус - не всегда корректно показываются напряжение/частота ЕМНИП. заряд батарей вроде адекватно показывается.

как вариант - попробовать usbhidups

NiTr0 ★★★★★ ()
Ответ на: комментарий от mky

Попробуйте в консолии от root запустить драйвер UPS'а,
/sbin/usbhid-ups -DDDD -a pcmbnt1000ap

Это годный совет, но usbhid-ups я не нашел в /bin, /sbin и /usr/bin Все «драйверы» нашлись в /lib/nut

Запуск usbhid-ups с выводом отладочной информации вывел мне ошибку:

%machine_name% nut # ./usbhid-ups -DDDD -a pcmbnt1000ap
Network UPS Tools - Generic HID driver 0.37 (2.6.5)
USB communication driver 0.31
   0.000000     debug level is '4'
   0.000360     upsdrv_initups...

   0.001393     Checking device (0D9F/0004) (007/002)
   0.001400     Failed to open device, skipping. (Permission denied)

   0.001435     No appropriate HID device found
   0.001439     No matching HID UPS found

Всё тайное стало явным, и стало понятно, что проблема в правах доступа. Тем более, что при запуске с опцией -u root всё работало. Короче-говоря, нужно было добавить пользователя nut в группу usb. Решение было таким:

%machine_name% nut # usermod -G usb nut

После этого всё заработало с конфигом:

[pcmbnt1000ap]
  driver = usbhid-ups
  port = auto
  desc = "Powercom BNT-1000AP"
  vendorid = 0d9f
  productid = 0004

Ув. NiTr0

+ перевести драйвер в режим ком-порта.

не прокатит, т.к. из HID-устройства нельзя сделать CDC-устройство (конвертер USB <-> UART), как бы вам этого не хотелось.

В любом случае - всем спасибо!

GentooUser ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.