Использую IPPON Smart Winner 1000
вместо пользователя admin использую DMG
ups.conf
[ups]
desc = "IPPON Smart Winner 1000 (USB)"
driver = megatec_usb
port = /dev/usb/hiddev0
upsd.conf
ACL all 0.0.0.0/0
ACL localhost 127.0.0.1/32
ACCEPT localhost
REJECT all
upsd.users
[monuser]
password = secret
allowfrom = localhost
upsmon master
upsmon.conf
MONITOR ups@localhost 1 monuser secret master
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/halt"
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /tmp/killpower
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5
RUN_AS_USER DMG
В /proc/bus/usb/devices UPS виден:
...
T: Bus=03 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#= 10 Spd=1.5 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=06da ProdID=0003 Rev= 2.00
S: Manufacturer=OMRON
S: Product=USB UPS
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=hid
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=20ms
...
Выполнение же:
megatec_usb -a ups -u DMG -DDD
приводит к результату:
...
Checking device (06DA/0003) (003/010)
- VendorID: 06da
- ProductID: 0003
- Manufacturer: OMRON
- Product: USB UPS
- Serial Number: unknown
- Bus: 003
Trying to match device
Device does not match - skipping
...
No appropriate HID device found
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
<nut-upsuser@lists.alioth.debian.org>.
Что не так, немогу понять?
Ну почему сразу швах? Например под Ubuntu все нормально работает с этим UPS. Собирал из исходников.
ps/ Как вариант подключение через переходник USB <-> COM. Этот вариант отлично работает.
Всем привет.
Вот решил спарить два своих любимых девайса Один из них это ASUS WL-500G Premium V2, второй - IPPON Smart Power Pro 1000.
Прошивка в роутере последняя от Олега. Установлен последняя версия NUT:
В файлике /opt/etc/ups.conf:Code:$ ipkg list_install | grep nut nut - 2.4.1-1 - Network UPS tools.
Файл устройства создавал путём:Code:$ cat /opt/etc/ups.conf [Ippon] driver = megatec_usb port = /dev/usb/hiddev0
Почему 180 0, потому что подглядел на большом компьютере, что создаёт система при подключении упса к нему.Code:# mknod /dev/usb/hiddev0 c 180 0
Дальше пробовал подпихивать драйвер hid, но что с ним, что без него, ничего не меняется:
Если бесперебойник отключить от роутера, то запросы драйвер не посылает, т.е. в принципе драйвер его видит и понимает, что это то, что надо.Code:# megatec_usb -a Ippon -u root -DDDD Network UPS Tools - Megatec protocol driver 1.6 (2.4.1) Serial-over-USB transport layer 0.10 debug level is '4' Checking device (0000/0000) (002/001) - VendorID: 0000 - ProductID: 0000 - Manufacturer: Linux 2.4.20 ehci_hcd - Product: PCI device 14e4:471a - Serial Number: 00:03.1 - Bus: 002 Trying to match device Device does not match - skipping Checking device (0424/2502) (002/002) - VendorID: 0424 - ProductID: 2502 - Manufacturer: unknown - Product: unknown - Serial Number: unknown - Bus: 002 Trying to match device Device does not match - skipping Checking device (0665/5161) (002/006) - VendorID: 0665 - ProductID: 5161 - Manufacturer: Cypress Semiconductor - Product: USB to Serial - Serial Number: unknown - Bus: 002 Trying to match device Device matches DTR=1, RTS=0 Starting UPS detection process... Asking for UPS information [I]... I => FAILED [short read] I detail: (1 bytes) => 49 Asking for UPS status [Q1]... Q1 => FAILED [timeout] Asking for UPS status [Q1]... Q1 => FAILED [timeout] Asking for UPS status [Q1]... Q1 => FAILED [timeout] Asking for UPS status [Q1]... Q1 => FAILED [timeout] Asking for UPS status [Q1]... Q1 => FAILED [timeout] 5 out of 5 detection attempts failed (minimum failures: 2). Megatec protocol UPS not detected.
Также, я пробовал подключить его через COM-порт, спаял для этого несложную схемку с инвертером (модем ZyXel Omni 56K через переходник прекрастно работал, т.е. принимал команды и отвечал). В целом, если сменить драйвер на megatec и прописать соответствующий порт, то пару раз у меня получалось получить один-два ответа от упса, но в целом все тоже самое. Т.е. запросы посылаются, но ответа нет. Кто-нибудь, что-нибудь посоветовать может?
Last edited by kvazimoda24; 07-06-2009 at 19:47.
hiddev ненужен. Качаете исходники Nut'а, megatec.c в строке 71 меняете:
на 100000. Собираете. Подключать напрямую в роутер.Code:define READ_PACE 300000 /* interval to wait between sending a command and reading the response (usec) *
Я не совсем понял, в файле megatec.c или megatec_usb.c. Я же бесперебойник подключаю через USB. А если через COM-порт, то я даже вручную из консоли толком ответа получить не мог, пару раз всего удавалось.hiddev ненужен. Качаете исходники Nut'а, megatec.c в строке 71 меняете:
Код:
на 100000. Собираете. Подключать напрямую в роутер.Code:define READ_PACE 300000 /* interval to wait between sending a command and reading the response (usec) *
Написано же: megatec.c
Вообще, мы собираемся отказаться от megatec/megatec_usb в пользу blazer_ser/blazer_usb, но фикс, я надеюсь, скоро попадет в svn.
blazer_usb должен работать сразу.
P.S. все задержки лучше вообще убрать, т.е. вычистить все места, где используется READ_PACE.
Last edited by Xander; 08-06-2009 at 13:58.
Еще раз дико извеняюсь. Но у меня никак не получается собрать NUT. Изменения я внёс в файл megatec.c, установил пакет buildroot. Дальше выполняю команду # ./configure --build=mips (пробовал также # ./configure --build=mipsel), после этого даю команду # make и она стопорится на сборке драйверов, вот вывод:
Вот не знаю, вроде стопорится на драйвере, который мне нафиг не нужен, но в тоже время я не знаю как собрать отдельно megatec и megatec_usb. Или, может надо что-то подправить в этом драйвере, чтобы он собрался нормально? Сразу говорю, что в программировании полный ноль, пока только осилил скрипты на basheCode:# make Making all in include make[1]: Entering directory `/tmp/mnt/disc0_3/Temp/nut-2.4.1/include' NUT_VERSION: "2.4.1" test -f nut_version.h || cp _nut_version.h nut_version.h cmp -s _nut_version.h nut_version.h || cp _nut_version.h nut_version.h rm -f _nut_version.h make all-am make[2]: Entering directory `/tmp/mnt/disc0_3/Temp/nut-2.4.1/include' make[2]: Leaving directory `/tmp/mnt/disc0_3/Temp/nut-2.4.1/include' make[1]: Leaving directory `/tmp/mnt/disc0_3/Temp/nut-2.4.1/include' Making all in common make[1]: Entering directory `/tmp/mnt/disc0_3/Temp/nut-2.4.1/common' (cd ../include/ && make nut_version.h) make[2]: Entering directory `/tmp/mnt/disc0_3/Temp/nut-2.4.1/include' NUT_VERSION: "2.4.1" test -f nut_version.h || cp _nut_version.h nut_version.h cmp -s _nut_version.h nut_version.h || cp _nut_version.h nut_version.h rm -f _nut_version.h make[2]: Leaving directory `/tmp/mnt/disc0_3/Temp/nut-2.4.1/include' make[1]: Leaving directory `/tmp/mnt/disc0_3/Temp/nut-2.4.1/common' Making all in clients make[1]: Entering directory `/tmp/mnt/disc0_3/Temp/nut-2.4.1/clients' make[1]: Nothing to be done for `all'. make[1]: Leaving directory `/tmp/mnt/disc0_3/Temp/nut-2.4.1/clients' Making all in conf make[1]: Entering directory `/tmp/mnt/disc0_3/Temp/nut-2.4.1/conf' make[1]: Nothing to be done for `all'. make[1]: Leaving directory `/tmp/mnt/disc0_3/Temp/nut-2.4.1/conf' Making all in data make[1]: Entering directory `/tmp/mnt/disc0_3/Temp/nut-2.4.1/data' Making all in html make[2]: Entering directory `/tmp/mnt/disc0_3/Temp/nut-2.4.1/data/html' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/tmp/mnt/disc0_3/Temp/nut-2.4.1/data/html' make[2]: Entering directory `/tmp/mnt/disc0_3/Temp/nut-2.4.1/data' make[2]: Nothing to be done for `all-am'. make[2]: Leaving directory `/tmp/mnt/disc0_3/Temp/nut-2.4.1/data' make[1]: Leaving directory `/tmp/mnt/disc0_3/Temp/nut-2.4.1/data' Making all in docs make[1]: Entering directory `/tmp/mnt/disc0_3/Temp/nut-2.4.1/docs' make[1]: Nothing to be done for `all'. make[1]: Leaving directory `/tmp/mnt/disc0_3/Temp/nut-2.4.1/docs' Making all in drivers make[1]: Entering directory `/tmp/mnt/disc0_3/Temp/nut-2.4.1/drivers' /opt/bin/bash ../libtool --tag=CC --mode=link gcc -I../include -I/opt/include -g -O2 -Ulinux -Dlinux=linux -O2 -pipe -I/home/slug/optware/oleg/staging/opt/include -I. -I/opt/include -D_LARGEFILE64_SOURCE -DNE_LFS -I/opt/include/neon -O -Wall -Wsign-compare -o bcmxcp bcmxcp.o bcmxcp_ser.o ../common/libcommon.a ../common/libparseconf.la main.o dstate.o serial.o libtool: link: gcc -I../include -I/opt/include -g -O2 -Ulinux -Dlinux=linux -O2 -pipe -I/home/slug/optware/oleg/staging/opt/include -I. -I/opt/include -D_LARGEFILE64_SOURCE -DNE_LFS -I/opt/include/neon -O -Wall -Wsign-compare -o bcmxcp bcmxcp.o bcmxcp_ser.o main.o dstate.o serial.o ../common/libcommon.a ../common/.libs/libparseconf.a bcmxcp.o: In function `decode_meter_map_entry': /tmp/mnt/disc0_3/Temp/nut-2.4.1/drivers/bcmxcp.c:608: undefined reference to `ldexp' bcmxcp.o: In function `get_float': /tmp/mnt/disc0_3/Temp/nut-2.4.1/drivers/bcmxcp.c:224: undefined reference to `ldexp' /tmp/mnt/disc0_3/Temp/nut-2.4.1/drivers/bcmxcp.c:231: undefined reference to `ldexp' collect2: ld returned 1 exit status make[1]: *** [bcmxcp] Error 1 make[1]: Leaving directory `/tmp/mnt/disc0_3/Temp/nut-2.4.1/drivers' make: *** [all-recursive] Error 1
Спасибо за советы, собрать драйвера я собрал, но вот работать они всё-равно не работают, в целом, ничего не изменилось:
Code:# megatec_usb -a Ippon -u root -DDDD Network UPS Tools - Megatec protocol driver 1.6 (2.4.1) Serial-over-USB transport layer 0.10 debug level is '4' Checking device (0000/0000) (002/001) - VendorID: 0000 - ProductID: 0000 - Manufacturer: Linux 2.4.20 ehci_hcd - Product: PCI device 14e4:471a - Serial Number: 00:03.1 - Bus: 002 Trying to match device Device does not match - skipping Checking device (0424/2502) (002/002) - VendorID: 0424 - ProductID: 2502 - Manufacturer: unknown - Product: unknown - Serial Number: unknown - Bus: 002 Trying to match device Device does not match - skipping Checking device (0665/5161) (002/003) - VendorID: 0665 - ProductID: 5161 - Manufacturer: Cypress Semiconductor - Product: USB to Serial - Serial Number: unknown - Bus: 002 Trying to match device Device matches DTR=1, RTS=0 Starting UPS detection process... Asking for UPS information [I]... I => FAILED [short read] I detail: (1 bytes) => 49 Asking for UPS status [Q1]... Q1 => FAILED [timeout] Asking for UPS status [Q1]... ser_send_pace: Device detached? (error -1: error sending control message: Broken pipe) ================================================== = device has been disconnected, try to reconnect = ================================================== Checking device (0000/0000) (002/001) - VendorID: 0000 - ProductID: 0000 - Manufacturer: Linux 2.4.20 ehci_hcd - Product: PCI device 14e4:471a - Serial Number: 00:03.1 - Bus: 002 Trying to match device Device does not match - skipping Checking device (0424/2502) (002/002) - VendorID: 0424 - ProductID: 2502 - Manufacturer: unknown - Product: unknown - Serial Number: unknown - Bus: 002 Trying to match device Device does not match - skipping Checking device (0665/5161) (002/003) - VendorID: 0665 - ProductID: 5161 - Manufacturer: Cypress Semiconductor - Product: USB to Serial - Serial Number: unknown - Bus: 002 Trying to match device Device matches Successfully reconnected Q1 => FAILED [timeout] Asking for UPS status [Q1]... Q1 => FAILED [timeout] Asking for UPS status [Q1]... Q1 => FAILED [timeout] Asking for UPS status [Q1]... Q1 => FAILED [timeout] 5 out of 5 detection attempts failed (minimum failures: 2). Megatec protocol UPS not detected. # dmesg | tail -n 20 usbdevfs: USBDEVFS_CONTROL failed dev 3 rqt 33 rq 9 len 8 ret -32 usbdevfs: usb_submit_urb returned -22 usbdevfs: usb_submit_urb returned -22 usbdevfs: usb_submit_urb returned -22 usbdevfs: usb_submit_urb returned -22 usbdevfs: usb_submit_urb returned -22 usbdevfs: usb_submit_urb returned -22 usbdevfs: usb_submit_urb returned -22 usbdevfs: usb_submit_urb returned -22 usbdevfs: usb_submit_urb returned -22 usbdevfs: usb_submit_urb returned -22 usbdevfs: usb_submit_urb returned -22 usbdevfs: usb_submit_urb returned -22 usbdevfs: usb_submit_urb returned -22 usbdevfs: USBDEVFS_CONTROL failed dev 3 rqt 33 rq 9 len 8 ret -32 usbdevfs: usb_submit_urb returned -22 usbdevfs: usb_submit_urb returned -22 usbdevfs: usb_submit_urb returned -22 usbdevfs: usb_submit_urb returned -22 usbdevfs: usb_submit_urb returned -22