Настройка NUT + Smart Power Pro 1000 в FreeBSD 9.1 через USB
10.04.2013, рубрики: FreeBSD | Теги: FreeBSD, Ippon, NUT | 431 комментарий »Имеем два сервера с FreeBSD 9.1-RELEASE на борту.
Первый SRV1 — 192.168.0.1, второй SRV2 -192.168.0.2.
Необходимо настроить связку на SRV1 NUT и Smart Power Pro 1000 через USB шнурок, так, чтобы SRV2, в случае падения напряжения, выключился корректно, также как и SRV1.
Приступим
1 | portmaster -d sysutils/nut |
Опции:
Все делаем на SRV1.
1 2 3 4 5 6 7 8 9 10 11 | /usr/ports/sysutils/nut% make showconfig ===> The following configuration options are available for nut-2.6.5_1: BASH=off: Bash Completion support CGI=off: Web CGI interface HAL=off: HAL (Hardware Abstraction Layer) support NEON=on: NEON XML/HTTP support PDU=off: Powerman PDU support SERIAL=off: SERIAL support SNMP=on: SNMP support USB=on: USB support ===> Use 'make config' to modify these settings |
Подключаем UPS к компьютеру через USB шнурок
Смотрим:
1 2 3 4 5 6 | # dmesg | grep ugen ugen0.3: <Cypress Semiconductor> at usbus0 # ll /dev | grep ugen0.3 ll /dev | grep ugen0.3 lrwxr-xr-x 1 root wheel 9B Apr 9 16:54 ugen0.3 -> usb/0.3.0 |
/usr/local/etc/nut/ups.conf
1 2 3 4 | [Ippon] driver = blazer_usb port = /dev/ugen0.3 desc = "Smart Power Pro 1000" |
/usr/local/etc/nut/upsd.conf
1 2 | LISTEN 127.0.0.1 LISTEN 192.168.10.1 |
/usr/local/etc/nut/upsd.users
1 2 3 4 5 6 7 8 9 10 11 12 | [admin] password = admin actions = SET instcmds = ALL [monmaster] password = passw1 upsmon master [monslave] password = passw2 upsmon slave |
/usr/local/etc/nut/upsmon.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | MONITOR IPPON@localhost 1 monmaster passw1 master MINSUPPLIES 1 SHUTDOWNCMD "/sbin/shutdown -p +0" POLLFREQ 5 POLLFREQALERT 5 HOSTSYNC 15 DEADTIME 15 POWERDOWNFLAG /etc/killpower NOTIFYFLAG ONLINE SYSLOG+WALL NOTIFYFLAG ONBATT SYSLOG+WALL NOTIFYFLAG LOWBATT SYSLOG+WALL NOTIFYFLAG SHUTDOWN SYSLOG+WALL RBWARNTIME 43200 NOCOMMWARNTIME 300 FINALDELAY 5 |
В /etc/rc.conf добавляем:
1 2 3 4 5 6 | nut_enable="YES" usbd_enable="YES" devfs_system_ruleset="nut_usb" nut_upslog_ups="Ippon" nut_upslog_enable="YES" nut_upsmon_enable="YES" |
Пробуем запустить:
1 | /usr/local/etc/rc.d/nut start |
Получаем ошибку:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Starting action nut .. Network UPS Tools 2.2.1 - Megatec protocol driver 1.5.9 [megatec_usb] Carlos Rodrigues (c) 2003-2007 Serial-over-USB transport layer for Megatec protocol driver [megatec_usb] Andrey Lelikov (c) 2006, Alexander Gordeev (c) 2006-2007, Jon Gough (c) 2007 No supported devices found. Please check your device availability with 'lsusb' and make sure you have an up-to-date version of NUT. If this does not help, try running the driver with at least 'vendorid' and 'subdriver' options specified. Please refer to the man page for details about these options (man 8 megatec_usb). Please report your results to the NUT user's mailing list <[email protected]>. Driver failed to start (exit status=1) Network UPS Tools - UPS driver controller 2.2.1 |
Ошибка возникает из-за прав доступа к USB девайсам.
Для того чтобы, NUT запустился, правим стартовый скрипт /usr/local/etc/rc.d/nut
1 2 3 4 5 | nut_prestart() { #Добавляем эту строчку chown -h uucp /dev/usb/0.3.0 ${nut_prefix}/libexec/nut/upsdrvctl start } |
И снова запускаем NUT:
1 2 3 4 5 6 7 8 9 10 11 12 | /usr/local/etc/rc.d/nut start Starting nut. Network UPS Tools upsd 2.6.5 listening on 192.168.10.1 port 3493 listening on 127.0.0.1 port 3493 Connected to UPS [Ippon]: blazer_usb-Ippon Broadcast Message from silent@doctor.pd.local (no tty) at 17:44 MSK... Communications with UPS IPPON@localhost established |
Проверяем работу:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # upsc ippon@localhost battery.charge: 100 battery.voltage: 27.80 battery.voltage.high: 26.00 battery.voltage.low: 20.80 battery.voltage.nominal: 24.0 device.type: ups driver.name: blazer_usb driver.parameter.pollinterval: 2 driver.parameter.port: /dev/ugen0.3 driver.version: 2.6.5 driver.version.internal: 0.09 input.current.nominal: 4.0 input.frequency: 50.0 input.frequency.nominal: 50 input.voltage: 233.2 input.voltage.fault: 233.4 input.voltage.nominal: 230 output.voltage: 229.7 ups.beeper.status: enabled ups.delay.shutdown: 30 ups.delay.start: 180 ups.load: 11 ups.productid: 5161 ups.status: OL ups.temperature: 25.0 ups.type: offline / line interactive ups.vendorid: 0665 |
Не забываем запустить:
1 2 | /usr/local/etc/rc.d/nut_upslog start /usr/local/etc/rc.d/nut_upsmon start |
На SRV2 проделываем аналогичную операции.
Кроме добавления записей в /etc/rc.conf:
1 2 | nut_enable="YES" usbd_enable="YES" |
В файле /usr/local/etc/nut/upsmon.conf
вместо строки:
1 | MONITOR IPPON@localhost 1 monmaster passw1 master |
пишем:
1 | MONITOR IPPON@192.168.10.1 1 monslave passw2 slave |
Возможно, что-то забыл указать, писалось на скорую руку, по горячим следам.
У кого не будет работать, милости прошу отписаться в комментариях.
приветствую...
а как с Вами связаться можно? спасибо
Во-первых, спасибо за сайт. Добавил к себе в закладки. Почитал интересные статьи. Уже скопировал себе вот это: dd if=/dev/mem bs=64k skip=15 count=1|strings|less
Во-вторых, у меня есть 2 вопроса к автору по данной теме. Подскажите, пожалуйста, если сможете. Мне достался в наследство «Powercom Smart King XL SXL-1000A-LCD» (есть оба разъёма USB и COM).
1. В бесперебойниках от APC требуется именно тот кабель, который идет в комплекте, а не любой другой. А в случае с Powercom тоже нужен специальный USB-кабель или подойдет любой? Может быть знаете?
2. У меня только один сервер с FreeBSD 9.1 amd64. Подойдут ли мне настройки из статьи, описанные для SRV1?
Мне достался Powercomm по наследству от админа, без USB кабеля. Видать UPS вообще к серверу не был никогда подключен. Я приобрел такой провод. С ним работает без проблем.
Настройки для вашего случая конечно должны подойти, дерзайте!
Спасибо за подсказку 🙂
[email protected]
«Ошибка возникает из-за прав доступа к USB девайсам.
Для того чтобы, NUT запустился, правим стартовый скрипт /usr/local/etc/rc.d/nut»
Ещё как вариант(при обновлении портов будет более удобным, т.к. rc-скрипты перезаписываются):
добавление пользователя uucp от которого стартует драйвер blazer_usb в группу tty — она имеет полный доступ к устройствам в /dev/*
#pw groupmod uucp -M tty