Hi, first of all: I repoduced the illegal byte sequence error with a 64-byte buffer. This error comes only if I submit the buffer AFTER the output request, the data comes first after I wait a while and only then I turn OFF the camera because the program hangs (and I'm to lazy to kill the java process). So FIRST after this the strange data and error comes in:
LOG:[xfer](4) JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[78] Completed Request LOG:[xfer](4) JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[75] Got Request LOG:[xfer](5) JavaxUsbDeviceProxy.c.submitRequest[124] Submitting Request. LOG:[xfer](5) JavaxUsbDeviceProxy.c.submitRequest[128] Submitting Pipe Request. LOG:[xfer](4) JavaxUsbPipeRequest.c.pipe_request[63] Submitting URB LOG:[xfer](5) JavaxUsb.h.debug_urb[275] bulk_pipe_request : URB endpoint = 2 LOG:[xfer](5) JavaxUsb.h.debug_urb[276] bulk_pipe_request : URB status = 0 LOG:[xfer](5) JavaxUsb.h.debug_urb[277] bulk_pipe_request : URB signal = 0 LOG:[xfer](5) JavaxUsb.h.debug_urb[278] bulk_pipe_request : URB buffer length = 13 LOG:[xfer](5) JavaxUsb.h.debug_urb[279] bulk_pipe_request : URB actual length = 0 LOG:[xfer](2) JavaxUsb.h.debug_urb[285] bulk_pipe_request : URB data = 10 02 31 03 00 00 00 10 03 c6 a7 05 00 LOG:[xfer](4) JavaxUsbPipeRequest.c.pipe_request[76] Submitted URB LOG:[xfer](4) JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[78] Completed Request LOG:[xfer](4) JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[90] Got completed URB LOG:[xfer](4) JavaxUsbPipeRequest.c.complete_pipe_request[114] Completing URB. LOG:[xfer](5) JavaxUsb.h.debug_urb[275] complete_pipe_request : URB endpoint = 2 LOG:[xfer](5) JavaxUsb.h.debug_urb[276] complete_pipe_request : URB status = 0 LOG:[xfer](5) JavaxUsb.h.debug_urb[277] complete_pipe_request : URB signal = 0 LOG:[xfer](5) JavaxUsb.h.debug_urb[278] complete_pipe_request : URB buffer length = 13 LOG:[xfer](5) JavaxUsb.h.debug_urb[279] complete_pipe_request : URB actual length = 13 LOG:[xfer](2) JavaxUsb.h.debug_urb[285] complete_pipe_request : URB data = 10 02 31 03 00 00 00 10 03 c6 a7 05 00 LOG:[xfer](4) JavaxUsbPipeRequest.c.complete_pipe_request[127] Completed URB. LOG:[xfer](4) JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[94] Finished completed URB LOG:[xfer](4) JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[75] Got Request LOG:[xfer](5) JavaxUsbDeviceProxy.c.submitRequest[124] Submitting Request. LOG:[xfer](5) JavaxUsbDeviceProxy.c.submitRequest[128] Submitting Pipe Request. LOG:[xfer](4) JavaxUsbPipeRequest.c.pipe_request[63] Submitting URB LOG:[xfer](5) JavaxUsb.h.debug_urb[275] bulk_pipe_request : URB endpoint = 82 LOG:[xfer](5) JavaxUsb.h.debug_urb[276] bulk_pipe_request : URB status = 0 LOG:[xfer](5) JavaxUsb.h.debug_urb[277] bulk_pipe_request : URB signal = 0 LOG:[xfer](5) JavaxUsb.h.debug_urb[278] bulk_pipe_request : URB buffer length = 64 LOG:[xfer](5) JavaxUsb.h.debug_urb[279] bulk_pipe_request : URB actual length = 0 LOG:[xfer](2) JavaxUsb.h.debug_urb[285] bulk_pipe_request : URB data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 LOG:[xfer](4) JavaxUsbPipeRequest.c.pipe_request[76] Submitted URB LOG:[xfer](4) JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[78] Completed Request <-- LOG:[xfer](4) JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[90] Got completed URB <-- somethere here the programms waits for the buffer to get filled LOG:[xfer](4) JavaxUsbPipeRequest.c.complete_pipe_request[114] Completing URB. LOG:[xfer](5) JavaxUsb.h.debug_urb[275] complete_pipe_request : URB endpoint = 82 LOG:[xfer](5) JavaxUsb.h.debug_urb[276] complete_pipe_request : URB status = -84 LOG:[xfer](5) JavaxUsb.h.debug_urb[277] complete_pipe_request : URB signal = 0 LOG:[xfer](5) JavaxUsb.h.debug_urb[278] complete_pipe_request : URB buffer length = 64 LOG:[xfer](5) JavaxUsb.h.debug_urb[279] complete_pipe_request : URB actual length = 0 LOG:[xfer](2) JavaxUsb.h.debug_urb[285] complete_pipe_request : URB data = 6d 79 73 71 6c 2d 63 6f 6e 6e 65 63 74 6f 72 2d 6a 61 76 61 2d 32 2e 30 2e 31 34 2d 62 69 6e 2e 6a 61 72 00 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 LOG:[xfer](4) JavaxUsbPipeRequest.c.complete_pipe_request[127] Completed URB. LOG:[xfer](4) JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[94] Finished completed URB javax.usb.UsbException: Error submitting IRP : Illegal byte sequence 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:87) at java.lang.Thread.run(Thread.java:479) LOG:[hotplug](2) JavaxUsbTopologyListener.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeTopologyListener[58] Got topology change event. LOG:[hotplug](3) JavaxUsbTopologyUpdater.c.build_device[116] Building device /proc/bus/usb/001/001 <-- I think here javaxusb trys to reconnect LOG:[hotplug](3) JavaxUsbTopologyUpdater.c.build_device[141] Device is hub with 2 ports LOG:[hotplug](4) JavaxUsbTopologyUpdater.c.build_device[156] Device speed is 12 Mbps LOG:[hotplug](4) JavaxUsbTopologyUpdater.c.build_config[225] Building config 1 LOG:[hotplug](4) JavaxUsbActive.c.isConfigActive[259] Checking config 1 using GET_CONFIGURATION standard request. LOG:[hotplug](4) JavaxUsbActive.c.config_ask_device[197] Active device configuration is 1 LOG:[hotplug](4) JavaxUsbActive.c.isConfigActive[261] Device returned active. LOG:[hotplug](4) JavaxUsbTopologyUpdater.c.build_interface[287] Building interface 0 LOG:[hotplug](4) JavaxUsbActive.c.isInterfaceSettingActive[287] Checking interface 0 setting 0 using GET_INTERFACE standard request. LOG:[hotplug](1) JavaxUsbActive.c.interface_ask_device[239] Could not get active interface 0 setting from device : -16 LOG:[hotplug](4) JavaxUsbActive.c.isInterfaceSettingActive[289] Device returned failure. LOG:[hotplug](4) JavaxUsbActive.c.isInterfaceSettingActive[294] Checking interface 0 setting 0 using /proc/bus/usb/devices. LOG:[hotplug](4) JavaxUsbActive.c.interface_use_devices_file[112] Checking /proc/bus/usb/devices LOG:[hotplug](4) JavaxUsbActive.c.interface_use_devices_file[134] Found section for device Bus=01/Dev#= 1 LOG:[hotplug](4) JavaxUsbActive.c.isInterfaceSettingActive[296] /proc/bus/usb/devices returned inactive. LOG:[hotplug](4) JavaxUsbTopologyUpdater.c.build_endpoint[302] Building endpoint 0x81 But normally the output is (for a sleep > 10ms after creating the thread"): LOG:[xfer](4) JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[75] Got Request LOG:[xfer](5) JavaxUsbDeviceProxy.c.submitRequest[124] Submitting Request. LOG:[xfer](5) JavaxUsbDeviceProxy.c.submitRequest[128] Submitting Pipe Request. LOG:[xfer](4) JavaxUsbPipeRequest.c.pipe_request[63] Submitting URB LOG:[xfer](5) JavaxUsb.h.debug_urb[275] bulk_pipe_request : URB endpoint = 82 LOG:[xfer](5) JavaxUsb.h.debug_urb[276] bulk_pipe_request : URB status = 0 LOG:[xfer](5) JavaxUsb.h.debug_urb[277] bulk_pipe_request : URB signal = 0 LOG:[xfer](5) JavaxUsb.h.debug_urb[278] bulk_pipe_request : URB buffer length = 64 LOG:[xfer](5) JavaxUsb.h.debug_urb[279] bulk_pipe_request : URB actual length = 0 LOG:[xfer](2) JavaxUsb.h.debug_urb[285] bulk_pipe_request : URB data = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 LOG:[xfer](4) JavaxUsbPipeRequest.c.pipe_request[76] Submitted URB LOG:[xfer](4) JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[78] Completed Request LOG:[xfer](4) JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[75] Got Request LOG:[xfer](5) JavaxUsbDeviceProxy.c.submitRequest[124] Submitting Request. LOG:[xfer](5) JavaxUsbDeviceProxy.c.submitRequest[128] Submitting Pipe Request. If I here exaggerate and wait 2s, I see on my messages: Jun 13 13:51:27 Benjamin kernel: hub.c: USB new device connect on bus1/2, assigned device number 10 Jun 13 13:51:27 Benjamin kernel: usb.c: USB device 10 (vend/prod 0x5ca/0x2201) is not claimed by any active driver. Jun 13 13:51:36 Benjamin kernel: usbdevfs: process 5310 (java) did not claim interface 0 before use This way I see that the "did not claim"-error comes only for the input pipe. (heres the rest) LOG:[xfer](4) JavaxUsbPipeRequest.c.pipe_request[63] Submitting URB LOG:[xfer](5) JavaxUsb.h.debug_urb[275] bulk_pipe_request : URB endpoint = 2 LOG:[xfer](5) JavaxUsb.h.debug_urb[276] bulk_pipe_request : URB status = 0 LOG:[xfer](5) JavaxUsb.h.debug_urb[277] bulk_pipe_request : URB signal = 0 LOG:[xfer](5) JavaxUsb.h.debug_urb[278] bulk_pipe_request : URB buffer length = 13 LOG:[xfer](5) JavaxUsb.h.debug_urb[279] bulk_pipe_request : URB actual length = 0 LOG:[xfer](2) JavaxUsb.h.debug_urb[285] bulk_pipe_request : URB data = 10 02 31 03 00 00 00 10 03 c6 a7 05 00 LOG:[xfer](4) JavaxUsbPipeRequest.c.pipe_request[76] Submitted URB LOG:[xfer](4) JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[78] Completed Request LOG:[xfer](4) JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[90] Got completed URB LOG:[xfer](4) JavaxUsbPipeRequest.c.complete_pipe_request[114] Completing URB. LOG:[xfer](5) JavaxUsb.h.debug_urb[275] complete_pipe_request : URB endpoint = 2 LOG:[xfer](5) JavaxUsb.h.debug_urb[276] complete_pipe_request : URB status = 0 LOG:[xfer](5) JavaxUsb.h.debug_urb[277] complete_pipe_request : URB signal = 0 LOG:[xfer](5) JavaxUsb.h.debug_urb[278] complete_pipe_request : URB buffer length = 13 LOG:[xfer](5) JavaxUsb.h.debug_urb[279] complete_pipe_request : URB actual length = 13 LOG:[xfer](2) JavaxUsb.h.debug_urb[285] complete_pipe_request : URB data = 10 02 31 03 00 00 00 10 03 c6 a7 05 00 LOG:[xfer](4) JavaxUsbPipeRequest.c.complete_pipe_request[127] Completed URB. LOG:[xfer](4) JavaxUsbDeviceProxy.c.Java_com_ibm_jusb_os_linux_JavaxUsb_nativeDeviceProxy[94] Finished completed URB and here the programms hangs. Sometimes its possible to kill it with [CTRL]+[C], sometimes not. So the solution must be somethere else, and I don't exclude a bug either in javaxusb or in the kernel. I can try the 2.5 series, I heard there is much done on the usb-task. Another possibility is, that the device really sends nothing out at this time and I must do something before, like a null-byte packet to the other bulk-out-endpoint. Perhaps you see something of that sort in the usblog. ------------------------------------------------------- This SF.NET email is sponsored by: eBay Great deals on office technology -- on eBay now! Click here: http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5 _______________________________________________ javax-usb-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/javax-usb-devel