How to switch MC8700 to MBIM mode?

Hi, I have a 330u usb dongle. I’d like to use it with mbim. however it seems I need to switch it to the mbim mode first. Is there any instruction to show how to do this switching. Thanks!

Below is the usb information on ubuntu:
brant@ubuntu:~$ lsusb -t
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ohci-pci/12p, 12M
|__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 3, If 0, Class=Vendor Specific Class, Driver=sierra, 12M
|__ Port 2: Dev 3, If 1, Class=Vendor Specific Class, Driver=sierra, 12M
|__ Port 2: Dev 3, If 2, Class=Vendor Specific Class, Driver=sierra, 12M
|__ Port 2: Dev 3, If 3, Class=Vendor Specific Class, Driver=sierra, 12M
|__ Port 2: Dev 3, If 4, Class=Vendor Specific Class, Driver=sierra, 12M
|__ Port 2: Dev 3, If 7, Class=Vendor Specific Class, Driver=sierra_net, 12M
|__ Port 2: Dev 3, If 9, Class=Mass Storage, Driver=usb-storage, 12M
brant@ubuntu:~$ lsusb
Bus 001 Device 003: ID 1199:68a3 Sierra Wireless, Inc. MC8700 Modem

even on this model, this USB dongle can’t work at all, below are the error messages:
[ 69.320326] sierra_net 1-2:1.7 wwan0: register ‘sierra_net’ at usb-0000:00:06.0-2, Sierra Wireless USB-to-WWAN Modem, 3e:6b:09:44:05:07
[ 69.323040] sierra_net 1-2:1.7 wwan0: Submit SYNC failed -32
[ 69.323408] sierra_net 1-2:1.7 wwan0: Send SYNC failed, status -32
[ 69.326552] sierra_net 1-2:1.7 wwan0: Submit SYNC failed -32
[ 69.327115] sierra_net 1-2:1.7 wwan0: Send SYNC failed, status -32
[ 69.377878] sierra_net 1-2:1.7 wwp0s6u2i7: renamed from wwan0
[ 71.334575] sierra_net 1-2:1.7 wwp0s6u2i7: Submit SYNC failed -32
[ 71.335133] sierra_net 1-2:1.7 wwp0s6u2i7: Send SYNC failed, status -32
[ 71.338743] sierra_net 1-2:1.7 wwp0s6u2i7: Submit SYNC failed -32
[ 71.339287] sierra_net 1-2:1.7 wwp0s6u2i7: Send SYNC failed, status -32
[ 73.347621] sierra_net 1-2:1.7 wwp0s6u2i7: Submit SYNC failed -32
[ 73.348550] sierra_net 1-2:1.7 wwp0s6u2i7: Send SYNC failed, status -32
[ 73.352836] sierra_net 1-2:1.7 wwp0s6u2i7: Submit SYNC failed -32
[ 73.354004] sierra_net 1-2:1.7 wwp0s6u2i7: Send SYNC failed, status -32
[ 75.359241] sierra_net 1-2:1.7 wwp0s6u2i7: Submit SYNC failed -32
[ 75.360299] sierra_net 1-2:1.7 wwp0s6u2i7: Send SYNC failed, status -32
[ 75.365407] sierra_net 1-2:1.7 wwp0s6u2i7: Submit SYNC failed -32
[ 75.366424] sierra_net 1-2:1.7 wwp0s6u2i7: Send SYNC failed, status -32
[ 77.370018] sierra_net 1-2:1.7 wwp0s6u2i7: Submit SYNC failed -32
[ 77.370686] sierra_net 1-2:1.7 wwp0s6u2i7: Send SYNC failed, status -32
[ 77.373870] sierra_net 1-2:1.7 wwp0s6u2i7: Submit SYNC failed -32

I don’t know which modes this modem supports, so be careful and always check the output of the read commands (anything ending in ‘?’) before continuing to write changes. Do not try to change to anything which isn’t listed as supported. Make sure you have updated to the latest firmware first.

Your modem is in “Direct IP” mode. It must probably be first switched to “QMI mode” before MBIM can be enabled. If supported, QMI mode might allow a dual configuration where you have both QMI and MBIM available for runtime selection by the OS.

Switching to QMI mode is done by changing the PID. Important: Verify that the new PID is present in the list of supported PIDs! You will probably have to reset the modem after this, before you can continue to select an MBIM composition. I don’t know. I have only ever done this on an MC7710, and it was done in 2 separate steps.

Checking current status (your ouput will most likely differ - this is from a very old MC7710 firmware, initally without any MBIM support at all):

AT!ENTERCND="A710"
OK

AT!UDPID?
!UDPID: 68A3

OK
AT!UDPID=?
68A3
68AA
68A2
68A9

OK
AT!UDUSBCOMP?
!UDUSBCOMP: 3

