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