vk
2009-Jul-19 07:50 UTC
[Nut-upsuser] Problem with nut 2.4.1 & Ippon 2000 Smart power on FreeBSD
Hi all! Maybe possible adds something in megatec_usb driver for normal working with ippon 2000? This is output for drivers megatec_usb and blazer_usb: ==========================================================gate# /usr/local/libexec/nut/megatec_usb -DDDD -a IPPON Network UPS Tools - Megatec protocol driver 1.6 (2.4.1) Serial-over-USB transport layer 0.10 debug level is '4' Checking device (0665/5161) (/dev/usb1//dev/ugen0) - VendorID: 0665 - ProductID: 5161 - Manufacturer: Cypress Semiconductor - Product: USB to Serial - Serial Number: unknown - Bus: /dev/usb1 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]... 0]t_data_phoenix: got so far [001001 get_data_phoenix: (8 bytes) => 30 30 31 30 30 31 0d 30 0(222.8 2]hoenix: got so far [001001 get_data_phoenix: (16 bytes) => 30 30 31 30 30 31 0d 30 28 32 32 32 2e 38 20 32 0(222.8 222.8 222]got so far [001001 get_data_phoenix: (24 bytes) => 30 30 31 30 30 31 0d 30 28 32 32 32 2e 38 20 32 32 32 2e 38 20 32 32 32 0(222.8 222.8 222.0 019 5]ar [001001 get_data_phoenix: (32 bytes) => 30 30 31 30 30 31 0d 30 28 32 32 32 2e 38 20 32 32 32 2e 38 20 32 32 32 2e 30 20 30 31 39 20 35 0(222.8 222.8 222.0 019 50.1 27.6]01 get_data_phoenix: (40 bytes) => 30 30 31 30 30 31 0d 30 28 32 32 32 2e 38 20 32 32 32 2e 38 20 32 32 32 2e 30 20 30 31 39 20 35 30 2e 31 20 32 37 2e 36 Q1 => FAILED [short read] Q1 detail: (6 bytes) => 30 30 31 30 30 31 Asking for UPS status [Q1]... get_data_phoenix: got so far [(222.8 2] get_data_phoenix: (8 bytes) => 28 32 32 32 2e 38 20 32 get_data_phoenix: got so far [(222.8 222.8 222] get_data_phoenix: (16 bytes) => 28 32 32 32 2e 38 20 32 32 32 2e 38 20 32 32 32 get_data_phoenix: got so far [(222.8 222.8 222.0 019 5] get_data_phoenix: (24 bytes) => 28 32 32 32 2e 38 20 32 32 32 2e 38 20 32 32 32 2e 30 20 30 31 39 20 35 get_data_phoenix: got so far [(222.8 222.8 222.0 019 50.0 27.6] get_data_phoenix: (32 bytes) => 28 32 32 32 2e 38 20 32 32 32 2e 38 20 32 32 32 2e 30 20 30 31 39 20 35 30 2e 30 20 32 37 2e 36 Q1 => FAILED [short read] Q1 detail: (32 bytes) => 28 32 32 32 2e 38 20 32 32 32 2e 38 20 32 32 32 2e 30 20 30 31 39 20 35 30 2e 30 20 32 37 2e 36 Asking for UPS status [Q1]... get_data_phoenix: got so far [(222.8 2] get_data_phoenix: (8 bytes) => 28 32 32 32 2e 38 20 32 get_data_phoenix: got so far [(222.8 222.4 222] get_data_phoenix: (16 bytes) => 28 32 32 32 2e 38 20 32 32 32 2e 34 20 32 32 32 get_data_phoenix: got so far [(222.8 222.4 222.0 019 5] get_data_phoenix: (24 bytes) => 28 32 32 32 2e 38 20 32 32 32 2e 34 20 32 32 32 2e 30 20 30 31 39 20 35 get_data_phoenix: got so far [(222.8 222.4 222.0 019 50.0 27.6] get_data_phoenix: (32 bytes) => 28 32 32 32 2e 38 20 32 32 32 2e 34 20 32 32 32 2e 30 20 30 31 39 20 35 30 2e 30 20 32 37 2e 36 Q1 => FAILED [short read] Q1 detail: (32 bytes) => 28 32 32 32 2e 38 20 32 32 32 2e 34 20 32 32 32 2e 30 20 30 31 39 20 35 30 2e 30 20 32 37 2e 36 Asking for UPS status [Q1]... get_data_phoenix: got so far [(222.8 2] get_data_phoenix: (8 bytes) => 28 32 32 32 2e 38 20 32 get_data_phoenix: got so far [(222.8 222.8 222] get_data_phoenix: (16 bytes) => 28 32 32 32 2e 38 20 32 32 32 2e 38 20 32 32 32 get_data_phoenix: got so far [(222.8 222.8 222.0 019 5] get_data_phoenix: (24 bytes) => 28 32 32 32 2e 38 20 32 32 32 2e 38 20 32 32 32 2e 30 20 30 31 39 20 35 get_data_phoenix: got so far [(222.8 222.8 222.0 019 50.0 27.6] get_data_phoenix: (32 bytes) => 28 32 32 32 2e 38 20 32 32 32 2e 38 20 32 32 32 2e 30 20 30 31 39 20 35 30 2e 30 20 32 37 2e 36 Q1 => FAILED [short read] Q1 detail: (32 bytes) => 28 32 32 32 2e 38 20 32 32 32 2e 38 20 32 32 32 2e 30 20 30 31 39 20 35 30 2e 30 20 32 37 2e 36 Asking for UPS status [Q1]... get_data_phoenix: got so far [(222.8 2] get_data_phoenix: (8 bytes) => 28 32 32 32 2e 38 20 32 get_data_phoenix: got so far [(222.8 222.8 223] get_data_phoenix: (16 bytes) => 28 32 32 32 2e 38 20 32 32 32 2e 38 20 32 32 33 get_data_phoenix: got so far [(222.8 222.8 223.5 019 5] get_data_phoenix: (24 bytes) => 28 32 32 32 2e 38 20 32 32 32 2e 38 20 32 32 33 2e 35 20 30 31 39 20 35 get_data_phoenix: got so far [(222.8 222.8 223.5 019 50.1 27.6] get_data_phoenix: (32 bytes) => 28 32 32 32 2e 38 20 32 32 32 2e 38 20 32 32 33 2e 35 20 30 31 39 20 35 30 2e 31 20 32 37 2e 36 Q1 => FAILED [short read] Q1 detail: (32 bytes) => 28 32 32 32 2e 38 20 32 32 32 2e 38 20 32 32 33 2e 35 20 30 31 39 20 35 30 2e 31 20 32 37 2e 36 5 out of 5 detection attempts failed (minimum failures: 2). Megatec protocol UPS not detected. ==========================================================gate# /usr/local/libexec/nut/blazer_usb -DDDD -a IPPON Network UPS Tools - Megatec/Q1 protocol USB driver 0.03 (2.4.1) debug level is '4' Checking device (0665/5161) (/dev/usb1//dev/ugen0) - VendorID: 0665 - ProductID: 5161 - Manufacturer: Cypress Semiconductor - Product: USB to Serial - Serial Number: unknown - Bus: /dev/usb1 Trying to match device Device matches Trying megatec protocol... send: Q1 read: timeout blazer_status: short reply Status read 1 failed send: Q1 read: timeout blazer_status: short reply Status read 2 failed send: Q1 read: timeout blazer_status: short reply Status read 3 failed Trying mustek protocol... send: QS read: timeout blazer_status: short reply Status read 1 failed send: QS read: timeout blazer_status: short reply Status read 2 failed send: error sending control message: Input/output error blazer_status: short reply Status read 3 failed Trying megatec/old protocol... Checking device (0665/5161) (/dev/usb1//dev/ugen0) - VendorID: 0665 - ProductID: 5161 - Manufacturer: Cypress Semiconductor - Product: USB to Serial - Serial Number: unknown - Bus: /dev/usb1 Trying to match device Device matches send: D read: timeout blazer_status: short reply Status read 1 failed send: D read: timeout blazer_status: short reply Status read 2 failed send: D read: timeout blazer_status: short reply Status read 3 failed No supported UPS detected -- ? ?????????, vk mailto:vk at union-metall.ru
Arjen de Korte
2009-Jul-19 10:25 UTC
[Nut-upsuser] Problem with nut 2.4.1 & Ippon 2000 Smart power on FreeBSD
Citeren vk <vk op union-metall.ru>:> gate# /usr/local/libexec/nut/blazer_usb -DDDD -a IPPON > Network UPS Tools - Megatec/Q1 protocol USB driver 0.03 (2.4.1) > debug level is '4' > Checking device (0665/5161) (/dev/usb1//dev/ugen0) > - VendorID: 0665 > - ProductID: 5161 > - Manufacturer: Cypress Semiconductor > - Product: USB to Serial > - Serial Number: unknown > - Bus: /dev/usb1 > Trying to match device > Device matches > Trying megatec protocol... > send: Q1 > read: timeout > blazer_status: short reply > Status read 1 failed > send: Q1 > read: timeout > blazer_status: short reply > Status read 2 failed > send: Q1 > read: timeout > blazer_status: short reply > Status read 3 failed > Trying mustek protocol... > send: QS > read: timeout > blazer_status: short reply > Status read 1 failed > send: QS > read: timeout > blazer_status: short reply > Status read 2 failed > send: error sending control message: Input/output error > blazer_status: short reply > Status read 3 failed > Trying megatec/old protocol... > Checking device (0665/5161) (/dev/usb1//dev/ugen0) > - VendorID: 0665 > - ProductID: 5161 > - Manufacturer: Cypress Semiconductor > - Product: USB to Serial > - Serial Number: unknown > - Bus: /dev/usb1 > Trying to match device > Device matches > send: D > read: timeout > blazer_status: short reply > Status read 1 failed > send: D > read: timeout > blazer_status: short reply > Status read 2 failed > send: D > read: timeout > blazer_status: short reply > Status read 3 failed > No supported UPS detectedSupport for libusb is 'experimental' at best in FreeBSD and depending on the version you're using, 'unusable'. You may try if adding a small delay between sending a command and reading back the reply helps (YMMV): --- trunk/drivers/blazer_usb.c (revision 1861) +++ trunk/drivers/blazer_usb.c (working copy) @@ -72,6 +72,7 @@ upsdebugx(3, "send: %.*s", (int)strcspn(tmp, "\r"), tmp); memset(buf, 0, buflen); + usleep(300000); for (i = 0; (i <= buflen-8) && (strchr(buf, '\r') == NULL); i += ret) { If your UPS also has a serial port available, it is probably more reliable to use a USB to serial converter (that is supported by the kernel) than attempting to run a user space program that attempts to handle USB through libusb. Best regards, Arjen -- Please keep list traffic on the list