Fibocom FM-350-GL under Openwrt with GL.iNet GL-MT3000

Continuing the discussion from Fibocom FM350-GL Support:

Good afternoon!

Could you please help with the advice? I can't get Fibocom FM-350-GL modem to work on OpenWrt 23.05.5 r24106-10cc5fcd00 on the GL.iNet GL-MT3000 router. The modem is in a Vertell VT-Station-M2 enclosure.

At the same time, this same enclosure works perfectly when plugged into the USB port of a Keenetic router — the modem works, the internet is accessible, and LTE metrics are displayed. It also works if directly connected to a USB-C port on a Windows computer, and using the fibocom connect script everything launches just fine.

However, I can't get the enclosure to work on OpenWrt. On the "Information about 3G/4G/5G connection" page, I see the following error:

There is a problem reading data from the modem.
Please check:
1. Modem availability in the system.
2. The correct installation of the SIM card in the modem.
3. Port for communication with the modem.

On the diagnostics tab, I see the following:

[USB debug information]  
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= 5.15
S:  Manufacturer=Linux 5.15.167 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=11200000.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=10000 MxCh= 1
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 3.10 Cls=09(hub  ) Sub=00 Prot=03 MxPS= 9 #Cfgs=  1
P:  Vendor=1d6b ProdID=0003 Rev= 5.15
S:  Manufacturer=Linux 5.15.167 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=11200000.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=01 Prnt=01 Port=00 Cnt=01 Dev#=  4 Spd=5000 MxCh= 0
D:  Ver= 3.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs=  1
P:  Vendor=0e8d ProdID=7127 Rev= 0.01
S:  Manufacturer=Fibocom Wireless Inc.
S:  Product=FM350-GL
C:* #Ifs=10 Cfg#= 1 Atr=a0 MxPwr=896mA
A:  FirstIf#= 0 IfCount= 2 Cls=e0(wlcon) Sub=01 Prot=03
I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=ff Driver=(none)
E:  Ad=82(I) Atr=03(Int.) MxPS=  64 Ivl=125us
I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 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= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=83(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= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=84(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=85(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
E:  Ad=86(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=05(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 6 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=87(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=06(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 7 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=88(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=07(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 8 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=89(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=08(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 9 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=8a(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E:  Ad=09(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
[Check availability of ttyX ports.]  
[... detailed port information ...]

[Data read by the 3ginfo scripts:]  
{ 
"conn_time":"0d, 00:36:27",  
"conn_time_sec":"2187",  
"conn_time_since":"20241104173653",  
"rx":"288.1 MiB",  
"tx":"6.2 MiB",  
"modem":"Fibocom  FM350-GL",  
"mtemp":"39.2 °C",  
"firmware":"81600.0000.00.29.24.02",  
"cport":"/dev/ttyUSB3",  
"protocol":"",  
"csq":"",  
"signal":"",  
"operator_name":"",  
"operator_mcc":"",  
"operator_mnc":"",  
"location":"",  
"mode":"LTE",  
"registration":"2",  
"simslot":"",  
"imei":"354174400065624",  
"imsi":"250015378191726",  
"iccid":"89701010053781917269",  
"lac_dec":"0",  
"lac_hex":"0",  
"tac_dec":"",  
"tac_hex":"-",  
"tac_h":"",  
"tac_d":"",  
"cid_dec":"43909918",  
"cid_hex":"29E031E",  
"pci":"",  
"earfcn":"",  
"pband":"",  
"s1band":"",  
"s1pci":"",  
"s1earfcn":"",  
"s2band":"",  
"s2pci":"",  
"s2earfcn":"",  
"s3band":"",  
"s3pci":"",  
"s3earfcn":"",  
"s4band":"",  
"s4pci":"",  
"s4earfcn":"",  
"rsrp":"",  
"rsrq":"",  
"rssi":"",  
"sinr":""  
}

I suspect the issue might be that I don't understand where or how to specify the APN in the configuration. Could it be related to this?

I also try to set it up as follows, but it’s still not working:

root@OpenWrt:~# COMMAND='AT+CGDCONT=1,"IPV4V6","internet.mts.ru"' gcom -d "/dev/ttyUSB3"  
SIM ready  
Waiting for Registration..(120 sec max).............................................................  
Failed to register  

Hello friend and Welcome! I suspect the issue could be due to the fact that you're trying to connect the modem to the router via USB while OpenWrt expects an eth interface:

You may want to check here to see if people confirm what I suspect and if my workaround is the common way to solve the issue.

dear @alb777 Dave, thanks you a lot!
Am I right in understanting that your advice was to install latest snapshotbuild, based on kernel 6.6, which would have 350's support included?

so i've did it, upgraded the router to OpenWrt SNAPSHOT r28091-77cfe8fd15 / LuCI Master 24.321.37054~09e8d51, then installed

apk add kmod-usb-net-rndis usb-modeswitch kmod-usb-serial kmod-usb-serial-option kmod-usb-serial-wwan kmod-usb-net-cdc-ether kmod-usb-net kmod-mii kmod-usb-serial-ch341 kmod-usb-uhci luci-proto-qmi luci-proto-mbim kmod-usb-net-qmi-wwan kmod-usb-serial-qualcomm picocom usbutils minicom python3

then

wget https://openwrt.132lan.ru/packages/23.05/packages/aarch64_cortex-a53/modemfeed/fm350-modem_0.0.2-2_all.ipk
wget https://openwrt.132lan.ru/packages/23.05/packages/aarch64_cortex-a53/modemfeed/luci-proto-fm350_git-24.126.71869-e102c3d_all.ipk
apk add fm350-modem_0.0.2-2_all.ipk luci-proto-fm350_git-24.126.71869-e102c3d_all.ipk

then I've added the config:

config interface 'LTE'
option proto 'fm350'
option device '/dev/ttyUSB4'
option apn 'internet.mts.ru'
option auth 'auto'
option pdp 'ip'

then restarted.

then what I have wrong is when I say:
ls /dev | grep cdc-wdm
it shows nothing.

it shows in list of USBs:
lsusb
root@OpenWrt:~# lsusb

Bus 001 Device 001: ID 1d6b:0002 Linux 6.6.60 xhci-hcd xHCI Host Controller
Bus 002 Device 001: ID 1d6b:0003 Linux 6.6.60 xhci-hcd xHCI Host Controller
Bus 002 Device 002: ID 0e8d:7127 Fibocom Wireless Inc. FM350-GL

in usb i don't see any errors:

root@OpenWrt:~# dmesg | grep usb
[    2.235170] phy phy-soc:usb-phy@11e10000.1: type_sw - reg 0x218, index 0
[    2.904680] usbcore: registered new interface driver usbfs
[    2.910257] usbcore: registered new interface driver hub
[    2.915605] usbcore: registered new device driver usb
[    2.934169] xhci-mtk 11200000.usb: xHCI Host Controller
[    2.939474] xhci-mtk 11200000.usb: new USB bus registered, assigned bus number 1
[    2.949868] xhci-mtk 11200000.usb: hcc params 0x01403f99 hci version 0x110 quirks 0x0000000000200010
[    2.959047] xhci-mtk 11200000.usb: irq 79, io mem 0x11200000
[    2.964800] xhci-mtk 11200000.usb: xHCI Host Controller
[    2.970035] xhci-mtk 11200000.usb: new USB bus registered, assigned bus number 2
[    2.977431] xhci-mtk 11200000.usb: Host supports USB 3.2 Enhanced SuperSpeed
[    2.993190] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    3.436627] usb 1-1: new full-speed USB device number 2 using xhci-mtk
[    3.617130] usb 1-1: config 1 interface 1 altsetting 0 endpoint 0x1 has invalid maxpacket 512, setting to 64
[    3.626962] usb 1-1: config 1 interface 1 altsetting 0 endpoint 0x81 has invalid maxpacket 512, setting to 64
[    4.438873] usb 1-1: USB disconnect, device number 2
[    9.212300] usbcore: registered new interface driver cdc_wdm
[    9.247545] usbcore: registered new interface driver usbserial_generic
[    9.254143] usbserial: USB Serial support registered for generic
[    9.261432] usbcore: registered new interface driver cdc_ether
[    9.270721] usbcore: registered new interface driver cdc_ncm
[    9.285738] usbcore: registered new interface driver ch341
[    9.291338] usbserial: USB Serial support registered for ch341-uart
[   10.136961] usbcore: registered new interface driver qmi_wwan
[   10.144551] usbcore: registered new interface driver rndis_host
[   10.153870] usbcore: registered new interface driver cdc_mbim
[   10.165096] usbcore: registered new interface driver option
[   10.170845] usbserial: USB Serial support registered for GSM modem (1-port)
[   10.182019] usbcore: registered new interface driver qcserial
[   10.187901] usbserial: USB Serial support registered for Qualcomm USB modem
[   22.176714] usb 2-1: new SuperSpeed USB device number 2 using xhci-mtk
[   22.213469] rndis_host 2-1:1.0 eth2: register 'rndis_host' at usb-11200000.usb-1, RNDIS device, 00:00:11:12:13:14
[   22.232914] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB0
[   22.247215] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB1
[   22.261304] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB2
[   22.275983] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB3
[   22.290333] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB4
[   22.304685] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB5
[   22.318790] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB6

As I saw in the recomendations, modem might be operating in a mode that doesn't create a /dev/cdc-wdm0 device.

I've said:
usbmode -l
but nothing helps.

In the luci interface in network section I see:

**LTE**
![](http://192.168.5.1/luci-static/resources/icons/ethernet_disabled.png)![](http://192.168.5.1/luci-static/resources/icons/ethernet_disabled.png)**Device:** Not present
**Connected:** no
LTE
<small>*Not present*</small> *Unsupported protocol type.*
[Install protocol extensions...](http://192.168.5.1/cgi-bin/luci/admin/system/opkg?query=luci-proto)

also i've tried to add

apk search luci-app-apk

i've Reviewed /etc/apk/repositories file to ensure it includes the correct repository URLs.

https://downloads.openwrt.org/snapshots/packages/arch64_cortex-a53/base
https://downloads.openwrt.org/snapshots/packages/arch64_cortex-a53/luci

This didn't help also.

what would be your recomendation: sorry, probably my linux expertise is too low... can you please direct me, what am I doing wrong?