Reverting from QMI to 3g serial on GL-MiFi

I was trying to get the EC25 in my GL-MiFi to work via QMI, but can’t seem to establish a connection. In fiddling with uqmi, I’m wondering if something was altered on the EC25 itself, as I can’t seem to get back to a 3g connection via ttyUSB2 or ttyUSB3 even after factory reset of the GL-MiFi.

After factory reset, comgt info gives:

Quectel
EC25
Revision: EC25AFAR05A04M4G
OK

Manufacturer: Quectel
IMEI and Serial Number: 861102032865021
Manufacturer’s Revision:
EC25AFAR05A04M
Hardware Revision:

Network Locked: 0
Customisation:

Band settings: (
)
APN: 1,“IP”,“fast.t-mobile.com”,“0.0.0.0”,0,0,0,0

I found it odd that the APN information would be preserved after reset, so perhaps some other setting I changed via uqmi needs to be put back? Is there a way to flash the EC25 to its original settings?

Here’s what happens in my system log when I first configure the modem after reset for UMTS/GPRS on ttyUSB2:

Fri Apr 20 09:12:53 2018 daemon.notice netifd: Interface ‘modem’ is setting up now
Fri Apr 20 09:12:55 2018 daemon.notice pppd[5154]: pppd 2.4.7 started by root, uid 0
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: abort on (BUSY)
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: abort on (NO CARRIER)
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: abort on (ERROR)
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: report (CONNECT)
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: timeout set to 10 seconds
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: send (AT&F^M)
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: expect (OK)
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: AT&F^M^M
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: OK
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: – got it
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: send (ATE1^M)
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: expect (OK)
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: ^M
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: ATE1^M^M
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: OK
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: – got it
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: send (AT+CGDCONT=1,“IP”,“fast.t-mobile.com”^M)
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: timeout set to 30 seconds
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: expect (OK)
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: ^M
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: AT+CGDCONT=1,“IP”,“fast.t-mobile.com”^M^M
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: OK
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: – got it
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: send (ATD991#^M)
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: expect (CONNECT)
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: ^M
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: ATD
99
**1#^M^M
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: CONNECT
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: – got it
Fri Apr 20 09:12:56 2018 local2.info chat[5178]: send ( ^M)
Fri Apr 20 09:12:56 2018 daemon.info pppd[5154]: Serial connection established.
Fri Apr 20 09:12:57 2018 kern.info kernel: [ 312.799734] 3g-modem: renamed from ppp0
Fri Apr 20 09:12:57 2018 daemon.info pppd[5154]: Using interface 3g-modem
Fri Apr 20 09:12:57 2018 daemon.notice pppd[5154]: Connect: 3g-modem <–> /dev/ttyUSB3
Fri Apr 20 09:13:00 2018 daemon.warn pppd[5154]: Could not determine remote IP address: defaulting to 10.64.64.64
Fri Apr 20 09:13:00 2018 daemon.notice pppd[5154]: local IP address 100.90.164.123
Fri Apr 20 09:13:00 2018 daemon.notice pppd[5154]: remote IP address 10.64.64.64
Fri Apr 20 09:13:00 2018 daemon.notice pppd[5154]: primary DNS address 10.177.0.34
Fri Apr 20 09:13:00 2018 daemon.notice pppd[5154]: secondary DNS address 10.177.0.210
Fri Apr 20 09:13:00 2018 daemon.notice netifd: Network device ‘3g-modem’ link is up
Fri Apr 20 09:13:00 2018 daemon.notice netifd: Interface ‘modem’ is now up
Fri Apr 20 09:13:00 2018 daemon.info dnsmasq[2790]: reading /tmp/resolv.conf.auto
Fri Apr 20 09:13:00 2018 daemon.info dnsmasq[2790]: using local addresses only for domain lan
Fri Apr 20 09:13:00 2018 daemon.info dnsmasq[2790]: using nameserver 10.177.0.34#53
Fri Apr 20 09:13:00 2018 daemon.info dnsmasq[2790]: using nameserver 10.177.0.210#53
Fri Apr 20 09:13:01 2018 user.notice mwan3: ifup interface modem (3g-modem)
Fri Apr 20 09:13:01 2018 daemon.info odhcpd[2035]: Using a RA lifetime of 0 seconds on br-lan
Fri Apr 20 09:13:06 2018 user.notice firewall: Reloading firewall due to ifup of modem (3g-modem)
Fri Apr 20 09:13:06 2018 daemon.info gl-health>>: AP Ok=1
Fri Apr 20 09:13:06 2018 daemon.info gl-health>>: network(caIfnames) = wan wan6 modem
Fri Apr 20 09:13:06 2018 daemon.info gl-health>>: STA Ok=1
Fri Apr 20 09:13:06 2018 daemon.info gl-health>>: Everthing is OK!!!
Fri Apr 20 09:13:06 2018 daemon.info gl-health>>: check wpa runing =

It seems to want to use ttyUSB3 instead. The GL UI now shows an IP address and DNS addresses from the wireless carrier, but I am unable to ping either IPs (like 8.8.8.8) or domain names.

If I reboot, I get this repeatedly with no IP address from carrier showing as obtained in the GL UI:

Fri Apr 20 09:15:24 2018 daemon.notice netifd: Interface ‘modem’ is setting up now
Fri Apr 20 09:15:26 2018 daemon.notice pppd[6488]: pppd 2.4.7 started by root, uid 0
Fri Apr 20 09:15:27 2018 local2.info chat[6524]: abort on (BUSY)
Fri Apr 20 09:15:27 2018 local2.info chat[6524]: abort on (NO CARRIER)
Fri Apr 20 09:15:27 2018 local2.info chat[6524]: abort on (ERROR)
Fri Apr 20 09:15:27 2018 local2.info chat[6524]: report (CONNECT)
Fri Apr 20 09:15:27 2018 local2.info chat[6524]: timeout set to 10 seconds
Fri Apr 20 09:15:27 2018 local2.info chat[6524]: send (AT&F^M)
Fri Apr 20 09:15:27 2018 local2.info chat[6524]: expect (OK)
Fri Apr 20 09:15:27 2018 local2.info chat[6524]: AT&F^M^M
Fri Apr 20 09:15:27 2018 local2.info chat[6524]: OK
Fri Apr 20 09:15:27 2018 local2.info chat[6524]: – got it
Fri Apr 20 09:15:27 2018 local2.info chat[6524]: send (ATE1^M)
Fri Apr 20 09:15:27 2018 local2.info chat[6524]: expect (OK)
Fri Apr 20 09:15:27 2018 local2.info chat[6524]: ^M
Fri Apr 20 09:15:27 2018 local2.info chat[6524]: ATE1^M^M
Fri Apr 20 09:15:27 2018 local2.info chat[6524]: OK
Fri Apr 20 09:15:27 2018 local2.info chat[6524]: – got it
Fri Apr 20 09:15:27 2018 local2.info chat[6524]: send (AT+CGDCONT=1,“IP”,“fast.t-mobile.com”^M)
Fri Apr 20 09:15:27 2018 local2.info chat[6524]: timeout set to 30 seconds
Fri Apr 20 09:15:27 2018 local2.info chat[6524]: expect (OK)
Fri Apr 20 09:15:27 2018 local2.info chat[6524]: ^M
Fri Apr 20 09:15:27 2018 local2.info chat[6524]: AT+CGDCONT=1,“IP”,“fast.t-mobile.com”^M^M
Fri Apr 20 09:15:27 2018 local2.info chat[6524]: OK
Fri Apr 20 09:15:27 2018 local2.info chat[6524]: – got it
Fri Apr 20 09:15:27 2018 local2.info chat[6524]: send (ATD991#^M)
Fri Apr 20 09:15:28 2018 local2.info chat[6524]: expect (CONNECT)
Fri Apr 20 09:15:28 2018 local2.info chat[6524]: ^M
Fri Apr 20 09:15:28 2018 local2.info chat[6524]: ATD
99
**1#^M^M
Fri Apr 20 09:15:28 2018 local2.info chat[6524]: CONNECT
Fri Apr 20 09:15:28 2018 local2.info chat[6524]: – got it
Fri Apr 20 09:15:28 2018 local2.info chat[6524]: send ( ^M)
Fri Apr 20 09:15:28 2018 daemon.info pppd[6488]: Serial connection established.
Fri Apr 20 09:15:28 2018 kern.info kernel: [ 201.054766] 3g-modem: renamed from ppp0
Fri Apr 20 09:15:28 2018 daemon.info pppd[6488]: Using interface 3g-modem
Fri Apr 20 09:15:28 2018 daemon.notice pppd[6488]: Connect: 3g-modem <–> /dev/ttyUSB3
Fri Apr 20 09:15:30 2018 daemon.notice pppd[6488]: Modem hangup
Fri Apr 20 09:15:30 2018 daemon.notice pppd[6488]: Connection terminated.
Fri Apr 20 09:15:31 2018 daemon.info pppd[6488]: Exit.
Fri Apr 20 09:15:32 2018 daemon.notice netifd: Interface ‘modem’ is now down

For some reason, it seems to want to now use ttyUSB3 instead of ttyUSB2 (was that com port used for something different when I tried QMI and now unavailable?). If I make any subsequent changes to the modem config at this point (like explicitly switching between ttyUSB2 and ttyUSB3 in the GL UI, for example), I notice duplicate interface config entries in the system log.

Fri Apr 20 09:24:24 2018 daemon.info gl-health>>: network(caIfnames) = wan wan6 modem modem

And eventually…

Tue Jul 10 17:26:43 2018 daemon.info gl-health>>: network(caIfnames) = wan wan6 modem modem tethering modem modem modem

Any ideas on how to restore the serial connectivity that I had before testing QMI?

When you set up, if you choose ttyUSB3, then it should be 3g-modem. Can you just do this?

If you choose cdc-wdm0, it will use QMI.

Yes, it looks like now I can use both ttyUSB3 and cdc-wdm0. It turns out my modem was trying to roam to another domestic carrier, which was denying it access to its network.

But now I’m left with a whole string of different modem interface configurations.

Wed Jul 11 14:36:01 2018 daemon.info gl-health>>: network(caIfnames) = wan wan6 tethering modem modem modem modem modem modem modem modem modem modem

How can I clear out the redundant configs? Is there a reason why a new modem config setup in the GL UI doesn’t just overwrite the last configuration instead of adding a new one each time?

I don’t know why you have so many modem added. This is so weird.

Please go to firewall settings and remove these.

Or you can reset the firmware completely.

That’s a buggy for v2.x firmware.

This was easily fixed by editing /etc/config/firewall

config for zone ‘WAN’ contained
option network ‘wan wan6 tethering modem modem modem modem modem modem modem modem mo wan’

edited this line to simply
option network ‘wan wan6 tethering modem’

My guess is that when a new connection is configured in the UI, the script applying the changes does not delete the old firewall zone entry.