My MC7710 can't work on Linux after plug-in it to Windows8

OK, I’m not going to get around to coding anything, so here’s a completely untested manual procedure for the brave. I don’t know if this works, so I’d sure be happy to hear about any success/failures/bricks…

  1. You need a Linux system with the cdc_mbim driver. This should provide a /dev/cdc-wdm0 device interface to the MBIM control channel. Make sure no other software tries to use it! Use e.g. “lsof /dev/cdc-wdm0” to verify

  2. Set up some reader process without buffering, allowing you to see the replies from the modem. E.g.

dd if=/dev/cdc-wdm0 bs=1 |xxd -g1

or whatever your preference is. Note that you have to prevent buffering here.

  1. You can now start writing MBIM messages in another terminal, like MBIM OPEN:

echo 01 00 00 00 10 00 00 00 01 00 00 00 00 10 00 00 |xxd -r -p >/dev/cdc-wdm0

You should see

0000000: 01 00 00 80 10 00 00 00 01 00 00 00 00 00 00 00 …

in in the reader terminal window. If not, then something failed and there is no point continuing.

  1. Request a QMI DMS CID:

echo 03 00 00 00 40 00 00 00 05 00 00 00 01 00 00 00 00 00 00 00 d1 a3 0b c2 f9 7a 6e 43 bf 65 c7 e2 4f b0 f0 d3 01 00 00 00 01 00 00 00 10 00 00 00 01 0f 00 00 00 00 00 04 22 00 04 00 01 01 00 02 |xxd -r -p >/dev/cdc-wdm0

expected response:

03 00 00 80 48 00 00 00 05 00 00 00 01 00 00 00 00 00 00 00 d1 a3 0b c2 f9 7a 6e 43 bf 65 c7 e2 4f b0 f0 d3 01 00 00 00 00 00 00 00 18 00 00 00 01 17 00 80 00 00 01 04 22 00 0c 00 02 04 00 00 00 00 00 01 02 00 02 xx

Note the xx number (last byte in the reply). This is the allocated CID. You have to use that number in the next commands.

  1. (Optional) Check the list of supported USB configurations:

echo 03 00 00 00 3d 00 00 00 07 00 00 00 01 00 00 00 00 00 00 00 d1 a3 0b c2 f9 7a 6e 43 bf 65 c7 e2 4f b0 f0 d3 01 00 00 00 01 00 00 00 0d 00 00 00 01 0c 00 00 02 xx 00 06 00 5b 55 00 00 |xxd -r -p >/dev/cdc-wdm0

expected response. Maybe slightly different, depending on the exact list of supported configs:

03 00 00 80 5d 00 00 00 07 00 00 00 01 00 00 00 00 00 00 00 d1 a3 0b c2 f9 7a 6e 43 bf 65 c7 e2 4f b0 f0 d3 01 00 00 00 00 00 00 00 2d 00 00 00 01 2c 00 80 02 xx 02 06 00 5b 55 20 00 02 04 00 00 00 00 00 10 01 00 13 11 12 00 11 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16

The number in blue indicates the active configuration (note that all these numbers are in hex, so this is 0x13 or 19 in decimal). The green numbers are the supported configurations. See my previous post for their exact meaning.

  1. Try to change the current configuration into something from with QMI and AT functions. Make sure the selected value is in the list of supported values if you did step #4. But 6 is usually a safe bet in any case. The last byte (in green) is the requested new configuration:

echo 03 00 00 00 3d 00 00 00 07 00 00 00 01 00 00 00 00 00 00 00 d1 a3 0b c2 f9 7a 6e 43 bf 65 c7 e2 4f b0 f0 d3 01 00 00 00 01 00 00 00 11 00 00 00 01 10 00 00 02 xx 00 08 00 5c 55 04 00 01 01 00 06 |xxd -r -p >/dev/cdc-wdm0

expected response:

03 00 00 80 5d 00 00 00 07 00 00 00 01 00 00 00 00 00 00 00 d1 a3 0b c2 f9 7a 6e 43 bf 65 c7 e2 4f b0 f0 d3 01 00 00 00 00 00 00 00 14 00 00 00 01 13 00 80 02 xx 02 08 00 5c 55 07 00 02 04 00 00 00 00 00

  1. If that succeeded then you should finish the session:

release the DMS CID

echo 03 00 00 00 41 00 00 00 09 00 00 00 01 00 00 00 00 00 00 00 d1 a3 0b c2 f9 7a 6e 43 bf 65 c7 e2 4f b0 f0 d3 01 00 00 00 01 00 00 00 11 00 00 00 01 10 00 00 00 00 00 08 23 00 05 00 01 02 00 02 xx |xxd -r -p >/dev/cdc-wdm0

expected response:

03 00 00 80 48 00 00 00 09 00 00 00 01 00 00 00 00 00 00 00 d1 a3 0b c2 f9 7a 6e 43 bf 65 c7 e2 4f b0 f0 d3 01 00 00 00 00 00 00 00 18 00 00 00 01 17 00 80 00 00 01 08 23 00 0c 00 02 04 00 00 00 00 00 01 02 00 02 xx

Close the MBIM session:

echo 02 00 00 00 0c 00 00 00 0a 00 00 00 |xxd -r -p >/dev/cdc-wdm0

expected response:

02 00 00 80 10 00 00 00 0a 00 00 00 00 00 00 00

  1. reset the modem and hope for the best.

Note that this was all typed and never tested, so there are likely errors to be corrected in the above. Please try to understand what’s happening, and correct as necessary. It’s usually not a problem if you send some invalid command to the modem. They will either be ignored or result in an error message back.