Jump to content
el matador

Настройка NUT для Keenetic

Recommended Posts

Вообще не нашел как настраивать?

Установил пакет, нашел дрова для моего Cyber power. Подключил по ЮСБи. А что дальше делать?

Share this post


Link to post
Share on other sites

Подскажите пожалуйста как полноценно настроить NUT для Keenetic при использовании ИБП Cyber Power Util 850EI?

Share this post


Link to post
Share on other sites

Всем добрый день, может кто помочь с настройкой nut?

В общем суть в следующем: имеется ups Powercom WOW-500U, хочу на роутере поднять nut-server для дальнейшей интеграции в Home assistant.

С официального сайта получил следующую информацию:

 

Скрытый текст

WOW-500-1.thumb.jpg.7306f1b5101c7f46630d4046f4c2df6b.jpg

 

Далее до установил компонент прошивки Keenetic OS, так как требуется модуль ядра "usbserial":

Скрытый текст

WOW-500-2.jpg.1e904618a0dc5be2bcec9763129d0e90.jpg

Журнал Keenetic'а при этом выглядит следующим образом:

 

Скрытый текст

WOW-500.thumb.jpg.2bba5d506bd1dab50b8def9e70fd13c4.jpg

 

Теперь перехожу непосредственно к установке и настройке nut:

Скрытый текст

 

login as: root
root@192.168.2.1's password:


BusyBox v1.31.1 () built-in shell (ash)

~ # opkg update
Downloading http://bin.entware.net/mipselsf-k3.4/Packages.gz
Updated list of available packages in /opt/var/opkg-lists/entware
Downloading http://bin.entware.net/mipselsf-k3.4/keenetic/Packages.gz
Updated list of available packages in /opt/var/opkg-lists/keendev
~ # opkg install nut-server nut-driver-powercom
Installing nut-server (2.7.4-20) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/nut-server_2.7.4-20_mipsel-3.4.ipk
Installing nut (2.7.4-20) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/nut_2.7.4-20_mipsel-3.4.ipk
Installing zlib (1.2.11-3) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/zlib_1.2.11-3_mipsel-3.4.ipk
Installing libopenssl (1.1.1g-1) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/libopenssl_1.1.1g-1_mipsel-3.4.ipk
Installing libnl-core (3.5.0-1) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/libnl-core_3.5.0-1_mipsel-3.4.ipk
Installing libnl-genl (3.5.0-1) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/libnl-genl_3.5.0-1_mipsel-3.4.ipk
Installing libnl-route (3.5.0-1) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/libnl-route_3.5.0-1_mipsel-3.4.ipk
Installing libnl-nf (3.5.0-1) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/libnl-nf_3.5.0-1_mipsel-3.4.ipk
Installing libnl (3.5.0-1) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/libnl_3.5.0-1_mipsel-3.4.ipk
Installing libpci (3.7.0-1) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/libpci_3.7.0-1_mipsel-3.4.ipk
Installing libnetsnmp (5.8-1) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/libnetsnmp_5.8-1_mipsel-3.4.ipk
Installing libusb-1.0 (1.0.22-2) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/libusb-1.0_1.0.22-2_mipsel-3.4.ipk
Installing libusb-compat (0.1.5-2) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/libusb-compat_0.1.5-2_mipsel-3.4.ipk
Installing nut-common (2.7.4-20) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/nut-common_2.7.4-20_mipsel-3.4.ipk
Installing nut-driver-powercom (2.7.4-20) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/nut-driver-powercom_2.7.4-20_mipsel-3.4.ipk
Configuring nut.
Configuring zlib.
Configuring libopenssl.
Configuring libnl-core.
Configuring libnl-genl.
Configuring libnl-route.
Configuring libnl-nf.
Configuring libnl.
Configuring libpci.
Configuring libnetsnmp.
Configuring libusb-1.0.
Configuring libusb-compat.
Configuring nut-common.
Configuring nut-server.
Configuring nut-driver-powercom.
~ # lsusb
Bus 002 Device 006: ID 090c:1000
Bus 001 Device 001: ID 1d6b:0002
Bus 002 Device 001: ID 1d6b:0003
Bus 001 Device 005: ID 0d9f:0002
~ # echo "MODE=standalone" > /opt/etc/nut/nut.conf
~ # cd /opt/etc/nut/
/opt/etc/nut # ls -l
-rw-------    1 root     root            16 Nov  2 10:33 nut.conf
-rw-------    1 root     root          4618 Sep 11 09:56 ups.conf
-rw-------    1 root     root          4578 Sep 11 09:56 upsd.conf
-rw-------    1 root     root          2131 Sep 11 09:56 upsd.users
/opt/etc/nut # cd
~ # opkg install nano
Installing nano (5.2-1) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/nano_5.2-1_mipsel-3.4.ipk
Installing libncursesw (6.2-1) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/libncursesw_6.2-1_mipsel-3.4.ipk
Installing liblzma (5.2.5-1) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/liblzma_5.2.5-1_mipsel-3.4.ipk
Installing libbz2 (1.0.8-1) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/libbz2_1.0.8-1_mipsel-3.4.ipk
Installing libmagic (5.39-1) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/libmagic_5.39-1_mipsel-3.4.ipk
Installing file (5.39-1) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/file_5.39-1_mipsel-3.4.ipk
Configuring libncursesw.
Configuring liblzma.
Configuring libbz2.
Configuring libmagic.
Configuring file.
Configuring nano.
~ # nano /opt/etc/nut/ups.conf
~ # cd
~ # upsdrvctl start
Network UPS Tools - UPS driver controller merge-with-ng-763-gef6b52f7
Network UPS Tools - PowerCom protocol UPS driver 0.17 (merge-with-ng-763-gef6b52f7)
writing error
~ #

 

