[Nut-upsuser] bcmxcp_usb can not communicate with Eaton Powerware 5110

Arnaud Quette aquette.dev at gmail.com
Fri Aug 10 09:22:33 UTC 2012


Hi Massimo and Greg,

2012/8/9 Massimo Gais <simosagi9 at gmail.com>

> On Wed, Aug 8, 2012 at 1:32 PM, Greg Vickers <daehenoc at iinet.net.au>
> wrote:
> > Fantastic Massimo, thank you!  I have yet to replace my 5110, so if
> there is
> > anything I can contribute, I will do.
> >
> > It looks like the only difference between our systems is the kernel
> version
> > (I've put the latest rasbian image on, which has kernel 3.2.0-3-rpi).
> >
> Maybe the problem is specific to the RPi USB.
>
> This is the debug from my UPS plugged to old faithful NSLU2, when I
> launch the command "/lib/nut/bcmxcp_usb -DDD -a ups":
> (...)
>    0.812160     get_answer: block_number = 1
>    0.812220     get_answer: data length = 121
>    0.812281     get_answer: need to read 6 more data
>    0.814929     get_answer: (128 bytes) => ab 01 79 01 02 50 00 50 01 00
> 0e 00 01 00 10 50
>    0.815110      4f 57 45 52 57 41 52 45 20 55 50 53 20 20 20 5c 00 00 00
> 00 00 00 00 00 00
>    0.815237      00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 51
> 51 00 00 00 00 51
>    0.815357      00 00 00 00 00 00 00 f0 00 f0 00 00 00 f0 00 00 00 00 00
> 00 00 00 f0 00 00
>    0.815475      00 00 00 00 00 00 51 00 00 51 00 00 00 00 00 00 00 00 00
> f0 00 00 00 00 00
>    0.815561      00 00 00 00 00 00 00 f0 18 3b ab 01
>    0.815611     get_answer: block_number = 1
>    0.815673     get_answer: data length = 121
>    0.815721     get_answer: sequence number (1) is ok
>    0.815777     get_answer: checksum is ok
>    0.815852     get_answer: block_number = 1
>    0.815915     get_answer: data length = 0
>    0.815975     Communications with UPS lost: get_answer: not the right
> sequence received 0!!!
> ...
> (then the driver tries a few more times to repeat the operation, but
> it fails the same way, and then about by timeout)
>
> It seems that for some reason the call to usb_interrupt_read()
> function is able only to 'nibble' 8 bytes at a time,


not an issue, since I've modified the loop to be able to receive as many
frames as needed.
but the condition to continue receiving is not suitable for your case.


> instead of
> receiving the whole 171 bytes transfer in one single gulp.
>

thus, the data of the 2nd sequence is missing (after "3b ab 01"):
28 82 c0 01 00 02 00 00 80 0f 00 00 00
00 00 00 00 00 00 00 00 00 00 01 00 80 40 00 00 00 00 00 00 03 00 08 16 00
00 00 0b 00 6b


> Looking at dmesg, I see that on RPi the USB is handled by dwc_otg
> driver, instead of the usual ohci_hcd, and on RPi forums they noticed
> that there is some issue with it, like... that dwc_otg generates on
> idle 8000 interrupts per second!
> I'm not too expert on USB things, but I wonder if that may affect the
> communication with the UPS.
>

it will not help, but should not be a big issue for us.

would you be able to compile code for testing patches?
you will then just need to replace the driver on the RPi.

cheers,
Arnaud
-- 
Linux / Unix / Opensource Engineering Expert - Eaton -
http://opensource.eaton.com
Network UPS Tools (NUT) Project Leader - http://www.networkupstools.org
Debian Developer - http://www.debian.org
Free Software Developer - http://arnaud.quette.fr
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/nut-upsuser/attachments/20120810/6b77d2d8/attachment.html>


More information about the Nut-upsuser mailing list