Setting up a Quectel RM520GL-N on a Banana Pi R4-Pro
Philip Prindeville
philipp_subx at redfish-solutions.com
Mon Mar 16 15:26:26 PDT 2026
> On Mar 16, 2026, at 3:54 PM, Luca Olivetti <luca at ventoso.org> wrote:
>
> I cannot be of much more help (I remember that getting everything working was a pain) but the wiki says not to use ipv4v6 unless you're absolutely sure the carrier provides both.
>
> This is my configuration (I did it through luci)
>
>
> config interface 'wwan'
> option proto 'qmi'
> option device '/dev/cdc-wdm0'
> option apn 'movistar.es'
> option auth 'pap'
> option pdptype 'ipv4'
> option username 'MOVISTAR'
> option password 'MOVISTAR'
> option metric '2'
>
> (dhcp is the default, metric is because at home I used a lan port to simulate the wan).
>
> Regarding your question about wwan0 being POINTOPOINT and dhcp, I can confirm that it's POINTOPOINT here too, but it gets an address (in luci I see both a wwan interface with no address and a virtual wwan_4 with an ipv4 public address, both using the wwan0 device).
>
> root at van:~# ip -0 -o link show
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000\ link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000\ link/ether b4:1c:30:c1:43:4e brd ff:ff:ff:ff:ff:ff
> 3: lan4 at eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN mode DEFAULT group default qlen 1000\ link/ether b4:1c:30:c1:43:4e brd ff:ff:ff:ff:ff:ff
> 4: lan3 at eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN mode DEFAULT group default qlen 1000\ link/ether b4:1c:30:c1:43:4e brd ff:ff:ff:ff:ff:ff
> 5: lan2 at eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state LOWERLAYERDOWN mode DEFAULT group default qlen 1000\ link/ether b4:1c:30:c1:43:4e brd ff:ff:ff:ff:ff:ff
> 6: wan at eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state LOWERLAYERDOWN mode DEFAULT group default qlen 1000\ link/ether b4:1c:30:c1:43:4f brd ff:ff:ff:ff:ff:ff
> 7: wwan0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 1000\ link/none
> 8: usb0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000\ link/ether ba:c6:74:43:40:e3 brd ff:ff:ff:ff:ff:ff
> 9: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000\ link/ether b4:1c:30:c1:43:4e brd ff:ff:ff:ff:ff:ff
> 11: phy0-ap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP mode DEFAULT group default qlen 1000\ link/ether b4:1c:30:c1:43:50 brd ff:ff:ff:ff:ff:ff
> 12: phy1-ap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP mode DEFAULT group default qlen 1000\ link/ether b4:1c:30:c1:43:51 brd ff:ff:ff:ff:ff:ff
> 13: phy1-ap1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP mode DEFAULT group default qlen 1000\ link/ether b6:1c:30:c1:43:51 brd ff:ff:ff:ff:ff:ff permaddr b4:1c:30:c1:43:51
> 23: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000\ link/none
>
> Bye
> --
> Luca
Okay, I've trimmed down my config.
Now I'm seeing:
Mon Mar 16 16:14:48 2026 daemon.info ModemManager[16744]: hotplug: checking if ModemManager is available...
Mon Mar 16 16:14:48 2026 daemon.info ModemManager[16745]: hotplug: Checking if ModemManager is available...
Mon Mar 16 16:14:52 2026 daemon.notice [16772]: <msg> [device /sys/devices/platform/soc/11200000.usb/usb4/4-1/4-1.1] creating modem with plugin 'quectel' and '2' ports
Mon Mar 16 16:14:52 2026 daemon.info [16772]: <inf> [modem0] net/wwan0: net (data)
Mon Mar 16 16:14:52 2026 daemon.info [16772]: <inf> [modem0] usbmisc/cdc-wdm0: qmi
Mon Mar 16 16:14:52 2026 daemon.notice [16772]: <msg> [base-manager] modem for device '/sys/devices/platform/soc/11200000.usb/usb4/4-1/4-1.1' successfully created
Mon Mar 16 16:14:55 2026 daemon.warn [16772]: <wrn> [modem0] (quectel) failed to initialize SIM hot swap ports context: Couldn't get primary port
Mon Mar 16 16:14:55 2026 daemon.info [16772]: <inf> [modem0] SIM hot swap setup succeeded
Mon Mar 16 16:14:55 2026 daemon.info [16772]: <inf> [modem0] SIM is ready, and no need for the after SIM unlock step...
Mon Mar 16 16:14:55 2026 daemon.info [16772]: <inf> [modem0/sim0] loaded IMSI: ###
Mon Mar 16 16:14:55 2026 daemon.info [16772]: <inf> [modem0/sim0] loaded operator identifier: 310260
Mon Mar 16 16:14:55 2026 daemon.info [16772]: <inf> [modem0/sim0] loaded list of preferred networks:
Mon Mar 16 16:14:55 2026 daemon.info [16772]: <inf> [modem0/sim0] loaded GID1: 544D
Mon Mar 16 16:15:06 2026 daemon.warn [16772]: <wrn> [modem0] couldn't load supported assistance data types: Failed to receive indication with the predicted orbits data source
Mon Mar 16 16:15:06 2026 daemon.notice [16772]: <msg> [modem0] state changed (unknown -> disabled)
Mon Mar 16 16:18:26 2026 kern.crit kernel: [ 6137.045607] qmi_wwan 4-1.1:1.4 wwan0: NETDEV WATCHDOG: CPU: 1: transmit queue 0 timed out 5180 ms
I also don't see a serial device like /dev/ttyUSB0 that I can echo AT commands into...
Here's all I could query:
root at OpenWrt:~# uqmi -d /dev/cdc-wdm0 --network-scan
{
"network_info": [
{
"mcc": 310,
"mnc": 260,
"description": "T-Mobile",
"status": [
"available",
"home",
"not_forbidden",
"preferred"
]
},
{
"mcc": 313,
"mnc": 100,
"description": "FirstNet",
"status": [
"available",
"roaming",
"not_forbidden",
"not_preferred"
]
},
{
"mcc": 310,
"mnc": 410,
"description": "T-Sat+Starlink",
"status": [
"current_serving",
"roaming",
"not_forbidden",
"not_preferred"
]
},
{
"mcc": 311,
"mnc": 480,
"description": "Verizon",
"status": [
"available",
"roaming",
"not_forbidden",
"not_preferred"
]
},
{
"mcc": 312,
"mnc": 190,
"description": "312 190",
"status": [
"available",
"roaming",
"forbidden",
"not_preferred"
]
},
{
"mcc": 310,
"mnc": 830,
"description": "310 830",
"status": [
"available",
"roaming",
"forbidden",
"not_preferred"
]
}
],
"radio_access_technology": [
{
"mcc": 310,
"mnc": 260,
"radio": "lte"
},
{
"mcc": 313,
"mnc": 100,
"radio": "lte"
},
{
"mcc": 310,
"mnc": 410,
"radio": "lte"
},
{
"mcc": 311,
"mnc": 480,
"radio": "lte"
},
{
"mcc": 312,
"mnc": 190,
"radio": "lte"
},
{
"mcc": 310,
"mnc": 830,
"radio": "lte"
}
]
}
root at OpenWrt:~#
root at OpenWrt:~# uqmi -d /dev/cdc-wdm0 --get-plmn
{
"mode": "manual",
"mcc": 310,
"mnc": 260
}
root at OpenWrt:~# uqmi -d /dev/cdc-wdm0 --get-current-settings
"Out of call"
root at OpenWrt:~# uqmi -d /dev/cdc-wdm0 --get-capabilities
{
"max_tx_channel_rate": 0,
"max_rx_channel_rate": 0,
"data_service": "non_simultaneous_cs_ps",
"sim": "supported",
"networks": [
"umts",
"lte",
"5gnr"
]
}
root at OpenWrt:~# uqmi -d /dev/cdc-wdm0 --get-pin-status
"Not supported"
root at OpenWrt:~# uqmi -d /dev/cdc-wdm0 --get-device-operating-mode
"online"
root at OpenWrt:~# uqmi -d /dev/cdc-wdm0 --get-imsi
"Not supported"
root at OpenWrt:~# uqmi -d /dev/cdc-wdm0 --get-signal-info
{
"type": "lte",
"rssi": -56,
"rsrq": -15,
"rsrp": -89,
"snr": 15.200000
}
root at OpenWrt:~# uqmi -d /dev/cdc-wdm0 --get-serving-system
{
"registration": "not_registered",
"radio_interface": [
"5gnr"
],
"plmn_mcc": 310,
"plmn_mnc": 260,
"plmn_description": "",
"roaming": false
}
root at OpenWrt:~# uqmi -d /dev/cdc-wdm0 --get-system-info
{
"wcdma": {
"service_status": "none",
"true_service_status": "none",
"preferred_data_path": false
},
"lte": {
"service_status": "limited",
"true_service_status": "limited regional",
"preferred_data_path": false,
"domain": "none",
"service": "cs-ps",
"roaming_status": "on",
"forbidden": false,
"mcc": "310",
"mnc": "410",
"tracking_area_code": 38656,
"enodeb_id": 431085,
"cell_id": 17,
"cell_access_status": "all calls",
"registration_restriction": 0,
"registration_domain": 0,
"5g_nsa_available": false,
"dcnr_restriction": false
},
"5gnr": {
"service_status": "none",
"true_service_status": "none",
"preferred_data_path": false
}
}
root at OpenWrt:~#
-Philip
More information about the openwrt-devel
mailing list