problems with huawei E3372 alias Telekom Speedstick V
Bjørn Mork
bjorn at mork.no
Fri Aug 29 02:16:01 PDT 2014
Aleksander Morgado <aleksander at aleksander.es> writes:
> One of the things you need to check with that modem is whether the
> NDISDUP command is sent in the /dev/cdc-wdm port instead of in a TTY;
> I believe that the modems handled by the huawei-cdc-ncm driver in the
> kernel need to have the NDISDUP command in the same USB interface as
> the WWAN port, which is what huawei-cdc-ncm allows to do.
Not knowing much about the Windows USB stack I find these UsbSnoop
traces a bit difficult to decipher. I recommend using USBPcap on
Windows - open source and much easier to analyze.
But unless I'm mistaken, this is going on the control channel
(i.e. similar to /dev/cdc-wdm) :
-- URB_FUNCTION_CLASS_INTERFACE:
TransferFlags = 00000002 (USBD_TRANSFER_DIRECTION_OUT, USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 0000003a
TransferBuffer = f7b07f78
TransferBufferMDL = 00000000
00000000: 41 54 5e 4e 44 49 53 43 4f 4e 4e 3d 31 2c 31 2c
00000010: 22 69 6e 74 65 72 6e 65 74 2e 74 65 6c 65 6b 6f
00000020: 6d 22 2c 22 74 65 6c 65 6b 6f 6d 22 2c 22 74 65
00000030: 6c 65 6b 6f 6d 22 2c 31 0d 0a
UrbLink = 00000000
RequestTypeReservedBits = 00000000
Request = 00000000
Value = 00000000
Index = 00000002
[437099 ms] UsbSnoop - FilterDispatchAny(f76bcfd2) : IRP_MJ_INTERNAL_DEVICE_CONTROL
[437099 ms] UsbSnoop - FdoHookDispatchInternalIoctl(f76bd1ea) : fdo=8603e030, Irp=865055a8, IRQL=1
[437099 ms] >>> URB 4788 going down >>>
-- URB_FUNCTION_CLASS_INTERFACE:
TransferFlags = 00000002 (USBD_TRANSFER_DIRECTION_OUT, USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 0000003a
TransferBuffer = f7b07f78
TransferBufferMDL = 00000000
00000000: 41 54 5e 4e 44 49 53 43 4f 4e 4e 3d 31 2c 31 2c
00000010: 22 69 6e 74 65 72 6e 65 74 2e 74 65 6c 65 6b 6f
00000020: 6d 22 2c 22 74 65 6c 65 6b 6f 6d 22 2c 22 74 65
00000030: 6c 65 6b 6f 6d 22 2c 31 0d 0a
UrbLink = 00000000
RequestTypeReservedBits = 00000000
Request = 00000000
Value = 00000000
Index = 00000002
[437100 ms] UsbSnoop - MyInternalIOCTLCompletion(f76bd126) : fido=864f3678, Irp=865055a8, Context=853f4ed8, IRQL=2
[437100 ms] <<< URB 4788 coming back <<<
-- URB_FUNCTION_CONTROL_TRANSFER:
PipeHandle = 86411120
TransferFlags = 0000000a (USBD_TRANSFER_DIRECTION_OUT, USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 0000003a
TransferBuffer = f7b07f78
TransferBufferMDL = 86769740
UrbLink = 00000000
SetupPacket =
00000000: 21 00 00 00 02 00 3a 00
[437100 ms] UsbSnoop - MyInternalIOCTLCompletion(f76bd126) : fido=00000000, Irp=865055a8, Context=86453f80, IRQL=2
[437100 ms] <<< URB 239 coming back <<<
-- URB_FUNCTION_CONTROL_TRANSFER:
PipeHandle = 86411120
TransferFlags = 0000000a (USBD_TRANSFER_DIRECTION_OUT, USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 0000003a
TransferBuffer = f7b07f78
TransferBufferMDL = 86769740
UrbLink = 00000000
SetupPacket =
00000000: 21 00 00 00 02 00 3a 00
[437102 ms] UsbSnoop - MyInternalIOCTLCompletion(f76bd126) : fido=864f3678, Irp=8634e740, Context=8662a770, IRQL=2
[437102 ms] <<< URB 4786 coming back <<<
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
PipeHandle = 864f3104 [endpoint 0x00000086]
TransferFlags = 00000003 (USBD_TRANSFER_DIRECTION_IN, USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 00000008
TransferBuffer = 865b6c70
TransferBufferMDL = 8629d1d0
00000000: a1 01 00 00 02 00 00 00
UrbLink = 00000000
[437102 ms] UsbSnoop - MyInternalIOCTLCompletion(f76bd126) : fido=00000000, Irp=8634e740, Context=865510b0, IRQL=2
[437102 ms] <<< URB 237 coming back <<<
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
PipeHandle = 864f3104 [endpoint 0x00000086]
TransferFlags = 00000003 (USBD_TRANSFER_DIRECTION_IN, USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 00000008
TransferBuffer = 865b6c70
TransferBufferMDL = 8629d1d0
00000000: a1 01 00 00 02 00 00 00
UrbLink = 00000000
[437102 ms] UsbSnoop - FilterDispatchAny(f76bcfd2) : IRP_MJ_INTERNAL_DEVICE_CONTROL
[437102 ms] UsbSnoop - FdoHookDispatchInternalIoctl(f76bd1ea) : fdo=86369028, Irp=8634e740, IRQL=2
[437102 ms] >>> URB 240 going down >>>
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
PipeHandle = 864f3104 [endpoint 0x00000086]
TransferFlags = 00000003 (USBD_TRANSFER_DIRECTION_IN, USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 00000010
TransferBuffer = 865b6c70
TransferBufferMDL = 00000000
UrbLink = 00000000
[437102 ms] UsbSnoop - FilterDispatchAny(f76bcfd2) : IRP_MJ_INTERNAL_DEVICE_CONTROL
[437102 ms] UsbSnoop - FdoHookDispatchInternalIoctl(f76bd1ea) : fdo=8603e030, Irp=8634e740, IRQL=2
[437102 ms] >>> URB 4789 going down >>>
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
PipeHandle = 864f3104 [endpoint 0x00000086]
TransferFlags = 00000003 (USBD_TRANSFER_DIRECTION_IN, USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 00000010
TransferBuffer = 865b6c70
TransferBufferMDL = 00000000
UrbLink = 00000000
[437102 ms] UsbSnoop - FilterDispatchAny(f76bcfd2) : IRP_MJ_INTERNAL_DEVICE_CONTROL
[437102 ms] UsbSnoop - FdoHookDispatchInternalIoctl(f76bd1ea) : fdo=86369028, Irp=86344438, IRQL=1
[437102 ms] >>> URB 241 going down >>>
-- URB_FUNCTION_CLASS_INTERFACE:
TransferFlags = 00000003 (USBD_TRANSFER_DIRECTION_IN, USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 00000100
TransferBuffer = f7b1ec4f
TransferBufferMDL = 00000000
UrbLink = 00000000
RequestTypeReservedBits = 00000000
Request = 00000001
Value = 00000000
Index = 00000002
[437102 ms] UsbSnoop - FilterDispatchAny(f76bcfd2) : IRP_MJ_INTERNAL_DEVICE_CONTROL
[437102 ms] UsbSnoop - FdoHookDispatchInternalIoctl(f76bd1ea) : fdo=8603e030, Irp=86344438, IRQL=1
[437102 ms] >>> URB 4790 going down >>>
-- URB_FUNCTION_CLASS_INTERFACE:
TransferFlags = 00000003 (USBD_TRANSFER_DIRECTION_IN, USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 00000100
TransferBuffer = f7b1ec4f
TransferBufferMDL = 00000000
UrbLink = 00000000
RequestTypeReservedBits = 00000000
Request = 00000001
Value = 00000000
Index = 00000002
[437102 ms] UsbSnoop - MyInternalIOCTLCompletion(f76bd126) : fido=864f3678, Irp=86344438, Context=853f4ed8, IRQL=2
[437102 ms] <<< URB 4790 coming back <<<
-- URB_FUNCTION_CONTROL_TRANSFER:
PipeHandle = 86411120
TransferFlags = 0000000b (USBD_TRANSFER_DIRECTION_IN, USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 00000006
TransferBuffer = f7b1ec4f
TransferBufferMDL = 86769740
00000000: 0d 0a 4f 4b 0d 0a
UrbLink = 00000000
SetupPacket =
00000000: a1 01 00 00 02 00 00 01
[437102 ms] UsbSnoop - MyInternalIOCTLCompletion(f76bd126) : fido=00000000, Irp=86344438, Context=86453f80, IRQL=2
[437102 ms] <<< URB 241 coming back <<<
-- URB_FUNCTION_CONTROL_TRANSFER:
PipeHandle = 86411120
TransferFlags = 0000000b (USBD_TRANSFER_DIRECTION_IN, USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 00000006
TransferBuffer = f7b1ec4f
TransferBufferMDL = 86769740
00000000: 0d 0a 4f 4b 0d 0a
UrbLink = 00000000
SetupPacket =
00000000: a1 01 00 00 02 00 00 01
[437227 ms] UsbSnoop - FilterDispatchAny(f76bcfd2) : IRP_MJ_INTERNAL_DEVICE_CONTROL
[437228 ms] UsbSnoop - FdoHookDispatchInternalIoctl(f76bd1ea) : fdo=86369028, Irp=864299f8, IRQL=1
[437228 ms] >>> URB 242 going down >>>
This seems to be the interface/class specific control request/reply
sequence:
AT^NDISCONN=1,1,"internet.telekom","telekom","telekom",1
OK
referring to interface #2, which I assume is the NCM control interface
on this modem? Uhm, yup, the dmesg log confirms that assumption:
> [ 155.080539] huawei_cdc_ncm 1-2:1.2: cdc-wdm0: USB WDM device
So, yes, it looks like Windows use AT^NDISCONN on the /dev/cdc-wdm port
here.
Bjørn
More information about the ModemManager-devel
mailing list