Hello,
I have a device not listed in "usb.ids":
---8<-----------
T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 18 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=1004 ProdID=6005 Rev= 1.00
S: Manufacturer=LG Electronicst
S: Product=LG Mobile Agent
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=200mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=ff
Driver=usbserial_generic
E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=85(I) Atr=03(Int.) MxPS= 1 Ivl=1ms
I: If#= 0 Alt= 1 #EPs= 5 Cls=ff(vend.) Sub=00 Prot=ff
Driver=usbserial_generic
E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 64 Ivl=1ms
E: Ad=04(O) Atr=01(Isoc) MxPS= 64 Ivl=1ms
E: Ad=85(I) Atr=03(Int.) MxPS= 1 Ivl=1ms
---8<-----------
First, just in case, does anyone know of succesfully using this device
with Linux ?
It has bulks in and out so i could load usbserial with vendor and
product options... however, i couldn't do much more, as it doesn't use
AT like commands, like with the serial interface.
In syslog i have this message:
---8<-----------
Aug 11 10:03:37 XxX kernel: drivers/usb/serial/usb-serial.c: the device
claims to support interrupt in transfers, but read_int_callback is not
defined
---8<-----------
Should this be implemented in a custom driver (anyway, i'm not really
sure this interrupt endpoint is used) ?
I took traces with usbsnoop: it seems the phone needs to know how much
data will be sent to it, before sending something to the bulk / a
"command"
Usb sniff shows that a "URB_VENDOR_FUNCTION_DEVICE" is present before
each "URB_FUNCTION_BULK".
How do I copy this behaviour , using "usb_control_msg" ?
Should a module be written, or can i use libusb to control this device ?
Thanks in advance,
Best regards,
Guillaume B.
PS:
part of usbsnoop log follows
---8<-----------
Interface[0]: Length = 116
Interface[0]: InterfaceNumber = 0
Interface[0]: AlternateSetting = 1
Interface[0]: Class = 0x000000ff
Interface[0]: SubClass = 0x00000000
Interface[0]: Protocol = 0x000000ff
Interface[0]: InterfaceHandle = 0x80d247c8
Interface[0]: NumberOfPipes = 5
Interface[0]: Pipes[0] : MaximumPacketSize = 0x00000040
Interface[0]: Pipes[0] : EndpointAddress = 0x00000081
Interface[0]: Pipes[0] : Interval = 0x00000000
Interface[0]: Pipes[0] : PipeType = 0x00000002
(UsbdPipeTypeBulk)
Interface[0]: Pipes[0] : PipeHandle = 0x80d247e4
Interface[0]: Pipes[0] : MaxTransferSize = 0x00001000
Interface[0]: Pipes[0] : PipeFlags = 0x00000000
Interface[0]: Pipes[1] : MaximumPacketSize = 0x00000040
Interface[0]: Pipes[1] : EndpointAddress = 0x00000002
Interface[0]: Pipes[1] : Interval = 0x00000000
Interface[0]: Pipes[1] : PipeType = 0x00000002
(UsbdPipeTypeBulk)
Interface[0]: Pipes[1] : PipeHandle = 0x80d24804
Interface[0]: Pipes[1] : MaxTransferSize = 0x00001000
Interface[0]: Pipes[1] : PipeFlags = 0x00000000
Interface[0]: Pipes[2] : MaximumPacketSize = 0x00000040
Interface[0]: Pipes[2] : EndpointAddress = 0x00000083
Interface[0]: Pipes[2] : Interval = 0x00000001
Interface[0]: Pipes[2] : PipeType = 0x00000001
(UsbdPipeTypeIsochronous)
Interface[0]: Pipes[2] : PipeHandle = 0x80d24824
Interface[0]: Pipes[2] : MaxTransferSize = 0x00001000
Interface[0]: Pipes[2] : PipeFlags = 0x00000000
Interface[0]: Pipes[3] : MaximumPacketSize = 0x00000040
Interface[0]: Pipes[3] : EndpointAddress = 0x00000004
Interface[0]: Pipes[3] : Interval = 0x00000001
Interface[0]: Pipes[3] : PipeType = 0x00000001
(UsbdPipeTypeIsochronous)
Interface[0]: Pipes[3] : PipeHandle = 0x80d24844
Interface[0]: Pipes[3] : MaxTransferSize = 0x00001000
Interface[0]: Pipes[3] : PipeFlags = 0x00000000
Interface[0]: Pipes[4] : MaximumPacketSize = 0x00000001
Interface[0]: Pipes[4] : EndpointAddress = 0x00000085
Interface[0]: Pipes[4] : Interval = 0x00000001
Interface[0]: Pipes[4] : PipeType = 0x00000003
(UsbdPipeTypeInterrupt)
Interface[0]: Pipes[4] : PipeHandle = 0x80d24864
Interface[0]: Pipes[4] : MaxTransferSize = 0x00001000
Interface[0]: Pipes[4] : PipeFlags = 0x00000000
[..cut...]
[70534 ms] >>> URB 4 going down >>>
-- URB_FUNCTION_VENDOR_DEVICE:
TransferFlags = 00000000 (USBD_TRANSFER_DIRECTION_OUT,
~USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 00000000
TransferBuffer = 00000000
TransferBufferMDL = 00000000
no data supplied
UrbLink = 00000000
RequestTypeReservedBits = 00000000
Request = 00000013
Value = 00000006
Index = 00000000
[72173 ms] UsbSnoop - MyInternalIOCTLCompletion(faf4cdb0) :
fido=00000000, Irp=ffba7798, Context=80d44590, IRQL=2
[72173 ms] <<< URB 4 coming back <<<
-- URB_FUNCTION_CONTROL_TRANSFER:
PipeHandle = 80dcf978
TransferFlags = 0000000a (USBD_TRANSFER_DIRECTION_OUT,
USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 00000000
TransferBuffer = 00000000
TransferBufferMDL = 00000000
UrbLink = 00000000
SetupPacket =
00000000: 40 13 06 00 00 00 00 00
[72174 ms] UsbSnoop - DispatchAny(faf4b610) :
IRP_MJ_INTERNAL_DEVICE_CONTROL
[72174 ms] UsbSnoop - MyDispatchInternalIOCTL(faf4ce80) : fdo=ffaa79c0,
Irp=ffba7798, IRQL=0
[72175 ms] >>> URB 5 going down >>>
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
PipeHandle = 80d24804 [endpoint 0x00000002]
TransferFlags = 00000000 (USBD_TRANSFER_DIRECTION_OUT,
~USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 00000006
TransferBuffer = 00000000
TransferBufferMDL = 80e4b1c8
00000000: 02 00 00 00 00 00
UrbLink = 00000000
[72180 ms] UsbSnoop - MyInternalIOCTLCompletion(faf4cdb0) :
fido=00000000, Irp=ffba7798, Context=80e1b420, IRQL=2
[72180 ms] <<< URB 5 coming back <<<
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
PipeHandle = 80d24804 [endpoint 0x00000002]
TransferFlags = 00000000 (USBD_TRANSFER_DIRECTION_OUT,
~USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 00000006
TransferBuffer = 00000000
TransferBufferMDL = 80e4b1c8
UrbLink = 00000000
[72181 ms] UsbSnoop - DispatchAny(faf4b610) :
IRP_MJ_INTERNAL_DEVICE_CONTROL
[72181 ms] UsbSnoop - MyDispatchInternalIOCTL(faf4ce80) : fdo=ffaa79c0,
Irp=ffba7798, IRQL=0
---8<-----------
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel