Настройка NUT + Smart Power Pro 1000 в FreeBSD 9.1 через USB

10.04.2013, рубрики: FreeBSD | Теги: , , | 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

Возможно, что-то забыл указать, писалось на скорую руку, по горячим следам.
У кого не будет работать, милости прошу отписаться в комментариях.


431 комментарий на запись “Настройка NUT + Smart Power Pro 1000 в FreeBSD 9.1 через USB”

  1. 1 rem сказала в 13:40, 15.04.2013:

    приветствую...

    а как с Вами связаться можно? спасибо

  2. 2 Игорь сказала в 9:06, 29.04.2013:

    Во-первых, спасибо за сайт. Добавил к себе в закладки. Почитал интересные статьи. Уже скопировал себе вот это: 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?

  3. 3 silent сказала в 17:44, 29.04.2013:

    Мне достался Powercomm по наследству от админа, без USB кабеля. Видать UPS вообще к серверу не был никогда подключен. Я приобрел такой провод. С ним работает без проблем.

    Настройки для вашего случая конечно должны подойти, дерзайте!

  4. 4 Игорь сказала в 12:01, 30.04.2013:

    Спасибо за подсказку 🙂

  5. 5 [email protected] сказала в 20:24, 15.04.2014:

    [email protected]

  6. 6 sergey сказала в 13:29, 09.12.2015:

    «Ошибка возникает из-за прав доступа к USB девайсам.

    Для того чтобы, NUT запустился, правим стартовый скрипт /usr/local/etc/rc.d/nut»

    Ещё как вариант(при обновлении портов будет более удобным, т.к. rc-скрипты перезаписываются):

    добавление пользователя uucp от которого стартует драйвер blazer_usb в группу tty — она имеет полный доступ к устройствам в /dev/*

    #pw groupmod uucp -M tty


Оставить комментарий