USB Tethering for Inseego M2000

I have a Linksys WRT3200ACM running OpenWRT 23.05.3. I had it set up for USB Tethering with a Franklin T10 hotspot. I recently got an Inseego M2000 hotspot, but it crashes whenever I connect it to the router. I've tried disabling DHCP and changing the IP on the hotspot. I've been told to use IP Passthrough (not an option on my hotspot) or using a Y splitter/USB Hub for power delivery, but I'm not convinced this is a problem because the hotspot has a battery. Any suggestions on getting this to work with USB Tethering?

Make sure the hotspot gets enough power (powered hub will be a good option for now) and there is no IP address conflict.
Do not configure anything on OpenWrt side yet.
Show the output of cat /sys/kernel/debug/usb/devices with hotspot connected over USB.

Can't get home right now, but I can post some of the kernel messages I got when attempting to connect it.

usb 2-1: new high-speed USB device number 5 using xhci-hcd  
rndis_host 2-1:1.0 eth1: register 'rndis_host' at usb-f10f8000.usb3-1, RNDIS device, 00:15:ff:06:46:31  
usb 2-1:  USB disconnect device number 5  
rndis_host 2-1:1.0 eth1: unregister 'rndis_host' usb-f10f8000.usb3-1, RNDIS device  
usb 2-1: new high-speed USB device number 6 using xhci-hcd  
rndis_host 2-1:1.0 eth1: register 'rndis_host' at usb-f10f8000.usb3-1, RNDIS device, 00:15:ff:06:46:31  
usb 2-1:  USB disconnect device number 6  
rndis_host 2-1:1.0 eth1: unregister 'rndis_host' usb-f10f8000.usb3-1, RNDIS device  
usb 2-1: new high-speed USB device number 7 using xhci-hcd  
rndis_host 2-1:1.0 eth1: register 'rndis_host' at usb-f10f8000.usb3-1, RNDIS device, 00:15:ff:06:46:31  

As you can see, it registers and immediately unregisters until the crash occurs.

A powered USB hub is a good suggestion, likewise you should upgrade to 24.10.x as well (while that might- or might not help, you at least end up with a security supported version).

Funny thing is, I tried upgrading, but when the router reboots it's still on the old version. I know their are dual firmware partitions on this router, so when I get home I'm going to try to compare them.

So the other partition has 19.07.7. No idea what I’m doing wrong. I really don’t want to have to connect my telnet cable to this to see what’s going on either, but I feel like that’s the only way to see why the upgrade is failing.

Got 24.10.4 installed. Here is some output. Still having issues.

root@OpenWrt:~# cat /sys/kernel/debug/usb/devices

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 1
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev= 6.06
S:  Manufacturer=Linux 6.6.110 ehci_hcd
S:  Product=EHCI Host Controller
S:  SerialNumber=f1058000.usb
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 1
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev= 6.06
S:  Manufacturer=Linux 6.6.110 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=f10f8000.usb3
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

