Spoke too soon on the kernel patch, looks like it's my lucky day :) http://marc.theaimsgroup.com/?l=linux-usb-devel&m=114848881217730&w=2
Unless there are more comments, that should be in the kernel next release. On Wed, 24 May 2006, Dan Streetman wrote: > >Oh boy, it's the infamous ENOSPC (-28) error! > >I don't think anyone on this list has hit the ENOSPC error yet, that I >know of, but I've seen it plenty... > >In all cases where I've seen ENOSPC errors, it's a limitation of the EHCI >driver. Its current split transaction scheduling algorithm is very >limited, and if you have only a few low/fullspeed devices connected to a >highspeed huub (and highspeed controller), the EHCI driver can "run out" >of places to put periodic transactions (i.e. interrupt or isochronous). > >If you have low/fullspeed devices connected to a highspeed hub, try >re-connecting them directly to the controller, if possible (or use a >fullspeed USB hub, or just "rmmod ehci-hcd"). If that works, you can >leave the setup like that, or try patching your kernel with these: > >http://marc.theaimsgroup.com/?l=linux-usb-devel&m=113510701427948&w=2 >http://marc.theaimsgroup.com/?l=linux-usb-devel&m=113510731024887&w=2 >http://marc.theaimsgroup.com/?l=linux-usb-devel&m=113510748810409&w=2 > >(you need to enable the USB_EHCI_TT_SCHEDULING kernel option). Those >patches in slightly modified form should be getting into the kernel "real >soon now..." so you could just wait for 'em to show up. > > >On Tue, 23 May 2006, Tom Zepf wrote: > >>I recently had a hard disk scratch and had to recreate my javax-usb >>development setup. I have a program which communicates w/ a USB >>connected GPS. >> >>I have checked and my device nodes are mode 0666, and everything else >>seems to work - program finds jar files, properties, etc. But I get a >>failure (errno 28) when calling UsbPipe.syncSubmit(). >> >>The code snippet looks like: >> >> /** >> * read some bytes >> */ >> private GarminPkt readPkt(String name, UsbPipe usbPipe) >> throws UsbException, IOException { >> >> // get packet data >> byte[] bytes = new byte[1024]; >> if (getVerbose() >= 2) { >> System.err.println(name + ": blocking" + "\n"); >> } >> int len = usbPipe.syncSubmit(bytes); >> >> ... >> >>This all worked before (many times), but I did re-install Linux, java, >>javax-usb, etc. and I wonder if I forgot something. >> >>Any help would be appreciated. Thanks, >> >> Tom Zepf >> >>The trace looks like: >> >>[hotplug](3) JavaxUsbTopologyUpdater.c.build_device[117] Building device >>/proc/bus/usb/001/001 >>[hotplug](3) JavaxUsbTopologyUpdater.c.build_device[141] Device is hub with 6 >>ports >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_device[156] Device speed is 12 >>Mbps >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_config[222] Building config 1 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_interface[282] Building >>interface 0 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_endpoint[296] Building endpoint >>0x81 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_device[189] Building device 2 >>attached to port 2 >>[hotplug](3) JavaxUsbTopologyUpdater.c.build_device[117] Building device >>/proc/bus/usb/001/002 >>[hotplug](3) JavaxUsbTopologyUpdater.c.build_device[141] Device is hub with 4 >>ports >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_device[156] Device speed is 12 >>Mbps >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_config[222] Building config 1 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_interface[282] Building >>interface 0 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_endpoint[296] Building endpoint >>0x81 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_device[189] Building device 3 >>attached to port 0 >>[hotplug](3) JavaxUsbTopologyUpdater.c.build_device[117] Building device >>/proc/bus/usb/001/003 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_device[156] Device speed is 1.5 >>Mbps >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_config[222] Building config 1 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_interface[282] Building >>interface 0 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_endpoint[296] Building endpoint >>0x81 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_interface[282] Building >>interface 1 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_endpoint[296] Building endpoint >>0x82 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_device[189] Building device 4 >>attached to port 1 >>[hotplug](3) JavaxUsbTopologyUpdater.c.build_device[117] Building device >>/proc/bus/usb/001/004 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_device[156] Device speed is 1.5 >>Mbps >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_config[222] Building config 1 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_interface[282] Building >>interface 0 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_endpoint[296] Building endpoint >>0x81 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_device[189] Building device 5 >>attached to port 2 >>[hotplug](3) JavaxUsbTopologyUpdater.c.build_device[117] Building device >>/proc/bus/usb/001/005 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_device[156] Device speed is 12 >>Mbps >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_config[222] Building config 1 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_interface[282] Building >>interface 0 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_endpoint[296] Building endpoint >>0x81 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_endpoint[296] Building endpoint >>0x82 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_endpoint[296] Building endpoint >>0x03 >>[hotplug](3) JavaxUsbTopologyUpdater.c.build_device[117] Building device >>/proc/bus/usb/002/001 >>[hotplug](3) JavaxUsbTopologyUpdater.c.build_device[141] Device is hub with 2 >>ports >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_device[156] Device speed is 12 >>Mbps >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_config[222] Building config 1 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_interface[282] Building >>interface 0 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_endpoint[296] Building endpoint >>0x81 >>[hotplug](3) JavaxUsbTopologyUpdater.c.build_device[117] Building device >>/proc/bus/usb/003/001 >>[hotplug](3) JavaxUsbTopologyUpdater.c.build_device[141] Device is hub with 2 >>ports >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_device[156] Device speed is 12 >>Mbps >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_config[222] Building config 1 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_interface[282] Building >>interface 0 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_endpoint[296] Building endpoint >>0x81 >>[hotplug](3) JavaxUsbTopologyUpdater.c.build_device[117] Building device >>/proc/bus/usb/004/001 >>[hotplug](3) JavaxUsbTopologyUpdater.c.build_device[141] Device is hub with 2 >>ports >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_device[156] Device speed is 12 >>Mbps >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_config[222] Building config 1 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_interface[282] Building >>interface 0 >>[hotplug](4) JavaxUsbTopologyUpdater.c.build_endpoint[296] Building endpoint >>0x81 >>[default](2) JavaxUsb.h.open_device[216] Opening node /proc/bus/usb/001/001 >>[hotplug](4) JavaxUsbActive.c.getActiveConfig[272] Getting active config >>using GET_CONFIGURATION standard request. >>[hotplug](4) JavaxUsbActive.c.config_ask_device[212] Active device >>configuration is 1 >>[hotplug](4) JavaxUsbActive.c.getActiveConfig[274] Device returned 1. >>[default](2) JavaxUsb.h.open_device[216] Opening node /proc/bus/usb/001/002 >>[hotplug](4) JavaxUsbActive.c.getActiveConfig[272] Getting active config >>using GET_CONFIGURATION standard request. >>[hotplug](4) JavaxUsbActive.c.config_ask_device[212] Active device >>configuration is 1 >>[hotplug](4) JavaxUsbActive.c.getActiveConfig[274] Device returned 1. >>[default](2) JavaxUsb.h.open_device[216] Opening node /proc/bus/usb/001/003 >>[hotplug](4) JavaxUsbActive.c.getActiveConfig[272] Getting active config >>using GET_CONFIGURATION standard request. >>[hotplug](4) JavaxUsbActive.c.config_ask_device[212] Active device >>configuration is 1 >>[hotplug](4) JavaxUsbActive.c.getActiveConfig[274] Device returned 1. >>[default](2) JavaxUsb.h.open_device[216] Opening node /proc/bus/usb/001/004 >>[hotplug](4) JavaxUsbActive.c.getActiveConfig[272] Getting active config >>using GET_CONFIGURATION standard request. >>[hotplug](4) JavaxUsbActive.c.config_ask_device[212] Active device >>configuration is 1 >>[hotplug](4) JavaxUsbActive.c.getActiveConfig[274] Device returned 1. >>[default](2) JavaxUsb.h.open_device[216] Opening node /proc/bus/usb/001/005 >>[hotplug](4) JavaxUsbActive.c.getActiveConfig[272] Getting active config >>using GET_CONFIGURATION standard request. >>[hotplug](4) JavaxUsbActive.c.config_ask_device[212] Active device >>configuration is 1 >>[hotplug](4) JavaxUsbActive.c.getActiveConfig[274] Device returned 1. >>[default](2) JavaxUsb.h.open_device[216] Opening node /proc/bus/usb/002/001 >>[hotplug](4) JavaxUsbActive.c.getActiveConfig[272] Getting active config >>using GET_CONFIGURATION standard request. >>[hotplug](4) JavaxUsbActive.c.config_ask_device[212] Active device >>configuration is 1 >>[hotplug](4) JavaxUsbActive.c.getActiveConfig[274] Device returned 1. >>[default](2) JavaxUsb.h.open_device[216] Opening node /proc/bus/usb/003/001 >>[hotplug](4) JavaxUsbActive.c.getActiveConfig[272] Getting active config >>using GET_CONFIGURATION standard request. >>[hotplug](4) JavaxUsbActive.c.config_ask_device[212] Active device >>configuration is 1 >>[hotplug](4) JavaxUsbActive.c.getActiveConfig[274] Device returned 1. >>[default](2) JavaxUsb.h.open_device[216] Opening node /proc/bus/usb/004/001 >>[hotplug](4) JavaxUsbActive.c.getActiveConfig[272] Getting active config >>using GET_CONFIGURATION standard request. >>[hotplug](4) JavaxUsbActive.c.config_ask_device[212] Active device >>configuration is 1 >>[hotplug](4) JavaxUsbActive.c.getActiveConfig[274] Device returned 1. >>[default](2) JavaxUsb.h.open_device[216] Opening node /proc/bus/usb/001/005 >>[xfer](2) >>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[75] >> Got Request >>[default](3) JavaxUsbInterfaceRequest.c.claim_interface[87] Claiming >>interface 0 >>[default](3) JavaxUsbInterfaceRequest.c.claim_interface[96] Claimed interface >>0 >>[xfer](2) >>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[78] >> Completed Request >>ReaderThread: intIn: reading >>intIn: blocking >> >>ReaderThread: bulkIn: reading >>bulkIn: blocking >> >>[xfer](2) >>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[75] >> Got Request >>[xfer](2) JavaxUsbPipeRequest.c.pipe_request[62] Submitting URB >>[default](2) JavaxUsbKernel.c.setKernelVersion[45] Kernel version string >>2.6.16.13-4-default parsed as 2.6.16 >>[xfer](1) JavaxUsbPipeRequest.c.pipe_request[73] Could not submit URB (errno >>-28) >>[xfer](2) >>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[78] >> Completed Request >>[xfer](2) >>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[75] >> Got Request >>[xfer](2) JavaxUsbPipeRequest.c.pipe_request[62] Submitting URB >>[xfer](2) JavaxUsbPipeRequest.c.pipe_request[75] Submitted URB >>[xfer](2) >>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[78] >> Completed Request >>javax.usb.UsbPlatformException: Error submitting IRP : Error 28 >> at >> com.ibm.jusb.os.linux.JavaxUsb.errorToUsbException(JavaxUsb.java:73) >> at >> com.ibm.jusb.os.linux.LinuxPipeRequest.completeUsbIrp(LinuxPipeRequest.java:84) >> at >> com.ibm.jusb.os.linux.LinuxPipeRequest.setCompleted(LinuxPipeRequest.java:74) >> at com.ibm.jusb.os.linux.JavaxUsb.nativeDeviceProxy(Native Method) >> at >> com.ibm.jusb.os.linux.LinuxDeviceProxy$1.run(LinuxDeviceProxy.java:91) >> at java.lang.Thread.run(Thread.java:595) >>ReaderThread: intIn: reading >>intIn: blocking >> >>[xfer](2) >>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[75] >> Got Request >>[xfer](2) JavaxUsbPipeRequest.c.pipe_request[62] Submitting URB >>[xfer](1) JavaxUsbPipeRequest.c.pipe_request[73] Could not submit URB (errno >>-28) >>[xfer](2) >>JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[78] >> Completed Request >>javax.usb.UsbPlatformException: Error submitting IRP : Error 28 >> at >> com.ibm.jusb.os.linux.JavaxUsb.errorToUsbException(JavaxUsb.java:73) >> at >> com.ibm.jusb.os.linux.LinuxPipeRequest.completeUsbIrp(LinuxPipeRequest.java:84) >> at >> com.ibm.jusb.os.linux.LinuxPipeRequest.setCompleted(LinuxPipeRequest.java:74) >> at com.ibm.jusb.os.linux.JavaxUsb.nativeDeviceProxy(Native Method) >> at >> com.ibm.jusb.os.linux.LinuxDeviceProxy$1.run(LinuxDeviceProxy.java:91) >> at java.lang.Thread.run(Thread.java:595) >>ReaderThread: intIn: reading >>intIn: blocking >> >> >> >>------------------------------------------------------- >>All the advantages of Linux Managed Hosting--Without the Cost and Risk! >>Fully trained technicians. The highest number of Red Hat certifications in >>the hosting industry. Fanatical Support. Click to learn more >>http://sel.as-us.falkag.net/sel?cmd=lnk&kid=107521&bid=248729&dat=121642 >>_______________________________________________ >>javax-usb-devel mailing list >>javax-usb-devel@lists.sourceforge.net >>https://lists.sourceforge.net/lists/listinfo/javax-usb-devel >> > > -- Dan Streetman [EMAIL PROTECTED] --------------------- 186,272 miles per second: It isn't just a good idea, it's the law! ------------------------------------------------------- All the advantages of Linux Managed Hosting--Without the Cost and Risk! Fully trained technicians. The highest number of Red Hat certifications in the hosting industry. Fanatical Support. Click to learn more http://sel.as-us.falkag.net/sel?cmd=lnk&kid=107521&bid=248729&dat=121642 _______________________________________________ javax-usb-devel mailing list javax-usb-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/javax-usb-devel