Alan Stern <stern@...> writes: > > > > > > > > This error message indicates that the device cannot be used as a serial > > > interface, since it doesn't have any bulk endpoints. So usbserial > > > isn't the right driver for it. Also, it runs at low speed (1.5 Mb/s) > > > and doesn't have any way to send data to the computer -- the listing > > > below shows that it is output only. > > > > Bad news, I guess...? > > Probably. Perhaps it indicates the device doesn't need to receive any > data from the computer. Or only minimal data, that can be wrapped up > in a control transfer on endpoint 0. > Thank you, Alan! You were right: My investigations of the usb snoop log bring up that there are only control messages used. Even though you do not know the vendor´s USB protocol (nor me), I hope to get some answers how the host can access the responses of the device and how I can implement that with legancy libusb. Here is a draft interpretation of a sample section which represents the first of many communication sequences: URB7: - host sends an APL specific request packet (91 01 00 01 93) to the clock (that´s for sure) - device seems to respond with a setup packet? URB 8: - host then starts an asynchronous read (am I right?) - device answers with the first APL-specific response packet (fore sure) URB 9: - host polls length of incoming data (am I right?) - device responses with 00 0b, wich seems to be the recent uplink packet length URB 10: - host sends an APL specific ACK packet (a1 01 00 01 a3) - device seems to respond with a setup packet? [442391 ms] >>> URB 7 going down >>> -- URB_FUNCTION_VENDOR_DEVICE: TransferFlags = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK) TransferBufferLength = 00000005 TransferBuffer = 822ac210 TransferBufferMDL = 00000000 00000000: 91 01 00 01 93 UrbLink = 00000000 RequestTypeReservedBits = 00000040 Request = 00000004 Value = 00005001 Index = 00000000 [442400 ms] UsbSnoop - MyInternalIOCTLCompletion(b8da7126) : fido=00000000, Irp=817e3008, Context=818094b0, IRQL=2 [442400 ms] <<< URB 7 coming back <<< -- URB_FUNCTION_CONTROL_TRANSFER: PipeHandle = 820d2bd8 TransferFlags = 0000000a (USBD_TRANSFER_DIRECTION_OUT, USBD_SHORT_TRANSFER_OK) TransferBufferLength = 00000005 TransferBuffer = 822ac210 TransferBufferMDL = 8214a840 UrbLink = 00000000 SetupPacket = 00000000: 40 04 01 50 00 00 05 00 [442400 ms] UsbSnoop - FilterDispatchAny(b8da6fd2) : IRP_MJ_INTERNAL_DEVICE_CONTROL [442400 ms] UsbSnoop - FdoHookDispatchInternalIoctl(b8da71ea) : fdo=81f069a0, Irp=82073db0, IRQL=0 [442400 ms] >>> URB 8 going down >>> -- URB_FUNCTION_VENDOR_DEVICE: TransferFlags = 00000001 (USBD_TRANSFER_DIRECTION_IN, ~USBD_SHORT_TRANSFER_OK) TransferBufferLength = 00000fa0 TransferBuffer = 81bd6008 TransferBufferMDL = 00000000 UrbLink = 00000000 RequestTypeReservedBits = 000000c0 Request = 00000004 Value = 00005002 Index = 00000000 [442920 ms] UsbSnoop - MyInternalIOCTLCompletion(b8da7126) : fido=00000000, Irp=82073db0, Context=818094b0, IRQL=2 [442920 ms] <<< URB 8 coming back <<< -- URB_FUNCTION_CONTROL_TRANSFER: PipeHandle = 820d2bd8 TransferFlags = 0000000b (USBD_TRANSFER_DIRECTION_IN, USBD_SHORT_TRANSFER_OK) TransferBufferLength = 0000000b TransferBuffer = 81bd6008 TransferBufferMDL = 81b1a548 00000000: 11 07 00 1e 48 b4 98 85 be 00 0d UrbLink = 00000000 SetupPacket = 00000000: c0 04 02 50 00 00 a0 0f [442921 ms] UsbSnoop - FilterDispatchAny(b8da6fd2) : IRP_MJ_INTERNAL_DEVICE_CONTROL [442921 ms] UsbSnoop - FdoHookDispatchInternalIoctl(b8da71ea) : fdo=81f069a0, Irp=816b2008, IRQL=0 [442921 ms] >>> URB 9 going down >>> -- URB_FUNCTION_VENDOR_DEVICE: TransferFlags = 00000001 (USBD_TRANSFER_DIRECTION_IN, ~USBD_SHORT_TRANSFER_OK) TransferBufferLength = 00000002 TransferBuffer = 81e88c98 TransferBufferMDL = 00000000 UrbLink = 00000000 RequestTypeReservedBits = 000000c0 Request = 00000004 Value = 0000500d Index = 00000000 [442924 ms] UsbSnoop - MyInternalIOCTLCompletion(b8da7126) : fido=00000000, Irp=816b2008, Context=818094b0, IRQL=2 [442924 ms] <<< URB 9 coming back <<< -- URB_FUNCTION_CONTROL_TRANSFER: PipeHandle = 820d2bd8 TransferFlags = 0000000b (USBD_TRANSFER_DIRECTION_IN, USBD_SHORT_TRANSFER_OK) TransferBufferLength = 00000002 TransferBuffer = 81e88c98 TransferBufferMDL = 81b78c40 00000000: 00 0b UrbLink = 00000000 SetupPacket = 00000000: c0 04 0d 50 00 00 02 00 [443054 ms] UsbSnoop - FilterDispatchAny(b8da6fd2) : IRP_MJ_INTERNAL_DEVICE_CONTROL [443054 ms] UsbSnoop - FdoHookDispatchInternalIoctl(b8da71ea) : fdo=81f069a0, Irp=816b2008, IRQL=0 [443054 ms] >>> URB 10 going down >>> -- URB_FUNCTION_VENDOR_DEVICE: TransferFlags = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK) TransferBufferLength = 00000005 TransferBuffer = 82344910 TransferBufferMDL = 00000000 00000000: a1 01 00 01 a3 UrbLink = 00000000 RequestTypeReservedBits = 00000040 Request = 00000004 Value = 00005001 Index = 00000000 [443062 ms] UsbSnoop - MyInternalIOCTLCompletion(b8da7126) : fido=00000000, Irp=816b2008, Context=818094b0, IRQL=2 [443062 ms] <<< URB 10 coming back <<< -- URB_FUNCTION_CONTROL_TRANSFER: PipeHandle = 820d2bd8 TransferFlags = 0000000a (USBD_TRANSFER_DIRECTION_OUT, USBD_SHORT_TRANSFER_OK) TransferBufferLength = 00000005 TransferBuffer = 82344910 TransferBufferMDL = 81b78c40 UrbLink = 00000000 SetupPacket = 00000000: 40 04 01 50 00 00 05 00 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html