GL-MT3000 and Sierra EM7455

Hi,

I’m trying to use my Sierra EM7455 modem (on a USB interface board) with my GL-MT3000.

* Model
GL.iNet GL-MT3000

* Firmware
4.2.2

* Openwrt Version
OpenWrt 21.02-SNAPSHOT r15812+879-46b6ee7ffc

* Kernel Version
5.4.211

The modem is running on the latest firmware and is currently set to QMI (diag,nmea,modem,rmnet0) mode, but I’ve also tried MBIM (diag,nmea,modem,mbim) mode which worked perfectly when connected to my Windows PC, but neither works on the GL-MT3000.

The device shows up on the router under /dev/cdc-wdm0 and I can query it with uqmi:

root@GL-MT3000:~# uqmi -d /dev/cdc-wdm0 --get-data-status
"disconnected"
root@GL-MT3000:~# uqmi -d /dev/cdc-wdm0 --get-signal-info
{
    "type": "lte",
    "rssi": -80,
    "rsrq": -8,
    "rsrp": -112,
    "snr": 104
}

These are the three serial ports (diag,nmea,modem) and the qmi interface (rmnet0) it exposes:

root@GL-MT3000:~# cat /sys/kernel/debug/usb/devices

T:  Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=5000 MxCh= 0
D:  Ver= 3.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs=  1
P:  Vendor=1199 ProdID=9071 Rev= 0.06
S:  Manufacturer=Sierra Wireless, Incorporated
S:  Product=EM7455
C:* #Ifs= 4 Cfg#= 1 Atr=a0 MxPwr=504mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E:  Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
E:  Ad=83(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
E:  Ad=85(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=84(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 8 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
E:  Ad=87(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
E:  Ad=86(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms

However, the webinterface is showing “No Modem device found. Plug in your USB modem to start.” for Cellular.

Is there any way to fix this?

I’m thinking the firmware maybe just doesn’t know the modem or doesn’t detect it correctly as a supported modem. I could change Vendor=1199 ProdID=9071 to something else if I had the VID/PID of a supported similar (enough) Sierra Modem to see if that works.

Update:

Since installing kmod-usb-serial-qualcomm, the three command serial ports it exposes are now also loaded corretly as /dev/ttyUSB devices with the qcserial driver and the Webinterface is now showing “Incompatible Modem”.

However, the manual setup only detects the three /dev/ttyUSB devices, not the actual /dev/cdc-wdm0 one which would be needed for the modem to work.

root@GL-MT3000:~# cat /sys/kernel/debug/usb/devices

T:  Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=5000 MxCh= 0
D:  Ver= 3.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs=  1
P:  Vendor=1199 ProdID=9071 Rev= 0.06
S:  Manufacturer=Sierra Wireless, Incorporated
S:  Product=EM7455
C:* #Ifs= 4 Cfg#= 1 Atr=a0 MxPwr=504mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=qcserial
E:  Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=qcserial
E:  Ad=83(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=qcserial
E:  Ad=85(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=84(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 8 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
E:  Ad=87(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
E:  Ad=86(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
1 Like

This is possible. I did it today, from the command line, but I don’t know if/when it will ever work automagically.
The first key to success is having the modem in QMI mode, NOT MBIM mode. MBIM is the more modern/lower latency way to LTE data, but the tools to support aren’t in the ancient version of OpenWRT on the MT3000. There are tools out there to put the modem in the correct mode, and it’s best done on an external Linux machine with full package capabilities. The tool uses Perl, which the OpenWRT team (wisely) excludes from the package repo.
For reference I have the Dell Version of the EM7544 (the Snapdragon) plugged into a M.2 USB3 adapter. The “normal” stuff you get from Amazon for $50 total.
I’m just leaving this note here to give you some hope, and let you know what you want to do is possible, and I’ll be back with something more like a full cookbook.

Sounds awesome, looking forward to your full guide :slight_smile:

Good news, I’ve got it working in MBIM mode. I use a Ting Mobile SIM. Ting is a VAR for T-Mobile. I ran an Ookla speed test and got about 10mb/s down and 725kb/s up, but my modem is in a non-optimal location.
Much if what I used to get connected came from here: How to use 4G LTE modems like the MC7455 on both Debian/Ubuntu and OpenWRT using MBIM · GitHub
Start with installing the correct packages:

opkg install mbim-utils kmod-usb-net-cdc-mbim kmod-usb-net-sierrawireless kmod-usb-serial-wwan

You’ll need to set up your /etc/mbim-network.conf file:

APN=wholesale
PROXY=yes

Your APN will vary, based on your LTE Provider.
After that, the mbimcli command is your friend. The wwan0 interface will get created, and you might want to go into the luci interface and set it up as an unmanaged WAN zone interface. Getting the IP addresses/default routes set up is still a very manual process. I’ll be looking to see if I can unwind the GL.iNET stuff to see if that can be automated based on hotplug.
Let me know if you have any success.

Sorry for a newb question: How would I run that opkg command on the Flint?

Secondarily: How do I access this network configuration file?

There is a package installation utility built into both the GL-Inet interface and the underlying LuCI interface provided by OpenWRT. Generally speaking, though, all of these command are run on a command line via SSH.
You’ll need an SSH client on a laptop or desktop computer that is connected either via WiFi or Ethernet cable to the LAN port of the router, and you’ll need to enable SSH in the Advanced setting tab of the router interface. Log in with root & the admin password you set up.

I don’t want to discourage you, but there’s a pretty big gulf between “how do I edit the network configuration file” and “getting an untested/unsupported LTE modem to work with my hardware.” Being comfortable working at the command line in Linux is the key to success here. These are great little devices to learn on, because you can always reset them back to the factory settings if you get too far off course.