Date: Mon, 16 Feb 2009 17:10:09 +0900 From: Noriyoshi Kawano <bowie@nrik.jp> To: Hans Petter Selasky <hselasky@c2i.net> Cc: freebsd-usb@freebsd.org Subject: Re: USB2 & apcupsd Message-ID: <86ab8mree6.wl%bowie@nrik.jp> In-Reply-To: <200902160835.55330.hselasky@c2i.net> References: <86y6wbf2nc.wl%bowie@nrik.jp> <200902141036.54246.hselasky@c2i.net> <86d4dij1i2.wl%bowie@nrik.jp> <200902160835.55330.hselasky@c2i.net>
next in thread | previous in thread | raw e-mail | index | archive | help
At Mon, 16 Feb 2009 08:35:54 +0100,
Hans Petter Selasky wrote:
>
> On Monday 16 February 2009, Noriyoshi Kawano wrote:
> > At Sat, 14 Feb 2009 10:36:53 +0100,
> >
> > Hans Petter Selasky wrote:
> > > Hi,
> > >
> > > As long as you don't see ugenX.Y attach/detach messages, it means that
> > > the Apcupsd daemon is doing something. Probably it is the
> > > "usb_link_check()" procedure that is executing and the connection is
> > > reset by the following code:
> > >
> > > if (my_data->fd) {
> > > usb_reset(my_data->fd);
> > > /* XXX: usb_close() not needed according to libusb0.1 refdocs */
> > > usb_close(my_data->fd);
> > >
> > > Could you enable debugging in Apcupsd ?
> > >
> > > What speed is your device reported like by usbconfig ?
> > >
> > > --HPS
> >
> > Hi,
> >
> > I enabled debugging in apcupsd.
> >
> > Because the "usb_interrupt_read()" becomes the error,
> > the "usb_link_check()" is called.
> >
> > # apcupsd -d 500
> > --- snip ---
> > 61.689 apcupsd: generic-usb.c:538 Timeout=539
> > 62.232 apcupsd: generic-usb.c:549 usb_interrupt_read error: (-1) Operation
> > not permitted 62.232 apcupsd: generic-usb.c:458 link_check comm lost
> > 68.538 apcupsd: generic-usb.c:300 Reinitializing private structure.
> > 68.539 apcupsd: generic-usb.c:398 Initializing libusb
> > 68.539 apcupsd: generic-usb.c:403 Found 0 USB busses
> > 68.539 apcupsd: generic-usb.c:405 Found 0 USB devices
> > 68.539 apcupsd: generic-usb.c:416 /dev/usb:/dev/ugen3.2 - 0000:0000
> > 68.539 apcupsd: generic-usb.c:416 /dev/usb:/dev/ugen0.2 - 051d:0002
> > --- snip ---
> >
> > # usbconfig -u 0 -a 2
> > ugen0.2: <Uninterruptible Power Supply American Power Conversion> at
> > usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON
>
> Does ugen0.2 have the correct permissions?
>
> usbconfig -u 0 -a 2 set_owner xxx:yyy set_perm 0660
>
> --HPS
I think that ugen0.2 have the correct permissions.
Of course, I tried to set permissions.
# usbconfig -u 0 -a 2 set_owner root:wheel set_perm 0660
But the result was the same.
The "usb_interrupt_read()" is executed many time, and the most succeed.
The "usb_interrupt_read()" is executed it after indication
"generic-usb.c:538 Timeout=xxxxx". See attached log file and follow codes.
---- genric-usb.c ----
538 Dmsg1(200, "Timeout=%d\n", timeout);
539 retval = usb_interrupt_read(my_data->fd, USB_ENDPOINT_IN|1, (char*)buf, sizeof(buf), timeout);
540
541 if (retval == 0 || retval == -LIBUSB_ETIMEDOUT) {
542 /* No events available in ups->wait_time seconds. */
543 return 0;
544 } else if (retval == -EINTR || retval == -EAGAIN) {
545 /* assume SIGCHLD */
546 continue;
547 } else if (retval < 0) {
548 /* Hard error */
549 Dmsg2(200, "usb_interrupt_read error: (%d) %s\n", retval, strer
ror(-retval));
550 usb_link_check(ups); /* link is down, wait */
551 return 0;
552 }
553
554 if (debug_level >= 300) {
555 logf("Interrupt data: ");
556 for (i = 0; i < retval; i++)
557 logf("%02x, ", buf[i]);
558 logf("\n");
559 }
---- generic-usb.c ----
Noriyoshi Kawano
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?86ab8mree6.wl%bowie>
