On Jul 16, 2019, at 3:52 AM, Patrick M. Hausen wrote:

> The OS is FreeBSD:
> 
> FreeBSD freenas-pmh.local 11.2-STABLE FreeBSD 11.2-STABLE #0 
> r325575+6aad246318c(HEAD): Mon Jun 24 17:25:47 UTC 2019     
> root@nemesis:/freenas-releng/freenas/_BE/objs/freenas-releng/freenas/_BE/os/sys/FreeNAS.amd64
>   amd64
> 
> This is the device:
> 
> ugen0.6: <POWERCOM Co.,LTD HID UPS Battery> at usbus0
> uhid0 on uhub0
> uhid0: <POWERCOM Co.,LTD HID UPS Battery, class 0/0, rev 1.10/0.02, addr 5> 
> on usbus0

There may be an issue with the uhid driver binding to the device. I can't 
remember which versions of FreeBSD this affects, though.

> This is the driver version:
> 
> root@freenas-pmh[~]#  /usr/local/libexec/nut/usbhid-ups -V
> Network UPS Tools - Generic HID driver 0.41 (2.7.4)
> USB communication driver 0.33
> 
> Came bundled with the FreeNAS installation.

This driver is using the libusb-0.1 API through FreeBSD's emulation layer 
(since they implement a different API that is closer to libusb-1.0).

We have another branch that uses the libusb-1.0 API: 
https://github.com/networkupstools/nut/issues/300

> ups.conf:
> 
> root@freenas-pmh[~]# cat /usr/local/etc/nut/ups.conf 
> [roline]
>    driver = usbhid-ups
>    port = /dev/uhid0
>    desc = “"

As mentioned here: 
https://networkupstools.org/docs/man/usbhid-ups.html#_implementation

"The driver ignores the "port" value in ups.conf."

The problem is that libusb does not provide a way to open a specific device by 
pathname, and if it did, it would need a generic USB device node (like the 
/dev/ugen* names shown at the end of the "Checking device" log messages) rather 
than a USB HID device node. Instead, if you have multiple UPSes, see the 
previous section in the man page.

We recommend putting something like "port = auto" in the configuration file.

> Debug output:
> 
> root@freenas-pmh[~]#  /usr/local/libexec/nut/usbhid-ups -DD -a roline
> Network UPS Tools - Generic HID driver 0.41 (2.7.4)
> USB communication driver 0.33
>   0.000000    debug level is '2'
>   0.000746    upsdrv_initups...
>   0.001256    Checking device (0D9F/0004) (/dev/usb//dev/ugen0.6)
>   0.193552    - VendorID: 0d9f
>   0.193573    - ProductID: 0004
>   0.193579    - Manufacturer: unknown
>   0.193582    - Product: unknown
>   0.193586    - Serial Number: unknown
>   0.193589    - Bus: /dev/usb
>   0.193592    - Device release number: 0002
>   0.193598    Trying to match device
>   0.193608    Device matches
>   0.261466    Unable to get HID descriptor (Unknown error)
>   0.261487    HID descriptor length 996
>   0.328756    Unable to get Report descriptor: Input/output error

This is the case where the libusb-1.0 API might provide better error messages. 
These might be related to permissions - check to see if the /dev/ugen0.6 node 
is writable by the NUT user/group. (There should be a devd.conf file installed 
under /usr/local to make this work.)

> _______________________________________________
> Nut-upsuser mailing list
> [email protected]
> https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser


_______________________________________________
Nut-upsuser mailing list
[email protected]
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser

Reply via email to