Page 14 of 14 FirstFirst ... 4121314
Results 196 to 207 of 207

Thread: Управление UPS при помощи apcupsd и nut

  1. #196
    Join Date
    Nov 2009
    Location
    Kyiv, Ukraine
    Posts
    142
    Quote Originally Posted by electropanda View Post
    Спасибо.
    Действительно, оболочка их успешно выполняет, без участия перла.
    Поплясал вокруг lighttpd - скрипты заработали! Ура!
    И архив во вложении поправил.
    А можно подробнее что надо сделать с lighttpd для работоспособности скриптов.

  2. #197
    Join Date
    Mar 2011
    Location
    Moscow
    Posts
    192
    Quote Originally Posted by Asgard View Post
    А можно подробнее что надо сделать с lighttpd для работоспособности скриптов.
    http://redmine.lighttpd.net/projects...ki/Docs:ModCGI

  3. #198
    Join Date
    Jan 2010
    Location
    Saint-Petersburg, Russia
    Posts
    13
    Quote Originally Posted by Asgard View Post
    А можно подробнее что надо сделать с lighttpd для работоспособности скриптов.
    Изначально со включенным модулем mod_cgi (в разделе server.modules файла конфигурации lighttpd) и настройками раздела CGI module такими
    Code:
    cgi.assign                 = ( ".cgi" => "/opt/bin/perl" )
    и такими
    Code:
    cgi.assign                 = ( ".cgi" => "/bin/sh" )
    ничего не работало. После яростного поиска откопал где-то такую рекомендацию
    Code:
    cgi.assign                 = ( ".cgi" => "" )
    - и все заработало.

    И, конечно, в рабочей директории lighttpd (она у меня отлична от дефолтовой) сделан симлинк на директорию /opt/share/www/cgi-bin, куда кладет установщик cgi-скрипты apcupsd.

  4. #199
    Ламерский вопрос: а как узнать, к какому порту (ttyS0 S1 ...) подключен UPS для конфигурации NUT?
    Спасибо!

  5. #200
    Join Date
    Nov 2009
    Location
    Kyiv, Ukraine
    Posts
    142
    Quote Originally Posted by electropanda View Post
    Изначально со включенным модулем mod_cgi (в разделе server.modules файла конфигурации lighttpd) и настройками раздела CGI module такими
    Code:
    cgi.assign                 = ( ".cgi" => "/opt/bin/perl" )
    и такими
    Code:
    cgi.assign                 = ( ".cgi" => "/bin/sh" )
    ничего не работало. После яростного поиска откопал где-то такую рекомендацию
    Code:
    cgi.assign                 = ( ".cgi" => "" )
    - и все заработало.

    И, конечно, в рабочей директории lighttpd (она у меня отлична от дефолтовой) сделан симлинк на директорию /opt/share/www/cgi-bin, куда кладет установщик cgi-скрипты apcupsd.
    Спасибо, именно с этим у меня и был затык - протупил что .cgi у nut-а бинарные.
    Last edited by Asgard; 14-05-2012 at 11:05.

  6. #201
    Quote Originally Posted by angel_il View Post
    ...

    mknod /dev/usb/hiddev0 c 180 96
    ...
    Подскажите, а откуда именно берутся эти циферки-значения (какой-то старший и младший номер), как достоверно их определить, на что это вообще влияет? Т.к. в основном пишут mknod /dev/ttyUSB0 c 180 0

  7. #202
    Quote Originally Posted by Rossi25 View Post
    Подскажите, а откуда именно берутся эти циферки-значения (какой-то старший и младший номер), как достоверно их определить, на что это вообще влияет? Т.к. в основном пишут mknod /dev/ttyUSB0 c 180 0
    http://rus-linux.net/book1.php?name=.../gl_09_02.html

  8. #203
    Т.е. для usb-подключений (UPS или com2usb адаптер) первое число (старший номер устройства) будет всегда 180,
    а второе - любое, которое не должно совпадать с таким же ранее подключенным устройством?

  9. #204
    Quote Originally Posted by Rossi25 View Post
    Т.е. для usb-подключений (UPS или com2usb адаптер) первое число (старший номер устройства) будет всегда 180,
    а второе - любое, которое не должно совпадать с таким же ранее подключенным устройством?
    Да, в общем случае.

  10. #205

    ядерный модуль usbhid с hiddev

    Господа, пытаюсь прикрутить к rt-n16 мониторинг и управление aps smart-ups 1500 через USB.
    Хочу чтобы роутер мониторил UPS и выключал железный NAS (включен всегда, когда питание падает ему больно) и
    стационарный компьютер (если он включен конечно) по сети штатным функционалом apcupsd, который есть в entware.
    Всё питается от одного UPS конечно.
    К сожалению, модуль usbhid, по всей видимости, собран без поддержки /dev/hiddev raw HID device support.

    Собственно вопросы.
    1. Не могли бы вы собирать модули к прошивке с этой опцией (/dev/hiddev raw HID device support.)?
    2. Не может ли кто с установленным toolchain собрать usbhid c этой опцией мне на предмет потестить?
    3. http://code.google.com/p/wl500g/wiki...CustomFirmware актуально?
    Достаточно ли этого, чтобы самостоятельно пересобрать модули (особенно если система amd64)?

    PS. Имею madskillz в линукс но никогда не занимался кроссплатформенной разработкой, так же
    катастрофически не имею времени глубоко проникать, но постараюсь справиться сам конечно.

    UPD: Сам разобрался.
    Last edited by Omega; 14-05-2013 at 23:18. Reason: ну так расскажите всем :) нам тоже интересно ;)

  11. #206
    Quote Originally Posted by Optimus22Prime View Post
    Господа, пытаюсь прикрутить к rt-n16 мониторинг и управление aps smart-ups 1500 через USB.
    Хочу чтобы роутер мониторил UPS и выключал железный NAS (включен всегда, когда питание падает ему больно) и
    стационарный компьютер (если он включен конечно) по сети штатным функционалом apcupsd, который есть в entware.
    Всё питается от одного UPS конечно.
    К сожалению, модуль usbhid, по всей видимости, собран без поддержки /dev/hiddev raw HID device support.

    Собственно вопросы.
    1. Не могли бы вы собирать модули к прошивке с этой опцией (/dev/hiddev raw HID device support.)?
    2. Не может ли кто с установленным toolchain собрать usbhid c этой опцией мне на предмет потестить?
    3. http://code.google.com/p/wl500g/wiki...CustomFirmware актуально?
    Достаточно ли этого, чтобы самостоятельно пересобрать модули (особенно если система amd64)?

    PS. Имею madskillz в линукс но никогда не занимался кроссплатформенной разработкой, так же
    катастрофически не имею времени глубоко проникать, но постараюсь справиться сам конечно.

    UPD: Сам разобрался.
    Ок, по просьбе Omega рассказываю.

    Модуль usbhid собран правильно, не определялся smartups потому что в вебморде роутера было включено usb 2.0 only. После включения комбинированного режима бесперебойник определился и файл устройства в /dev создался автоматически как только ручками вставил модуль.

    Делал следующее: установил через opkg apcupsd и msmtp (это чтобы события слать на гмыл, бизибоксовый sendmail слать на гмыл заставить не смог, настройку расписывать не буду, тривиально через гугль нашёл).
    В /tmp/local/sbin/postmount вонзил modprobe usbhid
    В /tmp/local/sbin/pre-shutdown добавил
    Code:
    if [ -f /tmp/powerfail ]; then
        /opt/sbin/apcupsd --killpower
    fi
    Отрабатывает нормально, поскольку в pre-shutdown ранее флешка перемонтируется в ro. Весь скрипт выглядит так:
    Code:
    #!/bin/sh
    
    /opt/etc/init.d/rc.unslung stop
    
    sleep 10s
    
    for i in `cat /proc/mounts | awk '/ext3/{print($1)}'` ; do
    mount -o remount,ro $i
    done
    
    swapoff -a
    
    sleep 1s
    
    if [ -f /tmp/powerfail ]; then
            /opt/etc/apcupsd/apccontrol killpower
    fi
    apcupsd.conf
    Code:
    UPSNAME sapc1500
    UPSCABLE usb
    UPSTYPE usb
    DEVICE
    LOCKFILE /var/lock
    SCRIPTDIR /opt/etc/apcupsd
    PWRFAILDIR /tmp
    NOLOGINDIR /etc
    ONBATTERYDELAY 6
    MINUTES 5
    TIMEOUT 0
    ANNOY 0
    NOLOGON disable
    KILLDELAY 0
    NETSERVER on
    NISIP 192.168.66.1
    NISPORT 3551
    EVENTSFILE /tmp/apcupsd.events
    EVENTSFILEMAX 10
    UPSCLASS standalone
    UPSMODE disable
    STATTIME 0
    LOGSTATS off
    DATATIME 0
    Далее поправил пути в /opt/etc/apcupsd/apccontrol на предмет соответствия расположения powerfail (я его запихал в /tmp как видно из конфига и скрипта pre-shutdown) и APCPID, подпилил прочие находящиеся там скриптики и apcupsd_mail.conf для работы с msmtp (расписывать не буду, тривиально).

    Демон заводится и отрабатывает как надо, apcupsd обрубает нагрузку UPS при разгрузке роутера.

    Имею двух клиентов - железный NAS WD My Book Live (он круглосуточно качает и раздаёт торренты, ему может быть очень больно когда пропадает питание) и стационарный комп. Подключены они к этому же бесперебойнику, на них установлены apcupsd в режиме клиента. Настройки почти одинаковые на обоих с учётом разницы в путях и отсутствия нужды в nologin для NAS.

    Code:
    UPSNAME sapc1500
    UPSCABLE ether
    UPSTYPE net
    DEVICE rtn16:3551
    POLLTIME 5
    LOCKFILE /var/lock
    SCRIPTDIR /etc/apcupsd
    PWRFAILDIR /etc/apcupsd
    NOLOGINDIR /etc
    MINUTES 4
    TIMEOUT 0
    ANNOY 0
    NOLOGON disable
    KILLDELAY 0
    NETSERVER off
    UPSCLASS standalone
    UPSMODE disable
    STATTIME 0
    LOGSTATS off
    DATATIME 0
    Естественно никаких power cutoff бесперебойнику клиентам делать не надо, его делает роутер, так что с разгрузочными скриптами можно не мучиться.
    Собственно как то так оно и работает.

    В планах:
    1. Узнать как _в точности_ работает параметр KILLDELAY в конфиге и работает ли (в man apcupcd сказано что он для тупых бесперебойников). По умолчанию сам бесперебойник даёт задержку перед выключением нагрузки в 60 сек, к сожалению конфигурируется это только через com кабель. Возможно ли увеличить это время с помощью KILLDELAY? (Доку зачитал до дыр, ничего не понял, что то про FreeBSD, какой вообще может быть regain control после shutdown, удивительно невнятно написано, видимо придётся в исходники залезть). Разобраться в разнице apcupsd --killpower и --kill-on-powerfail
    2. Прикрутить cgi

    PS. Вообще сама идея того, что клиент должен опрашивать сервер о столь важных событиях, как переход на батарею и исчерпание её заряда например, невыносимо отвратительна. Должно быть наоборот. Сервер должен заталкивать это клиентам. В процессе тестирования несколько раз было так, что клиент из за большого интервала опроса про...пускал событие "заряд исчерпан, выключаемся" и разгружаться не стал, а роутер шустро разгрузился и отрубил нагрузку на ИБП. В доке сказано, что после получения события "на батареях" интервал опроса клиентом становится равным 1 сек, вне зависимости от того что в POLLTIME сказано, но видимо это работает криво и не всегда. Видимо придётся лечить скриптами, ибо текущая логика работы меня не устраивает. Совершенно неграмотно, в продакшене я бы за такое убивал.
    Last edited by Optimus22Prime; 15-05-2013 at 06:54.

  12. #207
    Join Date
    Feb 2008
    Location
    Smolensk, Russia
    Posts
    2,378
    Blog Entries
    15

    Если отвалилсь клавиатуры, UPS'ы, USB-релюшки

    В июльских релизах asuswrt и asuswrt-merlin 376_1071/376.45 отключена поддержка HID-устройств. Модули hid.ko и usbhid.ko будут подгружаться без каких-либо ошибок, но толку от них не будет.

    Code:
    T:  Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=  7 Spd=1.5 MxCh= 0
    D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
    P:  Vendor=051d ProdID=0002 Rev= 0.06
    S:  Manufacturer=American Power Conversion
    S:  Product=Back-UPS CS 650 FW:817.v9.I USB FW:v9
    S:  SerialNumber=XXXXXXXXXXX
    C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
    I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=(none)
    E:  Ad=81(I) Atr=03(Int.) MxPS=   6 Ivl=100ms
    Помогла пересборка прошивки с включенными HID-модулями.

    PS Для RT-N66U модифицированную asuswrt-merlin с модулями можно забрать здесь.

    Update 29/09. Эрик включил мой pull-request для возвращения поддержки HID-устройств. Начиная с 376.48 прошивку пересобирать не придётся.
    Last edited by ryzhov_al; 29-09-2014 at 17:50.
    Entware Repository ◄ RT-N66U Router + ZyXEL V352L Phone + WD TV Live Player + WD My Book Live NAS

Page 14 of 14 FirstFirst ... 4121314

Similar Threads

  1. Проблемы с OpenVPN. Прошу помощи!
    By idtelecom in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 288
    Last Post: 13-07-2014, 22:54
  2. Управление светодиодами на роутере
    By lly in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 111
    Last Post: 03-01-2014, 15:04
  3. Отправка SMS-оповещений при помощи Google
    By gaur in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 103
    Last Post: 10-09-2013, 18:52

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •