NU/Quanta MU-Q101 ("lipstick") modem
Posted: 15 May 2008, 11:55
Ok, I've found anohter modem to play with, this one is used mainly in Taiwan so I can't find any sites in english :( Translated pages are, like, crazy ;)
It has the codes Vendor=0x0408 ProdID=0x1000 before switching, and when looking in windows it seems it switches to Vendor=0x0408 ProdID=0xEA02.
I've sniffed the 0x1000 device until it dissapears, so I should have the switch command in there... I have a couple of traces and they're identical except from some addresses, probably dynamically assigned.
I haven't managed to switch it, I hoped you guys could help me find the switch command.
There is no message containing "00 00 06 01" or similar, the only "00 00 06 "-something is "00 00 06 00", two of them (see below) but they don't seem to work. :(
Two enpoints are used, 0x05 and 0x84, according to this:
[63 ms] <<< URB 8 coming back <<<
-- URB_FUNCTION_SELECT_CONFIGURATION:
ConfigurationDescriptor = 0x8205b0b8 (configure)
ConfigurationDescriptor : bLength = 9
ConfigurationDescriptor : bDescriptorType = 0x00000002
ConfigurationDescriptor : wTotalLength = 0x00000020
ConfigurationDescriptor : bNumInterfaces = 0x00000001
ConfigurationDescriptor : bConfigurationValue = 0x00000001
ConfigurationDescriptor : iConfiguration = 0x00000000
ConfigurationDescriptor : bmAttributes = 0x00000080
ConfigurationDescriptor : MaxPower = 0x00000032
ConfigurationHandle = 0x821a5aa0
Interface[0]: Length = 56
Interface[0]: InterfaceNumber = 0
Interface[0]: AlternateSetting = 0
Interface[0]: Class = 0x00000008
Interface[0]: SubClass = 0x00000006
Interface[0]: Protocol = 0x00000050
Interface[0]: InterfaceHandle = 0xf7d78768
Interface[0]: NumberOfPipes = 2
Interface[0]: Pipes[0] : MaximumPacketSize = 0x00000040
Interface[0]: Pipes[0] : EndpointAddress = 0x00000084
Interface[0]: Pipes[0] : Interval = 0x00000000
Interface[0]: Pipes[0] : PipeType = 0x00000002 (UsbdPipeTypeBulk)
Interface[0]: Pipes[0] : PipeHandle = 0xf7d78784
Interface[0]: Pipes[0] : MaxTransferSize = 0x00001000
Interface[0]: Pipes[0] : PipeFlags = 0x00000000
Interface[0]: Pipes[1] : MaximumPacketSize = 0x00000040
Interface[0]: Pipes[1] : EndpointAddress = 0x00000005
Interface[0]: Pipes[1] : Interval = 0x00000000
Interface[0]: Pipes[1] : PipeType = 0x00000002 (UsbdPipeTypeBulk)
Interface[0]: Pipes[1] : PipeHandle = 0xf7d787a4
Interface[0]: Pipes[1] : MaxTransferSize = 0x00001000
Interface[0]: Pipes[1] : PipeFlags = 0x00000000
First 05 message:
[89 ms] >>> URB 11 going down >>>
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
PipeHandle = 82214fdc [endpoint 0x00000005]
TransferFlags = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 0000001f
TransferBuffer = 8243fbc8
TransferBufferMDL = 00000000
00000000: 55 53 42 43 38 47 4f fc 24 00 00 00 80 00 06 12
00000010: 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00
UrbLink = 00000000
equals(?):
usb_modeswitch -v 0x0408 -p 0x1000 -m 0x05 -M 5553424338474ffc2400000080000612000000240000000000000000000000
- nothing happens
last 05 message with a look-a-like message
[8720 ms] >>> URB 376 going down >>>
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
PipeHandle = 82214fdc [endpoint 0x00000005]
TransferFlags = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 0000001f
TransferBuffer = 8243fbc8
TransferBufferMDL = 00000000
00000000: 55 53 42 43 38 47 4f fc 00 02 00 00 00 00 0a 2a
00000010: 00 00 00 00 33 00 00 01 00 00 00 00 00 00 00
UrbLink = 00000000
equals:
usb_modeswitch -v 0x0408 -p 0x1000 -m 0x05 5553424338474ffc0002000000000a2a000000003300000100000000000000
- does nothing
first 05 message with a "00* 06" entry
[7477 ms] >>> URB 195 going down >>>
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
PipeHandle = 82214fdc [endpoint 0x00000005]
TransferFlags = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 0000001f
TransferBuffer = 8243fbc8
TransferBufferMDL = 00000000
00000000: 55 53 42 43 30 c8 3e f8 00 00 00 00 00 00 06 00
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
UrbLink = 00000000
equals:
usb_modeswitch -v 0x0408 -p 0x1000 -m 0x05 5553424330c83ef80000000000000600000000000000000000000000000000
- nothing
Second (and last) message with a "00* 06" entry
[7488 ms] >>> URB 200 going down >>>
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
PipeHandle = 82214fdc [endpoint 0x00000005]
TransferFlags = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 0000001f
TransferBuffer = 8243fbc8
TransferBufferMDL = 00000000
00000000: 55 53 42 43 30 18 09 f8 00 00 00 00 00 00 06 00
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
UrbLink = 00000000
equals:
usb_modeswitch -v 0x0408 -p 0x1000 -m 0x05 55534243301809f80000000000000600000000000000000000000000000000
- nothing
After the last message with similar data to 05 there are some more messages without data plus one with a large block of data. It ends with two messages to 84, with a little data:
[8724 ms] >>> URB 378 going down >>>
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
PipeHandle = 82214fbc [endpoint 0x00000084]
TransferFlags = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 0000000d
TransferBuffer = 8243fbc8
TransferBufferMDL = 00000000
00000000: 55 53 42 43 38 47 4f fc 00 02 00 00 00
UrbLink = 00000000
[8726 ms] UsbSnoop - MyInternalIOCTLCompletion(f78f0db0) : fido=820276d8, Irp=fc4f4738, Context=f7fce740, IRQL=2
[8726 ms] <<< URB 378 coming back <<<
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
PipeHandle = 82214fbc [endpoint 0x00000084]
TransferFlags = 00000001 (USBD_TRANSFER_DIRECTION_IN, ~USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 0000000d
TransferBuffer = 8243fbc8
TransferBufferMDL = 820419e8
00000000: 55 53 42 53 38 47 4f fc 00 00 00 00 00
UrbLink = 00000000
Any ideas?
It has the codes Vendor=0x0408 ProdID=0x1000 before switching, and when looking in windows it seems it switches to Vendor=0x0408 ProdID=0xEA02.
I've sniffed the 0x1000 device until it dissapears, so I should have the switch command in there... I have a couple of traces and they're identical except from some addresses, probably dynamically assigned.
I haven't managed to switch it, I hoped you guys could help me find the switch command.
There is no message containing "00 00 06 01" or similar, the only "00 00 06 "-something is "00 00 06 00", two of them (see below) but they don't seem to work. :(
Two enpoints are used, 0x05 and 0x84, according to this:
[63 ms] <<< URB 8 coming back <<<
-- URB_FUNCTION_SELECT_CONFIGURATION:
ConfigurationDescriptor = 0x8205b0b8 (configure)
ConfigurationDescriptor : bLength = 9
ConfigurationDescriptor : bDescriptorType = 0x00000002
ConfigurationDescriptor : wTotalLength = 0x00000020
ConfigurationDescriptor : bNumInterfaces = 0x00000001
ConfigurationDescriptor : bConfigurationValue = 0x00000001
ConfigurationDescriptor : iConfiguration = 0x00000000
ConfigurationDescriptor : bmAttributes = 0x00000080
ConfigurationDescriptor : MaxPower = 0x00000032
ConfigurationHandle = 0x821a5aa0
Interface[0]: Length = 56
Interface[0]: InterfaceNumber = 0
Interface[0]: AlternateSetting = 0
Interface[0]: Class = 0x00000008
Interface[0]: SubClass = 0x00000006
Interface[0]: Protocol = 0x00000050
Interface[0]: InterfaceHandle = 0xf7d78768
Interface[0]: NumberOfPipes = 2
Interface[0]: Pipes[0] : MaximumPacketSize = 0x00000040
Interface[0]: Pipes[0] : EndpointAddress = 0x00000084
Interface[0]: Pipes[0] : Interval = 0x00000000
Interface[0]: Pipes[0] : PipeType = 0x00000002 (UsbdPipeTypeBulk)
Interface[0]: Pipes[0] : PipeHandle = 0xf7d78784
Interface[0]: Pipes[0] : MaxTransferSize = 0x00001000
Interface[0]: Pipes[0] : PipeFlags = 0x00000000
Interface[0]: Pipes[1] : MaximumPacketSize = 0x00000040
Interface[0]: Pipes[1] : EndpointAddress = 0x00000005
Interface[0]: Pipes[1] : Interval = 0x00000000
Interface[0]: Pipes[1] : PipeType = 0x00000002 (UsbdPipeTypeBulk)
Interface[0]: Pipes[1] : PipeHandle = 0xf7d787a4
Interface[0]: Pipes[1] : MaxTransferSize = 0x00001000
Interface[0]: Pipes[1] : PipeFlags = 0x00000000
First 05 message:
[89 ms] >>> URB 11 going down >>>
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
PipeHandle = 82214fdc [endpoint 0x00000005]
TransferFlags = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 0000001f
TransferBuffer = 8243fbc8
TransferBufferMDL = 00000000
00000000: 55 53 42 43 38 47 4f fc 24 00 00 00 80 00 06 12
00000010: 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00
UrbLink = 00000000
equals(?):
usb_modeswitch -v 0x0408 -p 0x1000 -m 0x05 -M 5553424338474ffc2400000080000612000000240000000000000000000000
- nothing happens
last 05 message with a look-a-like message
[8720 ms] >>> URB 376 going down >>>
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
PipeHandle = 82214fdc [endpoint 0x00000005]
TransferFlags = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 0000001f
TransferBuffer = 8243fbc8
TransferBufferMDL = 00000000
00000000: 55 53 42 43 38 47 4f fc 00 02 00 00 00 00 0a 2a
00000010: 00 00 00 00 33 00 00 01 00 00 00 00 00 00 00
UrbLink = 00000000
equals:
usb_modeswitch -v 0x0408 -p 0x1000 -m 0x05 5553424338474ffc0002000000000a2a000000003300000100000000000000
- does nothing
first 05 message with a "00* 06" entry
[7477 ms] >>> URB 195 going down >>>
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
PipeHandle = 82214fdc [endpoint 0x00000005]
TransferFlags = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 0000001f
TransferBuffer = 8243fbc8
TransferBufferMDL = 00000000
00000000: 55 53 42 43 30 c8 3e f8 00 00 00 00 00 00 06 00
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
UrbLink = 00000000
equals:
usb_modeswitch -v 0x0408 -p 0x1000 -m 0x05 5553424330c83ef80000000000000600000000000000000000000000000000
- nothing
Second (and last) message with a "00* 06" entry
[7488 ms] >>> URB 200 going down >>>
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
PipeHandle = 82214fdc [endpoint 0x00000005]
TransferFlags = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 0000001f
TransferBuffer = 8243fbc8
TransferBufferMDL = 00000000
00000000: 55 53 42 43 30 18 09 f8 00 00 00 00 00 00 06 00
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
UrbLink = 00000000
equals:
usb_modeswitch -v 0x0408 -p 0x1000 -m 0x05 55534243301809f80000000000000600000000000000000000000000000000
- nothing
After the last message with similar data to 05 there are some more messages without data plus one with a large block of data. It ends with two messages to 84, with a little data:
[8724 ms] >>> URB 378 going down >>>
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
PipeHandle = 82214fbc [endpoint 0x00000084]
TransferFlags = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 0000000d
TransferBuffer = 8243fbc8
TransferBufferMDL = 00000000
00000000: 55 53 42 43 38 47 4f fc 00 02 00 00 00
UrbLink = 00000000
[8726 ms] UsbSnoop - MyInternalIOCTLCompletion(f78f0db0) : fido=820276d8, Irp=fc4f4738, Context=f7fce740, IRQL=2
[8726 ms] <<< URB 378 coming back <<<
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
PipeHandle = 82214fbc [endpoint 0x00000084]
TransferFlags = 00000001 (USBD_TRANSFER_DIRECTION_IN, ~USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 0000000d
TransferBuffer = 8243fbc8
TransferBufferMDL = 820419e8
00000000: 55 53 42 53 38 47 4f fc 00 00 00 00 00
UrbLink = 00000000
Any ideas?