MC7354 not work on Linux after connecting to Windows

Dear Sierra Wireless support!

I have 2 identical MC7354 modems.

I have connected one of them to WIndows, installed Windows drivers “GenericDriverSetup_Build4277” and “Skylight_Generic_Build4260.msi” the modem works OK on Windows BUT 1) does not work on LInux 2) does not expose nor COM port nor modem to issue AT commands

Second modem has been never connected to Windows, and it works OK on Linux with GobiNet and GobiSerial drivers. I was able to connect to 3G network with Sakis3G and download data with no problem.

My question is: how do I get back first modem to work on Linux? Please help me!

Hi,
can you share your syslog to check the root cause of this issue?

Thanks,
Alex

I have the exact same problem. The modem that has been plugged to Windows works properly in Windows. I get a network connectivity instantly. If I plug it back to my Linux board (which uses the GobiNet driver), it doesn’t show its /dev/qcqmiX interfaces nor its usbx network interfaces. Why is it? I have attached my dmesg output. I would be curious to compare it with OP’s one.
dmesg output.txt (16.3 KB)

Very interested in hearing the solution here as I have the same problem. Had a MC7354 working in Linux and moved to a Windows 8 box to flash the modem the AT&T approved FW. Now when the unit is returned to Linux none of the USB serial ports are enumerated and I only get a single QMI port from the modem which doesn’t allow AT commands to issued to the unit. I appears the flash utility may have switched an operating modes.

I do not have Linux box right now, but here is the USB configuration taken by Usblyzer software under Windows. Seems like device has some configuration errors: usb-device-descriptors.zip (2.63 KB)

Here is dmesg output on Linux. Notice “config 1 has invalid interface number”


This is normal. It is because the interfaces aren’t numbered consecutively. The numbering is instead used for function mapping. The warnings are harmless.

IMHO, the warning is more confusing than useful, although formally correct. But it has “always” been there, and some people find it useful. See the discussion in this thread for details:
spinics.net/lists/linux-usb/msg77499.html

But back to your real problem (which is unrelated to the warning): Your modem is now configured with a single config having a single MBIM function. The modem should work fine with the Linux mainline cdc_mbim driver and MBIM aware userspace applications like ModemManager or umbim. But from your report I guess you expect an AT command function and/or QMI functions?

It is possible to reconfigure the modem from Linux. But there aren’t any tools as far as I know, so it is a bit hackish. I’ve outlined the procedure here: https://forum.sierrawireless.com/t/my-mc7710-cant-work-on-linux-after-plug-in-it-to-windows8/7986/1

Or you can ask Sierra Wireless for a tool to reverse the damage caused by their Windows driver/application…

Thank you for your reply! Sierra wireless is silent on this issue. Their so-called service representative here in Ukraine knows nothing too.

I wonder how did you get those packets format? I am stuck at the 5th point, trying to change the current configuration. My response is different and nothing changes after it.

Please post what you’ve got, and I’ll take a look and see if I can understand what’s going on. You modem might have a different set of supported configurations.

  1. I issue command:
    echo 01 00 00 00 10 00 00 00 01 00 00 00 00 10 00 00 |xxd -r -p >/dev/cdc-wdm0
    response:
    0000000: 01 00 00 80 10 00 00 00 01 00 00 00 00 00 00 00 …

then a command:
4. 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

response

0000010: 03 00 00 80 48 00 00 00 05 00 00 00 01 00 00 00 …H…
0000020: 00 00 00 00 d1 a3 0b c2 f9 7a 6e 43 bf 65 c7 e2 …znC.e…
0000030: 4f b0 f0 d3 01 00 00 00 00 00 00 00 18 00 00 00 O…
0000040: 01 17 00 80 00 00 01 04 22 00 0c 00 02 04 00 00 …"…

I assume xx=04

  1. 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 04 00 06 00 5b 55 00 00 |xxd -r -p >/dev/cdc-wdm0

I have no response on this command.

This is not correct. The last bytes are missing here. The final part should look like this:
22 00 0c 00 02 04 00 00 00 00 00 01 02 00 02 xx

This is due to buffering in the reader. You won’t see the rest of this message until there is more data available. I’m afraid that is a challenge of this method. Did you use my suggested workaround of piping from dd:
dd if=/dev/cdc-wdm0 bs=1 |xxd -g1
?

Maybe that isn’t enough?

Yes, that is expected when the client ID is not allocated.

Someone (right :slight_smile: should create a proper tool for doing this…

I had the same problem with mine. But the only way i could get it to expose serial ports for the MC7354 was to upgrade it to the 06.03.32.02 firmware, do an RMA reset command to OEM settings, downgrade it back to the version 5 firmware i wanted to use, connect to the AT command port and switch the USBCOMP setting to 8 (DM, MODEM, NMEA, MBIM).

The tricky part is (at least doing it through windows 8.1 or 10) that you need to be really quick and issue the proper commands to switch the composition before the Windows OS resets the device to MBIM only. (About 20 seconds) Otherwise you’re back to square one.

If you’re able to do this method, i would recommend using composition 8 only as it seems to be the only one that windows does not try to force back to MBIM only. I suspect this is due to the MBIM port already being active in it so the OS doesn’t bother switching the device. You still CAN use the QMI enabled compositions but the duration varies in how long it takes for your computer to realize that the compositions have been changed and try to get MBIM back somehow.

This problem only seems to affect the device if run on Windows 8/8.1/10 only. Windows 7 does not seem to try and force a similar change.
So i’m starting to wonder if the issue is not with the device or firmware itself, but a change in how the newer versions of windows are handling mobile broadband devices?

EDIT

This fix resolved this issue for me.
See this thread.

https://forum.sierrawireless.com/t/my-mc7710-cant-work-on-linux-after-plug-in-it-to-windows8/7986/1

The solution worked for me!
[url]https://forum.sierrawireless.com/t/my-mc7710-cant-work-on-linux-after-plug-in-it-to-windows8/7986/1]
Thank you very much!!!