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