2006/7/6, Rodrigo Ventura <[EMAIL PROTECTED]>:
Hi. I'm having trouble with nut-2.0.3 on a linux kernel 2.4.32 machine and a
MGE Evolution 3000. The problem is that I'm getting the following message,
repeatidly, on dmesg:
usbdevfs: usb_submit_urb returned -22
(-22 means -EINVAL)
I traced the problem with newhidups -DDDDDD auto and found out that the -22
error appears in a line "none (-22)" of the output as:
----------
upsdrv_updateinfo...
Waiting for notifications...
none (-22)
entering string_to_path()
parsing UPS
Looking up UPS
----------
The function calls in userspace are:
[newhidups.c] upsdrv_updateinfo()
[libhid.c] HIDGetEvents()
[libusb.c] libusb_get_interrupt()
[libusb] usb_interrupt_read()
[libusb] usb_urb_transfer()
In the usb_urb_transfer() function one can find that
----------
urb.number_of_packets = 0; /* don't do isochronous yet */
urb.usercontext = NULL;
ret = ioctl(dev->fd, IOCTL_USB_SUBMITURB, &urb);
----------
and in the kernel code of linux/drivers/usb/host/uhci.c:
----------
static int uhci_submit_urb(struct urb *urb)
[...]
case PIPE_ISOCHRONOUS:
if (urb->bandwidth == 0) { /* not yet checked/allocated
*/
if (urb->number_of_packets <= 0) {
ret = -EINVAL;
----------
So it seems that setting number_of_packets to zero is directly related with
the kernel error.
What is going on here? Is it a bug in nut?
a good try, and amount of effort.
Sadly, notifications are on the PIPE_INTERRUPT
If everything's working fine otherwise (ie UPS status changes are seen), you should dig a bit more the code as it sound like a kernel regression.
If something is not working, you can try to reset the communication: power off the UPS, then unplug its power cable, wait (at least) 10 seconds and replug/restart all.
Arnaud
--
Linux / Unix Expert - MGE UPS SYSTEMS - R&D Dpt
Network UPS Tools (NUT) Project Leader - http://www.networkupstools.org/
Debian Developer - http://people.debian.org/~aquette/
OpenSource Developer - http://arnaud.quette.free.fr/
_______________________________________________ Nut-upsuser mailing list Nut-upsuser@lists.alioth.debian.org http://lists.alioth.debian.org/mailman/listinfo/nut-upsuser