Page 4 of 15 FirstFirst ... 2345614 ... LastLast
Results 46 to 60 of 211

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

  1. #46
    Join Date
    Jan 2008
    Location
    Minsk Belarus
    Posts
    94
    Quote Originally Posted by al37919 View Post
    а в логе он его как то видит?
    да, конечно, но только после этих действий:
    insmod hid (в 16 превью он есть)
    mknod /dev/usb/hiddev0 c 180 96

    Feb 17 02:16:20 kernel: usb.c: registered new driver hid
    Feb 17 02:16:22 kernel: : USB HID v1.10 Device [American Power Conversion Back-UPS CS 500 FW:808.q5.I USB FW:q5] on usb1:2.0
    Feb 17 02:16:22 kernel: hid-core.c: v1.8.1 Andreas Gal, Vojtech Pavlik <vojtech@suse.cz>
    Feb 17 02:16:22 kernel: hid-core.c: USB HID support drivers

    Кажись не хватает какой-то мелочи, наверное вот этой http://wl500g.info/showpost.php?p=82014&postcount=14
    Last edited by Contemplator; 17-02-2008 at 09:42.

  2. #47
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    170
    Quote Originally Posted by Contemplator View Post
    да, конечно, но только после этих действий:
    insmod hid (в 16 превью он есть)
    mknod /dev/usb/hiddev0 c 180 96

    Feb 17 02:16:20 kernel: usb.c: registered new driver hid
    Feb 17 02:16:22 kernel: : USB HID v1.10 Device [American Power Conversion Back-UPS CS 500 FW:808.q5.I USB FW:q5] on usb1:2.0
    Feb 17 02:16:22 kernel: hid-core.c: v1.8.1 Andreas Gal, Vojtech Pavlik <vojtech@suse.cz>
    Feb 17 02:16:22 kernel: hid-core.c: USB HID support drivers

    Кажись не хватает какой-то мелочи, наверное вот этой http://wl500g.info/showpost.php?p=82014&postcount=14
    Попробуйте запустить с опцией -u root. Не знаю, как пакет собирался, но по умолчанию драйвер меняет UID и GID с root на nut, если запускается под root. Это делается для безопасности. Поэтому это скорее всего проблема с правами доступа.
    Потом можно будет что-нибудь придумать с hotplug.
    И еще добавьте -DDD, посмотрим лог.

    P.S. Насколько я помню, этот драйвер не использует ядерный hiddev, только libusb. А значение port в ups.conf игнорируется.

  3. #48
    Join Date
    Jan 2008
    Location
    Minsk Belarus
    Posts
    94
    Code:
    [admin@router root]$ /opt/bin/usbhid-ups -a apc -DDD
    Network UPS Tools: 0.29 USB communication driver - core 0.32 (2.2.1)
    
    debug level is '3'
    upsdrv_initups...
    Checking device (0000/0000) (003/001)
    - VendorID: 0000
    - ProductID: 0000
    - Manufacturer: unknown
    - Product: unknown
    - Serial Number: unknown
    - Bus: 003
    Trying to match device
    Device does not match - skipping
    Checking device (0424/20CD) (003/002)
    - VendorID: 0424
    - ProductID: 20cd
    - Manufacturer: unknown
    - Product: unknown
    - Serial Number: unknown
    - Bus: 003
    Trying to match device
    Device does not match - skipping
    Checking device (0000/0000) (002/001)
    - VendorID: 0000
    - ProductID: 0000
    - Manufacturer: unknown
    - Product: unknown
    - Serial Number: unknown
    - Bus: 002
    Trying to match device
    Device does not match - skipping
    Checking device (0000/0000) (001/001)
    - VendorID: 0000
    - ProductID: 0000
    - Manufacturer: unknown
    - Product: unknown
    - Serial Number: unknown
    - Bus: 001
    Trying to match device
    Device does not match - skipping
    Checking device (051D/0002) (001/002)
    - VendorID: 051d
    - ProductID: 0002
    - Manufacturer: unknown
    - Product: unknown
    - Serial Number: unknown
    - Bus: 001
    Trying to match device
    Device matches
    failed to claim USB device, trying 2 more time(s)...
    detaching kernel driver from USB device...
    failed to detach kernel driver from USB device...
    trying again to claim USB device...
    failed to claim USB device, trying 1 more time(s)...
    detaching kernel driver from USB device...
    failed to detach kernel driver from USB device...
    trying again to claim USB device...
    failed to claim USB device, trying 0 more time(s)...
    detaching kernel driver from USB device...
    failed to detach kernel driver from USB device...
    trying again to claim USB device...
    Unable to get HID descriptor (error sending control message: Operation not permitted)
    HID descriptor, method 2: (9 bytes) => 09 21 10 01 21 01 22 c0 04
    HID descriptor length 1216
    Unable to get Report descriptor: Operation not permitted
    No appropriate HID device found
    No matching HID UPS found
    это UPS:
    Checking device (051D/0002) (001/002)
    - VendorID: 051d
    - ProductID: 0002
    лог не меняется, независимо загружен ядерный hiddev или нет
    Last edited by Omega; 23-03-2013 at 00:37. Reason: fixed

  4. #49
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    170
    Quote Originally Posted by Contemplator View Post
    [admin@router root]$ /opt/bin/usbhid-ups -a apc -DDD
    Network UPS Tools: 0.29 USB communication driver - core 0.32 (2.2.1)
    Quote Originally Posted by Contemplator View Post
    Device matches
    failed to claim USB device, trying 2 more time(s)...
    detaching kernel driver from USB device...
    failed to detach kernel driver from USB device...
    trying again to claim USB device...
    failed to claim USB device, trying 1 more time(s)...
    detaching kernel driver from USB device...
    failed to detach kernel driver from USB device...
    trying again to claim USB device...
    failed to claim USB device, trying 0 more time(s)...
    detaching kernel driver from USB device...
    failed to detach kernel driver from USB device...
    trying again to claim USB device...
    Unable to get HID descriptor (error sending control message: Operation not permitted)
    HID descriptor, method 2: (9 bytes) => 09 21 10 01 21 01 22 c0 04
    HID descriptor length 1216
    Unable to get Report descriptor: Operation not permitted
    No appropriate HID device found
    No matching HID UPS found
    Налицо проблема с доступом, о которой я говорил.
    Надо было добавить и опцию '-u admin', и '-DDD'. Попробуйте еще раз так:
    Code:
    /opt/bin/usbhid-ups -a apc -u admin -DDD
    Update.
    Да, видимо у вас на роутере надо делать '-u admin', а не '-u root'.
    Last edited by Xander; 18-02-2008 at 16:05.

  5. #50
    Join Date
    Jan 2008
    Location
    Minsk Belarus
    Posts
    94
    Кажись УРА!!! СПАСИБО!!!

    Сделал /opt/bin/usbhid-ups -a apc -u admin -DDD >> /tmp/harddisk/abc
    но в abc попадает только 1 строка, как сделать чтоб туда падал весь лог, хочу выслать Вам....

  6. #51
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    170
    Quote Originally Posted by Contemplator View Post
    Кажись УРА!!! СПАСИБО!!!

    Сделал /opt/bin/usbhid-ups -a apc -u admin -DDD >> /tmp/harddisk/abc
    но в abc попадает только 1 строка, как сделать чтоб туда падал весь лог, хочу выслать Вам....
    так, наверно
    /opt/bin/usbhid-ups -a apc -u admin -DDD >> /tmp/harddisk/abc 2>&1

  7. #52
    Join Date
    Jan 2008
    Location
    Minsk Belarus
    Posts
    94
    Quote Originally Posted by Xander View Post
    так, наверно
    /opt/bin/usbhid-ups -a apc -u admin -DDD >> /tmp/harddisk/abc 2>&1

    Ну чайник я - чайник со свистком, вот:
    Attached Files Attached Files

  8. #53
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    170
    Quote Originally Posted by Contemplator View Post

    Ну чайник я - чайник со свистком, вот:
    Осталось только отредактировать upsd.conf и upsd.users (там все довольно просто), запустить upsd, проверить, что все работает, с помощью upsc, и, наверно, настроить hotplug, чтобы при подключении UPS соответствующее устройство сразу получало группу nut.

    Потом можно браться за upsmon, если захотите... Но в случае с роутером это, по-моему, не актуально У меня когда-то на UPS-е висел один роутер с жестким диском. Работал часа 2 после выключения питания

  9. #54
    Join Date
    Jan 2008
    Location
    Minsk Belarus
    Posts
    94
    Quote Originally Posted by angel_il View Post
    достал таки из дальнего угла УПС, подключил, настроил, описание процесса здесь
    Отлично!!! Огромное СПАСИБО за труд. Я тут без установленного hid мучаюсь, а он оказывается нужен...

  10. #55
    запуск любого демона с правами суперюзера это мягко говоря не наш метод, но просто не хотелось делать лишних телодвижений, хотя там их и не так много надо... добавить пользователя, поменять права на hiddev, поменять права на папку где создается сокет.
    vim имеет два режима - бибикать и все портить (с) не мое

  11. #56
    Join Date
    Jan 2008
    Location
    Minsk Belarus
    Posts
    94
    Да, и еще вопрос, относительно mkdir /var/state/ups.
    Как Вы думаете, может стоит ее разместить где-нибудь на внешнем носителе (USB-флэшке или винте), usbhid-ups пишет туда постоянно, много и часто...
    Или /var/state/ups это ОЗУ (RAM)?
    Last edited by Contemplator; 18-02-2008 at 23:02.

  12. #57
    Join Date
    Feb 2007
    Location
    Moscow, Russia
    Posts
    3,805
    Скомпилил через optware слегка более полный вариант со следующими опциями:
    PHP Code:
                    --with-udev-dir=no \
                    --
    with-serial \
                    --
    with-usb \
                    --
    with-lib \
                    --
    with-snmp \
                    --
    with-cgi \
                    --
    with-cgipath=/opt/share/www/cgi-bin \
                    --
    with-htmlpath=/opt/share/www/html 
    Добавлен также стартовый файл от angel_il

    ipk приаттачил. Желательно и его протестить. Однако, похоже, что действительно эта штука работает. Если мой ipk в порядке, то пора отправлять олео?

    2Xander:
    IMHO в configure баг в части проверки где находится libssl . Делается проверка примерно пяти стандартных местоположений и не делается проверки в месте заданном юзером (например, с помощью CFLAGS и LDFLAGS). В нашем случае libssl находится здесь: ~/optware/oleg/staging/opt/lib , т.е. в непредсказуемом месте.

    Наиболее просто проблема лечится таким патчем, хотя лучше бы еще одну проверку добавить:

    PHP Code:
    --- configure.orig      2007-12-21 15:00:49.000000000 +0300
    +++ configure   2008-02-20 00:25:02.000000000 +0300
    @@ -25307,+25307,@@
           
    CFLAGS_ORIG="${CFLAGS}"
        
    LDFLAGS_ORIG="${LDFLAGS}"

    -   CFLAGS=""
    -   LDFLAGS="-lssl -lcrypto"
    +#   CFLAGS=""
    +#   LDFLAGS="-lssl -lcrypto"

        
    cat >conftest.$ac_ext <<_ACEOF
     
    /* confdefs.h.  */ 
    Attached Files Attached Files

  13. #58
    Oleg, если не сложно соберите hid.o для превью *.8.17, оч. нужно (достал из загашника APC500)

    достал таки из дальнего угла УПС, подключил, настроил, описание процесса здесь

    Quote Originally Posted by al37919 View Post
    Скомпилил через optware слегка более полный вариант со следующими опциями:
    сегодня побалюусь...
    Last edited by Omega; 23-03-2013 at 00:33. Reason: 2 posts merged
    vim имеет два режима - бибикать и все портить (с) не мое

  14. #59
    Join Date
    Jan 2008
    Location
    Minsk Belarus
    Posts
    94
    al37919, в Вашем пакете содержимое S50nut оказалось таким:

    Code:
    #! /bin/sh
    
    #This is an example startup script intended to be used with APC BACK UPS CS-XXX (USB)
    #Modify it to suite your particular UPS. Read documentation here: http://www.networkupstools.org/
    #Don't forget that before using it you have to insmod hid.o (get correct file for your kernel)
    
    prefix="/opt"
    PATH=${prefix}/bin:${prefix}/sbin:/sbin:/bin:/usr/sbin:/usr/bin
    NAME_H=usbhid-ups
    NAME_D=upsd
    DAEMON_H=${prefix}/bin/${NAME_H}
    DAEMON_H_OPTS="-a ups -u admin"
    DAEMON_D=${prefix}/sbin/${NAME_D}
    DAEMON_D_OPTS="-u admin"
    
    echo $DAEMON_H
    echo $DAEMON_D
    
    test -x $DAEMON_H || exit 0
    test -x $DAEMON_D || exit 0
    
    if [ -z "$1" ] ; then
        case `echo "$0" | sed 's:^.*/\(.*\):\1:g'` in
            S*) rc="start" ;;
            *) rc="usage" ;;
        esac
    else
        rc="$1"
    fi
    
    case "$rc" in
        start)
            if [ -n "`pidof $NAME_H`" ]; then
    
    #!/bin/sh
    
    prefix="/opt"
    PATH=${prefix}/bin:${prefix}/sbin:/sbin:/bin:/usr/sbin:/usr/bin
    NAME_H=usbhid-ups
    NAME_D=upsd
    DAEMON_H=${prefix}/bin/${NAME_H}
    DAEMON_H_OPTS="-a ups -u admin"
    DAEMON_D=${prefix}/sbin/${NAME_D}
    DAEMON_D_OPTS="-u admin"
    
    echo $DAEMON_H
    echo $DAEMON_D
    
    test -x $DAEMON_H || exit 0
    test -x $DAEMON_D || exit 0
    
    if [ -z "$1" ] ; then
        case `echo "$0" | sed 's:^.*/\(.*\):\1:g'` in
            S*) rc="start" ;;
            *) rc="usage" ;;
        esac
    else
        rc="$1"
    fi
    
    case "$rc" in
        start)
            if [ -n "`pidof $NAME_H`" ]; then
                echo "$NAME_H allready started.... id: `pidof $NAME_H`"
                echo "use 'restart' option for restart"
            else
                echo "Starting $NAME_H: ..."
                $DAEMON_H $DAEMON_H_OPTS
            fi
            if [ -n "`pidof $NAME_D`" ]; then
                echo "$NAME_D allready started.... id: `pidof $NAME_D`"
                echo "use 'restart' option for restart"
            else
                echo "Starting $NAME_D: ..."
                $DAEMON_D $DAEMON_D_OPTS
            fi
            ;;
        stop)
            if [ -n "`pidof $NAME_D`" ]; then
                echo "Stopping $NAME_D: ..."
                killall $NAME_D 2> /dev/null
            fi
            if [ -n "`pidof $NAME_H`" ]; then
                echo "Stopping $NAME_H: ..."
                killall $NAME_H 2> /dev/null
            fi
            ;;
        info)
            if [ -n "`pidof $NAME_D`" ]; then
                echo "$NAME_H is active.... pid: `pidof $NAME_H`"
            else
                echo "$NAME_H is not running"
            fi
            if [ -n "`pidof $NAME_D`" ]; then
                echo "$NAME_D is active.... pid: `pidof $NAME_D`"
            else
                echo "$NAME_D is not running"
            fi
            ;;
        restart)
            "$0" stop
            sleep 1
            "$0" start
            ;;
        *)
            echo "Usage: $0 (start|stop|restart|usage|info)"
            ;;
    esac
    exit 0
    А в остальном просто - супер. Все работает. Спасибо!
    Last edited by Omega; 23-03-2013 at 00:35. Reason: 2 posts merged

  15. #60
    Join Date
    Feb 2007
    Location
    Moscow, Russia
    Posts
    3,805
    а в чем проблема с этим скриптом?
    кроме трех строк комментария вначале, коих автор я, остальное точная (я надеюсь) копия скрипта от angel_il с первой страницы этой темы. Еще я придумал 50 в S50nut... Но ведь какие то цифры нужны же

    Кстати, поскольку данный скрипт есть только пример, я решил его переименовать в s50nut, чтобы предотвратить автоматическое исполнение без вдумчивого анализа.

Page 4 of 15 FirstFirst ... 2345614 ... LastLast

Similar Threads

  1. Проблемы с OpenVPN. Прошу помощи!
    By idtelecom in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 296
    Last Post: 02-05-2016, 18:10
  2. Отправка SMS-оповещений при помощи Google
    By gaur in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 104
    Last Post: 26-12-2014, 10:16
  3. Управление светодиодами на роутере
    By lly in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 112
    Last Post: 03-01-2014, 15:04

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
  •