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>