LTE USB (Quanta 1K3M) support with OpenWrt

I'm trying to get a LTE Usb "dongle" known as the Quanta 1K3M to work with a router that has USB and openWRT pre-installed.

I found about this post while googling: USB 4G LTE setup
but I can't seem to point out if I'm heading in the correct direction.

here is the output of 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= 4.14
S:  Manufacturer=Linux 4.14.195 ehci_hcd
S:  Product=EHCI Host Controller
S:  SerialNumber=f1050000.ehci
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=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480  MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=0408 ProdID=ea25 Rev= 0.00
S:  Manufacturer=Qualcomm, Incorporated
S:  Product=Qualcomm CDMA Technologies MSM
S:  SerialNumber=35*********262
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms

You need usb_modeswitch to switch modem from 0408:ea25 to 0408:ea26
Then show result of cat /sys/kernel/debug/usb/devices again, but you should be able to configure QMI connection after the switch.

2 Likes

Really? I can't find any traces of 0408:ea26 in any driver. I can see it discussed here: https://www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?t=2941 But it doesn't look like anyone ever submitted any patches for the option or qmi_wwan drivers.

I was too trusting :wink: I found the information in this wiki:

1K3M	TD-LTE 68.0/17.0	0408:ea25	0408:ea26	serial (& qmi)

I don't know why they put qmi in brackets, maybe this means that driver patching is required.
It will be good to see configuaration after switching, but I hope it should be possible to make both option and qmi_wwan working through new_id.

the usb_modeswitch didn't have the ea25 in the json file, so I kinda hacked the way to get it turn into ea26, now what?

I get a new /dev/ttyUSB0 but I can't seem to have a connection. I followed the guide here: https://openwrt.org/docs/guide-user/network/wan/wwan/3gdongle

please refer to the doc: https://openwrt.org/docs/guide-user/network/wan/wwan/usb-modeswitching
and this discussion (referenced in the doc): 3g/4g USB dongle not showing up
Here is the data file for 0408:ea25 : https://github.com/NetworkManager/usb_modeswitch-data/blob/master/usb_modeswitch.d/0408:ea25

I still haven't figured out how this works.
Here is my custom json file to switch mode:

{
	"messages" : [
		"5553424312345678000000000000061b004600000000000000000000000000"
],
	"devices" : {
		"0408:ea25": {
			"*": {
				"t_vendor": 1032,
				"t_product": [ 59942 ],
				"msg": [ 0 ]
			}
		}
	}
}

then:

usbmode -s -v -c ~/usb-mode-custom.json

I see the new modem in cat /sys/kernel/debug/usb/devices
but it doesn't show an an interface (usb0)

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480  MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=0408 ProdID=ea26 Rev= 0.00
S:  Manufacturer=Qualcomm, Incorporated
S:  Product=Qualcomm CDMA Technologies MSM
C:* #Ifs= 5 Cfg#= 1 Atr=e0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E:  Ad=83(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E:  Ad=85(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms

am I missing a driver? since it says Driver=(none) ?

You will need to install qmi_wwan driver and manually add device:
echo "0408 ea26 ff" > /sys/bus/usb/drivers/qmi_wwan/new_id
Then check for device names with ls /dev/cdc*
Unfortunately, that way the serial interface(s) will be occupied by QMI driver as well.