В итоге получаю ошибку.

При этом файл nut.conf выглядит так:

Скрытый текст

MODE=standalone

А ups.conf так:

Скрытый текст

[Powercom]
driver = powercom
port = /dev/ttyUSB0
desc = "WOW-500U"

Ну и как говорится, всё, дальше ступор...

WOW-500.jpg

Share this post


Link to post
Share on other sites

Может у кого нибудь все таки есть более детальная инструкция по установке nut в entware? Хоть их в интернете и полно, но приближенных к Entware найти не удается. Вопросов море, и не понятно нужно ли заводить пользователя nut? Что делать с udev о котором идет речь во всех инструкциях?

Share this post


Link to post
Share on other sites

Продолжу беседу сам с собой, авось кто и поможет. Перерыв почти весь интернет мне все таки удалось получить желаемое, выполнив следующее:

1. opkg install nano usbutils
2. opkg install nut nut-server nut-driver-powercom nut-upsc

3. nano /opt/etc/nut/nut.conf

Скрытый текст

MODE=standalone

4. nano /opt/etc/nut/ups.conf

Скрытый текст

[pcm]
    driver = powercom
    port = /dev/ttyUSB0
    type = IMP
    desc = "WOW-500U"

5. upsdrvctl start

6. nano /opt/etc/nut/upsd.conf

Скрытый текст

LISTEN 127.0.0.1 3493

7. nano /opt/etc/nut/upsd.users

Скрытый текст

[admin]
    password = XXX
    actions = SET
    instcmds = ALL

[upsmon]
    password  = XXX
    upsmon master

8. nano /opt/etc/init.d/S15upsd (исправил ARGS="-u admin" на ARGS="-u root")

Скрытый текст

#!/bin/sh

ENABLED=yes
PROCS=upsd
ARGS="-u root"
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

. /opt/etc/init.d/rc.func

9. /opt/etc/init.d/S15upsd start

10. upsc pcm@localhost

Скрытый текст

~ # upsc pcm@localhost
battery.charge: 100.0
device.mfr: PowerCom
device.model: IMP-0AP
device.serial: Unknown
device.type: ups
driver.name: powercom
driver.parameter.pollinterval: 2
driver.parameter.port: /dev/ttyUSB0
driver.parameter.synchronous: no
driver.parameter.type: IMP
driver.version: merge-with-ng-763-gef6b52f7
driver.version.internal: 0.17
input.frequency: 50.00
input.voltage: 230.0
input.voltage.nominal: 220
output.frequency: 50.00
output.voltage: 230.0
ups.load: 10.0
ups.mfr: PowerCom
ups.model: IMP-0AP
ups.model.type: IMP
ups.serial: Unknown
ups.status: OL

Но выплыла другая проблема, всё работает до первой перезагрузки роутера. Как выяснилось, что не запускается "upsdrvctl", хотя наверно все таки запускается, но не получает ответа от UPS, так как в логе роутера присутствует следующее:

Скрытый текст

