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

Reply via email to