T:  Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  4 Spd=480  MxCh= 0
D:  Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=05c6 ProdID=90b6 Rev= 4.14
S:  Manufacturer=Novatel Wireless
S:  Product=M2000
S:  SerialNumber=7fffffff
C:* #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=500mA
A:  FirstIf#= 0 IfCount= 2 Cls=ef(misc ) Sub=04 Prot=01
I:* If#= 0 Alt= 0 #EPs= 1 Cls=ef(misc ) Sub=04 Prot=01 Driver=rndis_host
E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host
E:  Ad=8e(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=0f(O) Atr=02(Bulk) MxPS= 512 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= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=(none)
E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 5 Alt= 0 #EPs= 2 Cls=03(HID  ) Sub=00 Prot=00 Driver=(none)
E:  Ad=86(I) Atr=03(Int.) MxPS= 130 Ivl=1ms
E:  Ad=04(O) Atr=03(Int.) MxPS= 130 Ivl=1ms

T:  Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=5000 MxCh= 1
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 3.00 Cls=09(hub  ) Sub=00 Prot=03 MxPS= 9 #Cfgs=  1
P:  Vendor=1d6b ProdID=0003 Rev= 6.06
S:  Manufacturer=Linux 6.6.110 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=f10f8000.usb3
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms
root@OpenWrt:~# dmesg | tail -n 40
[   21.200995] mwifiex_sdio mmc0:0001:1: info: MWIFIEX VERSION: mwifiex 1.0 (15.68.7.p189) 
[   21.203622] NET: Registered PF_PPPOX protocol family
[   21.210392] mwifiex_sdio mmc0:0001:1: driver_version = mwifiex 1.0 (15.68.7.p189) 
[   21.229339] usbcore: registered new interface driver rndis_host
[   21.239700] kmodloader: done loading kernel modules from /etc/modules.d/*
[   23.543608] mvneta f1070000.ethernet eth0: Link is Down
[   23.558838] mvneta f1070000.ethernet eth0: configuring for fixed/rgmii-id link mode
[   23.566821] mvneta f1070000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
[   23.676021] mv88e6085 f1072004.mdio-mii:00 lan1: configuring for phy/gmii link mode
[   23.691364] br-lan: port 1(lan1) entered blocking state
[   23.696622] br-lan: port 1(lan1) entered disabled state
[   23.701918] mv88e6085 f1072004.mdio-mii:00 lan1: entered allmulticast mode
[   23.708844] mvneta f1070000.ethernet eth0: entered allmulticast mode
[   23.792986] mv88e6085 f1072004.mdio-mii:00 lan1: entered promiscuous mode
[   23.955043] mv88e6085 f1072004.mdio-mii:00 lan2: configuring for phy/gmii link mode
[   23.965588] br-lan: port 2(lan2) entered blocking state
[   23.970891] br-lan: port 2(lan2) entered disabled state
[   23.976166] mv88e6085 f1072004.mdio-mii:00 lan2: entered allmulticast mode
[   23.999478] mv88e6085 f1072004.mdio-mii:00 lan2: entered promiscuous mode
[   24.149007] mv88e6085 f1072004.mdio-mii:00 lan3: configuring for phy/gmii link mode
[   24.158964] br-lan: port 3(lan3) entered blocking state
[   24.164219] br-lan: port 3(lan3) entered disabled state
[   24.169508] mv88e6085 f1072004.mdio-mii:00 lan3: entered allmulticast mode
[   24.193800] mv88e6085 f1072004.mdio-mii:00 lan3: entered promiscuous mode
[   24.328699] mv88e6085 f1072004.mdio-mii:00 lan4: configuring for phy/gmii link mode
[   24.336830] br-lan: port 4(lan4) entered blocking state
[   24.342092] br-lan: port 4(lan4) entered disabled state
[   24.347350] mv88e6085 f1072004.mdio-mii:00 lan4: entered allmulticast mode
[   24.386461] usb 2-1: USB disconnect, device number 3
[   24.391510] cdc_ether 2-1:1.0 eth1: unregister 'cdc_ether' usb-f10f8000.usb3-1, CDC Ethernet Device
[   24.405549] mv88e6085 f1072004.mdio-mii:00 lan4: entered promiscuous mode
[   24.520258] mv88e6085 f1072004.mdio-mii:00 wan: configuring for phy/gmii link mode
[   26.798496] mv88e6085 f1072004.mdio-mii:00 lan1: Link is Up - 1Gbps/Full - flow control rx/tx
[   26.798611] br-lan: port 1(lan1) entered blocking state
[   26.812329] br-lan: port 1(lan1) entered forwarding state
[   27.602675] mv88e6085 f1072004.mdio-mii:00 lan4: Link is Up - 1Gbps/Full - flow control rx/tx
[   27.608612] br-lan: port 4(lan4) entered blocking state
[   27.616494] br-lan: port 4(lan4) entered forwarding state
[   31.678595] usb 2-1: new high-speed USB device number 4 using xhci-hcd
[   31.878083] rndis_host 2-1:1.0 eth1: register 'rndis_host' at usb-f10f8000.usb3-1, RNDIS device, 00:15:ff:06:46:31

I got it working. I was use to my Franklin T10 coming up as a usb interface device, when the M2000 shows up as eth1. I also installed additional packages (which I couldn’t for some reason on the older version).

kmod-usb-net-cdc-eem kmod-usb-net-cdc-ether kmod-usb-net-cdc-subset

Here is what ChatGPT says was the problem:

When the M2000 connects, it registers as eth1 (RNDIS device).
OpenWrt may try to automatically add it to the LAN bridge (br-lan), which can:

  • Merge the two subnets (192.168.1.0/24 and 192.168.10.0/24), causing DHCP or routing confusion.

  • Drop WiFi clients because the LAN bridge resets.

  • Disable WiFi interfaces temporarily while reconfiguring the bridge.

We need to separate the USB interface into its own WAN interface so that it provides internet to your router (and your router continues to serve WiFi clients through LAN).