Ноя 15 18:39:23 root
Started upsd from .
Ноя 15 18:39:24 upsd[697]
listening on 127.0.0.1 port 3493
Ноя 15 18:39:24 upsd[697]
/opt/var/run is world readable
Ноя 15 18:39:24 upsd[697]
Can't connect to UPS [pcm] (powercom-pcm):  
Ноя 15 18:39:24 upsd[705]
Startup successful

В ручную делаю следующее: 

Скрытый текст

/opt/etc/init.d/S15upsd stop

upsdrvctl stop

upsdrvctl start

/opt/etc/init.d/S15upsd start

И снова все работает.

Предположил, что возможно не успевает создаться интерфейс ttyUSB0 в момент старта системы, а к нему уже обращается"upsdrvctl", поэтому внес коррективы в ups.conf в виде добавления строк maxstartdelay = 90, maxretry = 3, retrydelay = 10, user = root. Но и это не помогает.

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

Share this post


Link to post
Share on other sites
9 минут назад, BDV сказал:

Предположил, что возможно не успевает создаться интерфейс ttyUSB0 в момент старта системы, а к нему уже обращается"upsdrvctl", поэтому внес коррективы в ups.conf в виде добавления строк maxstartdelay = 90, maxretry = 3, retrydelay = 10, user = root. Но и это не помогает.

Нет, именно банально не запускается. Скрипт запуска у вас только для upsd. Создайте подобный скрипт для upsdrvctl

Share this post


Link to post
Share on other sites
24 минуты назад, r13 сказал:

Нет, именно банально не запускается. Скрипт запуска у вас только для upsd. Создайте подобный скрипт для upsdrvctl

Я до этого не сталкивался с созданием скриптов, на сколько я понимаю, что в директорию /opt/etc/init.d/ необходимо положить файл "SXXxxx" вот с таким содержимым:

 

Скрытый текст

 

#!/bin/sh

ENABLED=yes
PROCS=upsdrvctl
ARGS="-u root"
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

. /opt/etc/init.d/rc.func

 

Так правильно?

И цифры в имени файла должны быть ниже 15, чтобы он запускался раньше upsd?

Share this post


Link to post
Share on other sites
32 минуты назад, BDV сказал:

Я до этого не сталкивался с созданием скриптов, на сколько я понимаю, что в директорию /opt/etc/init.d/ необходимо положить файл "SXXxxx" вот с таким содержимым:

 

  Скрыть содержимое

 

#!/bin/sh

ENABLED=yes
PROCS=upsdrvctl
ARGS="-u root"
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

. /opt/etc/init.d/rc.func

 

Так правильно?

И цифры в имени файла должны быть ниже 15, чтобы он запускался раньше upsd?

Цифра да, ниже

По поводу аргс, в случае если вашебу приложению нужен этот аргумент для запуска.

Edited by r13

Share this post


Link to post
Share on other sites

Что-то не получается.

Создал файл:

nano /opt/etc/init.d/S14upsdrvctl

Скрытый текст

 

#!/bin/sh

ENABLED=yes
PROCS=upsdrvctl
ARGS=""
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

. /opt/etc/init.d/rc.func

 

Сделал его исполняемым:

chmod +x /opt/etc/init.d/S14upsdrvctl

Запускаю:

/opt/etc/init.d/S14upsdrvctl start

Получаю ошибку:

~ # /opt/etc/init.d/S14upsdrvctl start
/opt/etc/init.d/S14upsdrvctl: line 9: syntax error: unexpected newline

Что я еще упускаю?

Share this post


Link to post
Share on other sites
2 минуты назад, BDV сказал:

Что-то не получается.

Создал файл:

nano /opt/etc/init.d/S14upsdrvctl

  Скрыть содержимое

 

#!/bin/sh

ENABLED=yes
PROCS=upsdrvctl
ARGS=""
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

. /opt/etc/init.d/rc.func

 

Сделал его исполняемым:

chmod +x /opt/etc/init.d/S14upsdrvctl

Запускаю:

/opt/etc/init.d/S14upsdrvctl start

Получаю ошибку:

~ # /opt/etc/init.d/S14upsdrvctl start
/opt/etc/init.d/S14upsdrvctl: line 9: syntax error: unexpected newline

Что я еще упускаю?

Виндовые переносы строк в скрипт не затесались случаем?

Share this post


Link to post
Share on other sites
6 минут назад, r13 сказал:

Виндовые переносы строк в скрипт не затесались случаем?

Как это проверить?

Share this post


Link to post
Share on other sites
Только что, BDV сказал:

Как это проверить?

Ну например в notepad++ посмотреть

Share this post


