On Sat, 14 Feb 2015 22:13:27 -0500 Charles Lepple <[email protected]> wrote
> On Feb 14, 2015, at 2:43 PM, J Neethling <[email protected]> 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. I'll look into this and see if I can provide more information. > > 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. Shortcut activated - no luck :( In case there is different output that may be useful: # /usr/local/libexec/nut/nutdrv_qx -DD -q -a ups Network UPS Tools - Generic Q* USB/Serial driver 0.06 (2.7.2) USB communication driver 0.32 0.000000 debug level is '2' 0.000753 upsdrv_initups... 0.001484 Checking device (06DA/0201) (/dev/usb//dev/ugen0.2) 0.033000 - VendorID: 06da 0.033028 - ProductID: 0201 0.033035 - Manufacturer: PPC 0.033043 - Product: USB Card 0.033050 - Serial Number: unknown 0.033056 - Bus: /dev/usb 0.033063 Trying to match device 0.033074 Device matches 0.095010 qx_process_answer: short reply (input.voltage) 1.175481 Permissions problem: Input/output error ktrace output (snippet) 4938 nutdrv_qx RET write 12/0xc 4938 nutdrv_qx CALL write(0x2,0x7fffffffc010,0x17) 4938 nutdrv_qx GIO fd 2 wrote 23 bytes "Trying to match device " 4938 nutdrv_qx RET write 23/0x17 4938 nutdrv_qx CALL gettimeofday(0x7fffffffcaa0,0) 4938 nutdrv_qx RET gettimeofday 0 4938 nutdrv_qx CALL write(0x2,0x7fffffffc010,0xc) 4938 nutdrv_qx GIO fd 2 wrote 12 bytes " 0.034004 " 4938 nutdrv_qx RET write 12/0xc 4938 nutdrv_qx CALL write(0x2,0x7fffffffc010,0xf) 4938 nutdrv_qx GIO fd 2 wrote 15 bytes "Device matches " 4938 nutdrv_qx RET write 15/0xf 4938 nutdrv_qx CALL ioctl(0x5,USB_FS_UNINIT,0x7fffffffcb77) 4938 nutdrv_qx RET ioctl 0 4938 nutdrv_qx CALL ioctl(0x4,USB_SET_ALTINTERFACE,0x7fffffffcb80) 4938 nutdrv_qx RET ioctl 0 4938 nutdrv_qx CALL ioctl(0x5,USB_FS_INIT,0x7fffffffcb50) 4938 nutdrv_qx RET ioctl 0 4938 nutdrv_qx CALL ioctl(0x4,USB_DO_REQUEST,0x7fffffffe080) 4938 nutdrv_qx RET ioctl 0 4938 nutdrv_qx CALL ioctl(0x5,USB_FS_OPEN,0x7fffffffdff0) 4938 nutdrv_qx RET ioctl 0 4938 nutdrv_qx CALL ioctl(0x5,USB_FS_START,0x7fffffffe087) 4938 nutdrv_qx RET ioctl 0 4938 nutdrv_qx CALL ioctl(0x5,USB_FS_COMPLETE,0x7fffffffe087) 4938 nutdrv_qx RET ioctl -1 errno 16 Device busy 4938 nutdrv_qx CALL poll(0x7fffffffe080,0x1,0xffffffff) 4938 nutdrv_qx RET poll 1 4938 nutdrv_qx CALL ioctl(0x5,USB_FS_COMPLETE,0x7fffffffe087) 4938 nutdrv_qx RET ioctl 0 4938 nutdrv_qx CALL ioctl(0x5,USB_FS_COMPLETE,0x7fffffffe087) 4938 nutdrv_qx RET ioctl -1 errno 16 Device busy 4938 nutdrv_qx CALL gettimeofday(0x7fffffffe1f0,0) 4938 nutdrv_qx RET gettimeofday 0 4938 nutdrv_qx CALL write(0x2,0x7fffffffd760,0xc) 4938 nutdrv_qx GIO fd 2 wrote 12 bytes " 0.172803 " 4938 nutdrv_qx RET write 12/0xc 4938 nutdrv_qx CALL write(0x2,0x7fffffffd760,0x2f) 4938 nutdrv_qx GIO fd 2 wrote 47 bytes "qx_process_answer: short reply (input.voltage) " 4938 nutdrv_qx RET write 47/0x2f 4938 nutdrv_qx CALL ioctl(0x4,USB_DO_REQUEST,0x7fffffffe080) 4938 nutdrv_qx RET ioctl -1 errno 5 Input/output error 4938 nutdrv_qx CALL stat(0x7fffffffd8d0,0x7fffffffdcd0) 4938 nutdrv_qx NAMI "/usr/share/nls/C/libc.cat" 4938 nutdrv_qx RET stat -1 errno 2 No such file or directory 4938 nutdrv_qx CALL stat(0x7fffffffd8d0,0x7fffffffdcd0) 4938 nutdrv_qx NAMI "/usr/share/nls/libc/C" 4938 nutdrv_qx RET stat -1 errno 2 No such file or directory 4938 nutdrv_qx CALL stat(0x7fffffffd8d0,0x7fffffffdcd0) 4938 nutdrv_qx NAMI "/usr/local/share/nls/C/libc.cat" 4938 nutdrv_qx RET stat -1 errno 2 No such file or directory 4938 nutdrv_qx CALL stat(0x7fffffffd8d0,0x7fffffffdcd0) 4938 nutdrv_qx NAMI "/usr/local/share/nls/libc/C" 4938 nutdrv_qx RET stat -1 errno 2 No such file or directory 4938 nutdrv_qx CALL gettimeofday(0x7fffffffe200,0) 4938 nutdrv_qx RET gettimeofday 0 4938 nutdrv_qx CALL write(0x2,0x7fffffffd770,0xc) 4938 nutdrv_qx GIO fd 2 wrote 12 bytes " 1.254156 " 4938 nutdrv_qx RET write 12/0xc 4938 nutdrv_qx CALL write(0x2,0x7fffffffd770,0x28) 4938 nutdrv_qx GIO fd 2 wrote 40 bytes "Permissions problem: Input/output error " 4938 nutdrv_qx RET write 40/0x28 4938 nutdrv_qx CALL sigprocmask(SIG_BLOCK,0x800836720,0x7fffffffe0a0) 4938 nutdrv_qx RET sigprocmask 0 4938 nutdrv_qx CALL sigprocmask(SIG_SETMASK,0x800836730,0) 4938 nutdrv_qx RET sigprocmask 0 4938 nutdrv_qx CALL sigprocmask(SIG_BLOCK,0x800836720,0x7fffffffe050) 4938 nutdrv_qx RET sigprocmask 0 4938 nutdrv_qx CALL sigprocmask(SIG_SETMASK,0x800836730,0) 4938 nutdrv_qx RET sigprocmask 0 4938 nutdrv_qx CALL sigprocmask(SIG_BLOCK,0x800836720,0x7fffffffe050) 4938 nutdrv_qx RET sigprocmask 0 4938 nutdrv_qx CALL sigprocmask(SIG_SETMASK,0x800836730,0) 4938 nutdrv_qx RET sigprocmask 0 4938 nutdrv_qx CALL sigprocmask(SIG_BLOCK,0x800836720,0x7fffffffe050) 4938 nutdrv_qx RET sigprocmask 0 4938 nutdrv_qx CALL sigprocmask(SIG_SETMASK,0x800836730,0) 4938 nutdrv_qx RET sigprocmask 0 4938 nutdrv_qx CALL sigprocmask(SIG_BLOCK,0x800836720,0x7fffffffe050) 4938 nutdrv_qx RET sigprocmask 0 4938 nutdrv_qx CALL sigprocmask(SIG_SETMASK,0x800836730,0) 4938 nutdrv_qx RET sigprocmask 0 4938 nutdrv_qx CALL sigprocmask(SIG_BLOCK,0x800836720,0x7fffffffe050) 4938 nutdrv_qx RET sigprocmask 0 4938 nutdrv_qx CALL sigprocmask(SIG_SETMASK,0x800836730,0) 4938 nutdrv_qx RET sigprocmask 0 4938 nutdrv_qx CALL sigprocmask(SIG_BLOCK,0x800836720,0x7fffffffe050) 4938 nutdrv_qx RET sigprocmask 0 4938 nutdrv_qx CALL sigprocmask(SIG_SETMASK,0x800836730,0) 4938 nutdrv_qx RET sigprocmask 0 4938 nutdrv_qx CALL exit(0x1) Seems like we get further this time actually querying the ups parameters? Thanks for the assistance :) ____________________________________________________________ South Africas premier free email service - www.webmail.co.za _______________________________________________ Nut-upsuser mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/nut-upsuser