OK
AT!UDUSBCOMP=?
0 - HIP  DM    NMEA  AT    MDM1  MDM2  MDM3  MS  SUPPORTED
1 - HIP  DM    NMEA  AT    MDM1  MS              NOT SUPPORTED
2 - HIP  DM    NMEA  AT    NIC1  MS              SUPPORTED
3 - HIP  DM    NMEA  AT    MDM1  NIC1  MS        SUPPORTED
4 - HIP  DM    NMEA  AT    NIC1  NIC2  NIC3  MS  SUPPORTED
5 - HIP  DM    NMEA  AT    ECM1  MS              SUPPORTED
6 - DM   NMEA  AT    QMI                         NOT SUPPORTED
7 - DM   NMEA  AT    RMNET1 RMNET2 RMNET3        NOT SUPPORTED


OK

Changing to QMI mode:

AT!ENTERCND="A710"
OK
AT!UDPID=68A2
OK
AT!UDUSBCOMP?
!UDUSBCOMP: 6

OK

Reset modem and wait for it to come up again. Hopefully(!) still with an AT command interface. You might want to make sure the new AT!UDUSBCOMP includes one before resttting…

Change UDUSBCOMP to something supported with MBIM (and preferaly at least AT…), e.g 8 or 19 or something else. Note that some modes could crash your firmware. No guarantees given here…

(this example is from the same MC7710, but running a considerably newer firmware with more supported modes):

AT!UDUSBCOMP?
!UDUSBCOMP: 6

OK
AT!UDUSBCOMP=?
0  - HIP  DM    NMEA  AT    MDM1  MDM2  MDM3  MS  NOT SUPPORTED
1  - HIP  DM    NMEA  AT    MDM1  MS              NOT SUPPORTED
2  - HIP  DM    NMEA  AT    NIC1  MS              NOT SUPPORTED
3  - HIP  DM    NMEA  AT    MDM1  NIC1  MS        NOT SUPPORTED
4  - HIP  DM    NMEA  AT    NIC1  NIC2  NIC3  MS  NOT SUPPORTED
5  - HIP  DM    NMEA  AT    ECM1  MS              NOT SUPPORTED
6  - DM   NMEA  AT    QMI                         SUPPORTED
7  - DM   NMEA  AT    RMNET1 RMNET2 RMNET3        SUPPORTED
8  - DM   NMEA  AT    MBIM                        SUPPORTED
9  - MBIM                                         SUPPORTED
10 - NMEA MBIM                                    SUPPORTED
11 - DM   MBIM                                    SUPPORTED
12 - DM   NMEA  MBIM                              SUPPORTED
13 - Config1: comp6    Config2: comp8             SUPPORTED
14 - Config1: comp6    Config2: comp9             SUPPORTED
15 - Config1: comp6    Config2: comp10            SUPPORTED
16 - Config1: comp6    Config2: comp11            SUPPORTED
17 - Config1: comp6    Config2: comp12            SUPPORTED
18 - Config1: comp7    Config2: comp8             SUPPORTED
19 - Config1: comp7    Config2: comp9             SUPPORTED
20 - Config1: comp7    Config2: comp10            SUPPORTED
21 - Config1: comp7    Config2: comp11            SUPPORTED
22 - Config1: comp7    Config2: comp12            SUPPORTED


OK
AT!UDUSBCOMP=19
OK

Reset modem and hope that it ends up with the MBIM config. If using “19”, you can in theory switch between QMI and MBIM configurations using

echo 1 >/sys/bus/usb/devices/1-2/bConfigurationValue

or

echo 2 >/sys/bus/usb/devices/1-2/bConfigurationValue

but some firmwares don’t like that after being fully initalised in either mode, so it’s best to stick with one specific setting (e.g. using udev to select if you want the non-default one).

This is unexpected, and should really be fixed… Are you running the sierra_net driver that came with your kernel? Which kernel version is that?

Hi,

Thanks for you quick response.

I followed your instruction and switched to QMI mode succefully. I did these steps on my Ubuntn host.

Unfortunately, when I inserted this dongle into my openwrt board. It was found and identified to USB MMC Storage. After that it was always identified to USB MMC Storage even I inserted it to the linux host. The serial port also disappeared. So I can’t do anything. Below is the infomation:
root@ubuntu:~# lsusb
Bus 001 Device 004: ID 1199:0fff Sierra Wireless, Inc.
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
root@ubuntu:~# lsusb -v -d 1199:0fff

Bus 001 Device 004: ID 1199:0fff Sierra Wireless, Inc.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x1199 Sierra Wireless, Inc.
idProduct 0x0fff
bcdDevice 0.00
iManufacturer 3 Sierra Wireless, Incorporated
iProduct 2 USB MMC Storage
iSerial 4 SWOC22905731
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 1 Sierra Configuration
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 9
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk-Only
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Device Status: 0x0000
(Bus Powered)
root@ubuntu:~#