Link to post
Share on other sites
27 минут назад, r13 сказал:

Ну например в notepad++ посмотреть

Спасибо, реально была проблема с переносами, исправил, но результата так и не добился, вот что получаю:

~ # /opt/etc/init.d/S14upsdrvctl start
 Starting upsdrvctl...              failed.

При этом в ручную запускается:
~ # upsdrvctl start
Network UPS Tools - UPS driver controller merge-with-ng-763-gef6b52f7
Network UPS Tools - PowerCom protocol UPS driver 0.17 (merge-with-ng-763-gef6b52f7)

В секцию "PROCS=upsdrvctl" я правильно написал или это делается как то иначе?

Share this post


Link to post
Share on other sites
13 минуты назад, BDV сказал:

Спасибо, реально была проблема с переносами, исправил, но результата так и не добился, вот что получаю:

~ # /opt/etc/init.d/S14upsdrvctl start
 Starting upsdrvctl...              failed.

При этом в ручную запускается:
~ # upsdrvctl start
Network UPS Tools - UPS driver controller merge-with-ng-763-gef6b52f7
Network UPS Tools - PowerCom protocol UPS driver 0.17 (merge-with-ng-763-gef6b52f7)

В секцию "PROCS=upsdrvctl" я правильно написал или это делается как то иначе?

В секцию ARGS start используемый в ручном запуске добавили?

Share this post


Link to post
Share on other sites

Судя по всему нет:

#!/bin/sh

ENABLED=yes
PROCS=upsdrvctl
ARGS="-u root"
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

. /opt/etc/init.d/rc.func
 

Так должно быть?

ARGS="start"

Еще в какие либо секции что-то нужно добавлять?

Share this post


Link to post
Share on other sites
Только что, BDV сказал:

Судя по всему нет:

#!/bin/sh

ENABLED=yes
PROCS=upsdrvctl
ARGS="-u root"
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

. /opt/etc/init.d/rc.func
 

Так должно быть?

ARGS="start"

Еще в какие либо секции что-то нужно добавлять?

ARGS="start" Должно быть достаточно

Share this post


Link to post
Share on other sites

r13, спасибо все получилось. Автозапуск заработал, смущает только следующий лог роутера (выделил красным):

 
Скрытый текст

 

Ноя 16 15:39:54
powercom[712]
Startup successful
Ноя 16 15:40:05
root
Failed to start upsdrvctl from .
Ноя 16 15:40:05
root
Started upsd from .
Ноя 16 15:40:05
upsd[798]
listening on 127.0.0.1 port 3493
Ноя 16 15:40:05
upsd[798]
/opt/var/run is world readable
Ноя 16 15:40:05
upsd[798]
Connected to UPS [pcm]: powercom-pcm
Ноя 16 15:40:05
coalagent
updating configuration...
Ноя 16 15:40:05
upsd[805]
Startup successful

 

 

Из-за чего это может быть? Может быть такое, что S15upsd тоже пытается запустить upsdrvctl? Но у него не получается это по каким то причинам? То есть я имею ввиду, что теперь upsdrvctl запускается два раза? Или это нормально и на лог можно не обращать внимания?

При всем при этом, теперь все работает, и еще раз спасибо r13.

 

Share this post


Link to post
Share on other sites
6 минут назад, BDV сказал:

r13, спасибо все получилось. Автозапуск заработал, смущает только следующий лог роутера (выделил красным):

 
  Скрыть содержимое

 

Ноя 16 15:39:54
powercom[712]
Startup successful
Ноя 16 15:40:05
root
Failed to start upsdrvctl from .
Ноя 16 15:40:05
root
Started upsd from .
Ноя 16 15:40:05
upsd[798]
listening on 127.0.0.1 port 3493
Ноя 16 15:40:05
upsd[798]
/opt/var/run is world readable
Ноя 16 15:40:05
upsd[798]
Connected to UPS [pcm]: powercom-pcm
Ноя 16 15:40:05
coalagent
updating configuration...
Ноя 16 15:40:05
upsd[805]
Startup successful

 

 

Из-за чего это может быть? Может быть такое, что S15upsd тоже пытается запустить upsdrvctl? Но у него не получается это по каким то причинам? То есть я имею ввиду, что теперь upsdrvctl запускается два раза? Или это нормально и на лог можно не обращать внимания?

При всем при этом, теперь все работает, и еще раз спасибо r13.

 

Можно забить, upsdrvctl, это не служба, поэтому видимо и ругается. 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...