I've successfully flashed OpenWrt to a GL-X3000, and everything appears to be working fine, however I cannot get the cellular connection to come up. I've seen the connection work for a short period, but most of the time, the interface is down, and attempts to restart it lead to this log output:
Tue Mar 25 11:42:40 2025 daemon.notice [2583]: <msg> [modem5] state changed (unknown -> disabled)
Tue Mar 25 11:43:24 2025 daemon.notice netifd: cellular (17340): Waiting for SIM initialization
Tue Mar 25 11:43:24 2025 daemon.warn [2583]: <wrn> Cannot read from istream: connection broken
Tue Mar 25 11:43:24 2025 daemon.notice [2583]: <msg> [modem5] port 'cdc-wdm0' no longer controllable, reprobing
Tue Mar 25 11:43:25 2025 daemon.notice netifd: cellular (17340): Failed to parse message data
Tue Mar 25 11:43:25 2025 daemon.notice netifd: cellular (17340): PIN verification is disabled
Tue Mar 25 11:43:25 2025 daemon.notice netifd: cellular (17340): Device does not support 802.3 mode. Informing driver of raw-ip only for wwan0 ..
Tue Mar 25 11:43:25 2025 daemon.notice netifd: cellular (17340): Waiting for network registration
Tue Mar 25 11:43:27 2025 daemon.notice [2583]: <msg> [device /sys/devices/platform/soc/11200000.usb/usb1/1-1/1-1.2] creating modem with plugin 'quectel' and '6' ports
Tue Mar 25 11:43:27 2025 daemon.warn [2583]: <wrn> [plugin/quectel] could not grab port ttyUSB1: Cannot add port 'tty/ttyUSB1', unhandled port type
Tue Mar 25 11:43:27 2025 daemon.warn [2583]: <wrn> [plugin/quectel] could not grab port ttyUSB0: Cannot add port 'tty/ttyUSB0', unhandled port type
Tue Mar 25 11:43:27 2025 daemon.info [2583]: <inf> [modem6] tty/ttyUSB2: at (primary)
Tue Mar 25 11:43:27 2025 daemon.info [2583]: <inf> [modem6] tty/ttyUSB3: at (secondary)
Tue Mar 25 11:43:27 2025 daemon.info [2583]: <inf> [modem6] tty/ttyUSB2: at (data primary)
Tue Mar 25 11:43:27 2025 daemon.info [2583]: <inf> [modem6] net/wwan0: net (data)
Tue Mar 25 11:43:27 2025 daemon.info [2583]: <inf> [modem6] usbmisc/cdc-wdm0: qmi
Tue Mar 25 11:43:30 2025 daemon.info [2583]: <inf> [modem6] SIM hot swap setup succeeded
Tue Mar 25 11:43:30 2025 daemon.info [2583]: <inf> [modem6] SIM is ready, and no need for the after SIM unlock step...
Tue Mar 25 11:43:30 2025 daemon.info [2583]: <inf> [modem6/sim6] loaded IMSI: ###
Tue Mar 25 11:43:30 2025 daemon.info [2583]: <inf> [modem6/sim6] loaded operator identifier: 310260
Tue Mar 25 11:43:30 2025 daemon.info [2583]: <inf> [modem6/sim6] loaded list of preferred networks:
Tue Mar 25 11:43:30 2025 daemon.info [2583]: <inf> [modem6/sim6] loaded GID1: 544D
Tue Mar 25 11:43:31 2025 daemon.notice netifd: cellular (17340): Starting network cellular
Tue Mar 25 11:43:32 2025 daemon.warn [2583]: <wrn> Cannot read from istream: connection broken
Tue Mar 25 11:43:32 2025 daemon.notice [2583]: <msg> [modem6] port 'cdc-wdm0' no longer controllable, reprobing
Tue Mar 25 11:43:33 2025 daemon.notice netifd: cellular (17340): Setting up wwan0
Tue Mar 25 11:43:33 2025 daemon.notice netifd: Interface 'cellular' is now up
Tue Mar 25 11:43:33 2025 daemon.notice netifd: Network device 'wwan0' link is up
Tue Mar 25 11:43:33 2025 daemon.notice netifd: Network alias 'wwan0' link is up
Tue Mar 25 11:43:33 2025 daemon.notice netifd: Interface 'cellular_4' is enabled
Tue Mar 25 11:43:33 2025 daemon.notice netifd: Interface 'cellular_4' has link connectivity
Tue Mar 25 11:43:33 2025 daemon.notice netifd: Interface 'cellular_4' is setting up now
Tue Mar 25 11:43:33 2025 daemon.notice netifd: cellular_4 (17569): udhcpc: started, v1.36.1
Tue Mar 25 11:43:33 2025 user.notice firewall: Reloading firewall due to ifup of cellular (wwan0)
Tue Mar 25 11:43:33 2025 daemon.notice netifd: cellular_4 (17569): udhcpc: broadcasting discover
Tue Mar 25 11:43:33 2025 daemon.notice netifd: cellular_4 (17569): udhcpc: broadcasting select for 25.240.243.162, server 25.240.243.161
Tue Mar 25 11:43:33 2025 daemon.notice netifd: cellular_4 (17569): udhcpc: lease of 25.240.243.162 obtained from 25.240.243.161, lease time 7200
Tue Mar 25 11:43:33 2025 daemon.notice netifd: Interface 'cellular_4' is now up
Tue Mar 25 11:43:33 2025 daemon.info dnsmasq[1]: reading /tmp/resolv.conf.d/resolv.conf.auto
Tue Mar 25 11:43:33 2025 daemon.info dnsmasq[1]: using nameserver 10.177.0.34#53
Tue Mar 25 11:43:33 2025 daemon.info dnsmasq[1]: using nameserver 10.177.0.210#53
Tue Mar 25 11:43:33 2025 daemon.info dnsmasq[1]: using nameserver 172.27.75.253#53
Tue Mar 25 11:43:33 2025 daemon.info dnsmasq[1]: using only locally-known addresses for test
Tue Mar 25 11:43:33 2025 daemon.info dnsmasq[1]: using only locally-known addresses for onion
Tue Mar 25 11:43:33 2025 daemon.info dnsmasq[1]: using only locally-known addresses for localhost
Tue Mar 25 11:43:33 2025 daemon.info dnsmasq[1]: using only locally-known addresses for local
Tue Mar 25 11:43:33 2025 daemon.info dnsmasq[1]: using only locally-known addresses for invalid
Tue Mar 25 11:43:33 2025 daemon.info dnsmasq[1]: using only locally-known addresses for bind
Tue Mar 25 11:43:33 2025 daemon.info dnsmasq[1]: using only locally-known addresses for lan
Tue Mar 25 11:43:33 2025 user.notice firewall: Reloading firewall due to ifup of cellular_4 (wwan0)
Tue Mar 25 11:43:34 2025 daemon.warn odhcpd[2314]: No default route present, overriding ra_lifetime to 0!
Tue Mar 25 11:43:35 2025 daemon.notice [2583]: <msg> [device /sys/devices/platform/soc/11200000.usb/usb1/1-1/1-1.2] creating modem with plugin 'quectel' and '6' ports
Tue Mar 25 11:43:35 2025 daemon.warn [2583]: <wrn> [plugin/quectel] could not grab port ttyUSB1: Cannot add port 'tty/ttyUSB1', unhandled port type
Tue Mar 25 11:43:35 2025 daemon.warn [2583]: <wrn> [plugin/quectel] could not grab port ttyUSB0: Cannot add port 'tty/ttyUSB0', unhandled port type
Tue Mar 25 11:43:35 2025 daemon.info [2583]: <inf> [modem7] tty/ttyUSB2: at (primary)
Tue Mar 25 11:43:35 2025 daemon.info [2583]: <inf> [modem7] tty/ttyUSB3: at (secondary)
Tue Mar 25 11:43:35 2025 daemon.info [2583]: <inf> [modem7] tty/ttyUSB2: at (data primary)
Tue Mar 25 11:43:35 2025 daemon.info [2583]: <inf> [modem7] net/wwan0: net (data)
Tue Mar 25 11:43:35 2025 daemon.info [2583]: <inf> [modem7] usbmisc/cdc-wdm0: qmi
Tue Mar 25 11:43:38 2025 daemon.info [2583]: <inf> [modem7] SIM hot swap setup succeeded
Tue Mar 25 11:43:38 2025 daemon.info [2583]: <inf> [modem7] SIM is ready, and no need for the after SIM unlock step...
Tue Mar 25 11:43:38 2025 daemon.info [2583]: <inf> [modem7/sim7] loaded IMSI: ###
Tue Mar 25 11:43:38 2025 daemon.info [2583]: <inf> [modem7/sim7] loaded operator identifier: 310260
Tue Mar 25 11:43:41 2025 daemon.warn [2583]: <wrn> [modem6] couldn't load supported assistance data types: Failed to receive indication with the predicted orbits data source
Tue Mar 25 11:43:41 2025 daemon.warn [2583]: <wrn> [modem6] error initializing: Operation was cancelled
Tue Mar 25 11:43:42 2025 daemon.warn [2583]: <wrn> [modem7] port ttyUSB2 timed out 2 consecutive times
Tue Mar 25 11:43:42 2025 daemon.info [2583]: <inf> [modem7/sim7] loaded list of preferred networks:
Tue Mar 25 11:43:42 2025 daemon.info [2583]: <inf> [modem7/sim7] loaded GID1: 544D
Tue Mar 25 11:43:53 2025 daemon.warn [2583]: <wrn> [modem7] couldn't load supported assistance data types: Failed to receive indication with the predicted orbits data source
Tue Mar 25 11:43:53 2025 daemon.notice [2583]: <msg> [modem7] state changed (unknown -> disabled)
The relevant parts from /etc/config/network:
config interface 'cellular'
option proto 'qmi'
option apn 'fast.t-mobile.com'
option auth 'none'
option pdptype 'ipv4'
option device '/dev/cdc-wdm0'
option delay '60'
option ipv6 '1'
It's a US T-Mobile SIM (regular data contract, not a Home thing).
We had the same issue with the stock firmware, and GL-Inet and T-Mobile support were unable to help, so it's quite possible that this is a hardware problem, but I would be interested to hear from people using a GL-X3000 and what they had to do to make it work, if anything.