I tied to install the driver on windows, the driver can’t install as well. How can it be reseted to the Modem?

For the second issue, My linux infomation is shown as below:
root@ubuntu:~# uname -a
Linux ubuntu 4.4.0-38-generic #57-Ubuntu SMP Tue Sep 6 15:42:33 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
root@ubuntu:~# cat /etc/issue
Ubuntu 16.04.1 LTS \n \l

Thanks again.

A bit unexpected, but I guess I should have anticipated that. This is the “TRU-Install” install feature. Install usb-modeswitch to switch it into modem mode again.

TRU-Install can also be more permanently disabled. See kb.netgear.com/22904/How-to-disable-TRU-Install

EDIT: Or use this method from Linux after running usb-modeswitch to get to the AT port: whrl.pl/ReWtIV

Hi ,

Thanks for your reply.

However, It can’t be switch to modem model. I’m stuck with the “No switching method given”. Below is the output:
root@ubuntu:/# usb_modeswitch -W -v 1199 -p 0fff -c /usr/share/usb_modeswitch/1199:0fff

Read config file: /usr/share/usb_modeswitch/1199:0fff

  • usb_modeswitch: handle USB devices with multiple modes
  • Version 2.2.5 © Josua Dietze 2015
  • Based on libusb1/libusbx

! PLEASE REPORT NEW CONFIGURATIONS !

DefaultVendor= 0x1199
DefaultProduct= 0x0fff
TargetVendor= 0x1199
TargetProductList=“0017,0018,0019,0020,0021,0022,0023,0024,0025,0026,0027,0028,0029,0112,0120,0218,0220,0224,0301,6802,6803,6804,6805,6808,6809,6812,6813,6815,6816,6820,6821,6822,6832,6833,6834,6835,6838,6839,683a,683b,683c,683d,683e,6850,6851,6852,6853,6855,6856,6859,685a,6880,6890,6891,6892,6893,68a2,68a3,68aa,9011,9012,9051”
NeedResponse=0

½k for target devices …
found USB ID 1199:0fff
vendor ID matched
found USB ID 80ee:0021
found USB ID 1d6b:0001
No devices in target mode or class found
Look for default devices …
found USB ID 1199:0fff
vendor ID matched
product ID matched
found USB ID 80ee:0021
found USB ID 1d6b:0001
Found devices in default mode (1)
Access device 004 on bus 001
Current configuration number is 1
Use interface number 9

USB description data (for identification)

Manufacturer: Sierra Wireless, Incorporated
Product: USB MMC Storage
Serial No.: SWOC22905731

Warning: no switching method given. See documentation
-> Run lsusb to note any changes. Bye!

Somethings, It also printed below errors.
root@ubuntu:/usr/share/usb_modeswitch# usb_modeswitch -W -I -c /usr/share/usb_modeswitch/1199:0fff
Read config file: /usr/share/usb_modeswitch/1199:0fff

  • usb_modeswitch: handle USB devices with multiple modes
  • Version 2.2.5 © Josua Dietze 2015
  • Based on libusb1/libusbx

! PLEASE REPORT NEW CONFIGURATIONS !

DefaultVendor= 0x1199
DefaultProduct= 0x0fff
TargetVendor= 0x1199
TargetProductList=“0017,0018,0019,0020,0021,0022,0023,0024,0025,0026,0027,0028,0029,0112,0120,0218,0220,0224,0301,6802,6803,6804,6805,6808,6809,6812,6813,6815,6816,6820,6821,6822,6832,6833,6834,6835,6838,6839,683a,683b,683c,683d,683e,6850,6851,6852,6853,6855,6856,6859,685a,6880,6890,6891,6892,6893,68a2,68a3,68aa,9011,9012,9051”
SierraMode=1
NeedResponse=0

InquireDevice=1

Look for target devices …
found USB ID 1199:0fff
vendor ID matched
found USB ID 80ee:0021
found USB ID 1d6b:0001
No devices in target mode or class found
Look for default devices …
found USB ID 1199:0fff
vendor ID matched
product ID matched
found USB ID 80ee:0021
found USB ID 1d6b:0001
Found devices in default mode (1)
Access device 005 on bus 001
Current configuration number is 1
Use interface number 9
Use endpoints 0x01 (out) and 0x81 (in)
Inquire device details; driver will be detached …
Looking for active driver …
No active driver found. Detached before or never attached
INQUIRY message failed (error -1)

USB description data (for identification)

Manufacturer: Sierra Wireless, Incorporated
Product: USB MMC Storage
Serial No.: SWOC22905731

Send Sierra control message
communication with device stopped. May have switched modes anyway
-> Run lsusb to note any changes. Bye!

root@ubuntu:/usr/share/usb_modeswitch#

ouch, there’s the problem recommending something you haven’t tried yourself…

Looks like you have to specify the “sierra” switching method. I believe the iption is -S. Please verify. I’m currently not at a terminal.