Hello misc,

I am looking to use several Riello UPSs of model IPG 800 DE with OpenBSD
through the nut port. These UPSs also go by the name iPlug. This is a
compact UPS with only a single USB-B connector for connectivity as is
usual with low-end UPSs. However, I am facing an obstacle due to how
OpenBSD is discovering the UPS via the USB interface.

>From my readings, the UPS should have been discovered as an ugen device,
but it is being discovered as ucycom0, which uses uhidev (Human
Interface Device), so it is just a virtual device. The device
information is the following:

1. dmesg

# dmesg

uhidev0 at uhub1 port 2 configuration 1 interface 0 "Cypress
Semiconductor USB to Serial" rev 2.00/0.01 addr 2
uhidev0: iclass 3/0                                            
ucycom0 at uhidev0                                                
ucom0 at ucycom0 portno 0

2. USB information as per NUT

# ktrace /usr/local/bin/riello_usb  -a ups -u root -DDDDDDDD

   0.087109     Checking device (04B4/5500) (001/002)
   0.107117     - VendorID: 04b4
   0.107274     - ProductID: 5500
   0.107525     - Manufacturer: Cypress Semiconductor
   0.107758     - Product: USB to Serial
   0.107964     - Serial Number: unknown
   0.108207     - Bus: 001
   0.108425     - Device release number: 0001
   0.108624     Trying to match device
   0.108862     Device matches
   0.109309     nut_usb_set_altinterface: skipped
usb_set_altinterface(udev, 0)
   0.113138     HID descriptor, method 1: (9 bytes) => 09 21 11 01 00 01
22 25 00
   0.113300     HID descriptor length (method 1) 37
   0.113553     i=0, extra[i]=09, extra[i+1]=21
   0.113810     HID descriptor, method 2: (9 bytes) => 09 21 11 01 00 01
22 25 00
   0.114051     HID descriptor length (method 2) 37
   0.114289     HID descriptor length 37
   0.121122     Report descriptor retrieved (Reportlen = 37)
   0.121376     Found HID device
   0.121860     send_to_all: SETINFO ups.vendorid "04b4"
   0.122051     send_to_all: SETINFO ups.productid "5500"
   0.122414     send_to_all: SETINFO device.type "ups"
   0.122645     send_to_all: SETINFO driver.version "2.7.4"
   0.122908     send_to_all: SETINFO driver.version.internal "0.03"
   0.123132     send_to_all: SETINFO driver.name "riello_usb"
   0.123364     entering start_ups_comm()
   0.127118     send: features report ok
   0.127656     USB: Send_USB_Packet: send_usb_packet, err = -78
Function not implemented
   0.127826     Cypress_command send: err -78
   0.128023     riello_command err: -78
   0.128251     Get identif err: read byte: -78
   0.128500     No communication with UPS

3. When running the usbhid-ups binary like '2.', nut just skips over the
device with the message 'Device does not match - skipping'

According to the following, the VENDOR:PRODUCT_ID has been reserved for
a long time to "Cypress CY7C637xx and CY7C640/1xx series USB to RS232
bridges":

- dev/usb/usbdevs

- dev/usb/ucycom.c

4. versions: kernel

gw# uname -a                                                      
OpenBSD gw 6.5 GENERIC.MP#2 i386

5. versions: hardware

hw.vendor=ASUSTeK Computer INC.

hw.product=B202

6. usbdev (AFTER DISABLING ucycom and uhidev). The only difference is
that it showed up as 'ucycom0' instead of 'ugen0'
Controller /dev/usb0:
addr 01: 8086:0000 Intel, EHCI root hub
         high speed, self powered, config 1, rev 1.00
         driver: uhub0
addr 02: 0bda:0158 Generic, USB2.0-CRW
         high speed, power 500 mA, config 1, rev 58.87, iSerial
20071114173400000
         driver: umass0
Controller /dev/usb1:
addr 01: 8086:0000 Intel, UHCI root hub
         full speed, self powered, config 1, rev 1.00
         driver: uhub1
addr 02: 04b4:5500 Cypress Semiconductor, USB to Serial
         low speed, power 100 mA, config 1, rev 0.01
         driver: ugen0
Controller /dev/usb2:
addr 01: 8086:0000 Intel, UHCI root hub
         full speed, self powered, config 1, rev 1.00
         driver: uhub2
Controller /dev/usb3:
addr 01: 8086:0000 Intel, UHCI root hub
         full speed, self powered, config 1, rev 1.00
         driver: uhub3
Controller /dev/usb4:
addr 01: 8086:0000 Intel, UHCI root hub
         full speed, self powered, config 1, rev 1.00
         driver: uhub4

Am I out of luck in connecting this to OpenBSD as not cycom by default
and without disabling both cycom and uhidev (including keyboard, mouse,
...)? I have seen Stuart's recommendation on the nut-upsuser lists, but
is there something that needs to be done on OpenBSD kernel to prevent
this from happening taking into consideration users of cycom? I am not
too familiar with the usb part of the kernel.

https://alioth-lists.debian.net/pipermail/nut-upsuser/2014-September/009224.html

Thank you for your consideration,

-- 
Marcos Madeira

Reply via email to