[Nut-upsuser] freenas USB connection error
Charles Lepple
clepple at gmail.com
Sun Feb 15 03:13:27 UTC 2015
On Feb 14, 2015, at 2:43 PM, J Neethling <jneethling at webmail.co.za> wrote:
> 67611 blazer_usb CALL write(0x2,0x7fffffffd2a0,0xc)
> 67611 blazer_usb GIO fd 2 wrote 12 bytes
> " 0.280697 "
> 67611 blazer_usb RET write 12/0xc
> 67611 blazer_usb CALL write(0x2,0x7fffffffd2a0,0x35)
> 67611 blazer_usb GIO fd 2 wrote 53 bytes
> "read: (229.6 219.5 220.0 021 49.7 2.25 18.5 00000001
> "
Here's the strange part: the driver successfully queried the UPS once, and got a valid string back.
> 67611 blazer_usb CALL ioctl(0x4,USB_DO_REQUEST,0x7fffffffe030)
> 67611 blazer_usb RET ioctl -1 errno 5 Input/output error
However, this part indicates that there is a disconnect between the NUT driver (which printed "Permissions problem" due to an EPERM return code somewhere), and the kernel driver, which returned EIO.
Sadly, all nonzero error codes get mapped to EIO here:
http://fxr.watson.org/fxr/source/dev/usb/usb_generic.c?v=FREEBSD92;im=10#L911
If we look further into the kernel driver, it appears that there are some debugging messages:
http://fxr.watson.org/fxr/source/dev/usb/usb_request.c?v=FREEBSD92;im=10#L393
It is unclear as to whether this can be enabled with a sysctl (hw.usb.debug), or if additional #defines are needed. For this, you might want to check with the FreeNAS folks, or try the FreeBSD USB list.
This is a bit of wishful thinking, but NUT 2.7.2 also has a newer driver for Megatec equipment: nutdrv_qx. While I don't recall any FreeBSD-specific tweaks to it, trying it would probably be faster than recompiling the kernel, and there is little to lose.
--
Charles Lepple
clepple at gmail
More information about the Nut-upsuser
mailing list