RM520NGLAP Module setup

cat /etc/resolv.conf

Normally the busybox udhcpc will call the default.script and set the correct DNS.
RIght now the default.script should not be there and do not have the right permission.

Yes, it was missing, thanks! However, I don’t think the automatic DNS is working as pinging google.com results in ping: google.com: Temporary failure in name resolution but pinging 8.8.8.8 works.

When I resolvectl status I also get the following for the 2 interfaces made by quectel-CM

Link 14 (rmnet_mhi0)
Current Scopes: none
     Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported

Link 15 (rmnet_mhi0.1)
Current Scopes: none
     Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported

I will also attach the ip a and quectel-CM results in case they help

[         main.c-0924: 03-13_10:32:50:883] QConnectManager_Linux_V1.6.5
[       device.c-0387: 03-13_10:32:50:884] network interface '' or qmidev '' is not exist
[       device.c-0628: 03-13_10:32:50:884] netcard driver = pcie_mhi, driver version = V1.3.8
[qmap_bridge_mode.c-0325: 03-13_10:32:50:884] qmap_mode = 1, qmap_version = 9, qmap_size = 15360, muxid = 0x81, qmap_netcard = rmnet_mhi0.1
[         main.c-0739: 03-13_10:32:50:884] Modem works in QMI mode
[    QmiWwanCM.c-0351: 03-13_10:32:50:929] cdc_wdm_fd = 7
[    QmiWwanCM.c-0177: 03-13_10:32:51:060] Get clientWDS = 14
[    QmiWwanCM.c-0178: 03-13_10:32:51:064] Get clientDMS = 1
[    QmiWwanCM.c-0179: 03-13_10:32:51:068] Get clientNAS = 3
[    QmiWwanCM.c-0183: 03-13_10:32:51:071] Get clientUIM = 2
[    QmiWwanCM.c-0185: 03-13_10:32:51:074] Get clientWDA = 1
[    QMIThread.c-2273: 03-13_10:32:51:078] requestBaseBandVersion RM520NGLAAR01A08M4G
[    QMIThread.c-0811: 03-13_10:32:51:081] qmap_settings.rx_urb_size = 15360
[    QMIThread.c-0820: 03-13_10:32:51:081] qmap_settings.ul_data_aggregation_max_datagrams  = 11
[    QMIThread.c-0826: 03-13_10:32:51:081] qmap_settings.ul_data_aggregation_max_size       = 8192
[    QMIThread.c-0832: 03-13_10:32:51:081] qmap_settings.dl_minimum_padding                 = 0
[    QMIThread.c-1027: 03-13_10:32:51:100] requestGetSIMStatus SIMStatus: SIM_PIN
[    QMIThread.c-2153: 03-13_10:32:51:194] requestGetProfile[pdp:1 index:1] data.tre.dk//dev/mhi_QMI0//0/IPV4
[    QMIThread.c-1692: 03-13_10:32:51:198] requestRegistrationState2 MCC: 238, MNC: 6, PS: Detached, DataCap: UNKNOW
[    QMIThread.c-1692: 03-13_10:32:51:202] requestRegistrationState2 MCC: 238, MNC: 6, PS: Detached, DataCap: UNKNOW
[    QMIThread.c-1827: 03-13_10:32:51:206] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
[       udhcpc.c-0034: 03-13_10:32:51:207] ip link set dev rmnet_mhi0 down
[       udhcpc.c-0034: 03-13_10:32:51:209] ip addr flush dev rmnet_mhi0.1
[       udhcpc.c-0034: 03-13_10:32:51:210] ip link set dev rmnet_mhi0.1 down
[    QMIThread.c-1692: 03-13_10:32:52:008] requestRegistrationState2 MCC: 238, MNC: 6, PS: Detached, DataCap: UNKNOW
[    QMIThread.c-1692: 03-13_10:32:53:036] requestRegistrationState2 MCC: 238, MNC: 6, PS: Attached, DataCap: 5G_NSA
[    QMIThread.c-1875: 03-13_10:32:53:051] requestSetupDataCall WdsConnectionIPv4Handle: 0x7ca57d60
[    QMIThread.c-1692: 03-13_10:32:53:061] requestRegistrationState2 MCC: 238, MNC: 6, PS: Attached, DataCap: 5G_NSA
[       udhcpc.c-0056: 03-13_10:32:53:069] change mtu 1500 -> 1460
[       udhcpc.c-0034: 03-13_10:32:53:069] ip link set dev rmnet_mhi0 up
[       udhcpc.c-0034: 03-13_10:32:53:071] ip link set dev rmnet_mhi0.1 up
[       udhcpc.c-0167: 03-13_10:32:53:073] busybox udhcpc -f -n -q -t 5 -i rmnet_mhi0.1
udhcpc: started, v1.30.1
udhcpc: sending discover
udhcpc: sending select for 10.138.150.180
udhcpc: lease of 10.138.150.180 obtained, lease time 7200
14: rmnet_mhi0: <NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/none 
    inet6 fe80::6033:b5d4:b174:ad89/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever
15: rmnet_mhi0.1: <NOARP,UP,LOWER_UP> mtu 1460 qdisc fq_codel state UP group default qlen 1000
    link/ether 02:50:f4:00:00:01 brd ff:ff:ff:ff:ff:ff
    inet 10.138.150.180/29 scope global rmnet_mhi0.1
       valid_lft forever preferred_lft forever
    inet6 fe80::50:f4ff:fe00:1/64 scope link 
       valid_lft forever preferred_lft forever

A little update - the modem is successfully working now, however there still are some bugs that I’m investigating. Namely, when running quectel-CM the first time, it doesn’t set the DNS properly or some other process running resets the DNS. I can see it changing the DNS, with watch cat /etc/resolv.conf but after a few seconds it changes it back to the default. Then I kill the quectel-CM process and launch it again, and then it is able to set DNS permanently

There is a default.script in the folder of the quectel-CM.
You can
copy the default.script into /etc/udhcpc/.

dos2unix default.script
chmod +x default.script
mkdir -p /etc/udhcpc/
cp default.sscript  /etc/udhcpc/

Then I think the DNS should update automatically.

Alright, seemed to fix the issue finally, the DNS configured by quectel-CM was overwritten by a symlink between /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf. After removing the symlink, everything worked fine.

Thanks for helping everyone!

@Bean.Wang-Q
My curiousity gets to me.

Why is it in the interfaces it appears there is a slave interface. The .1 . Does this modem have like two PHY’s and one collects lte traffic and the second PHY collects 5G,traffic then aggregates the two?
Dont have any idea.

Thanks

Yes. there are two interface because by defaullt the IP aggregation is enabled.

I have one more question regarding the quectel-CM. Right now, the tool overwrites the /etc/resolvd.conf file to add the DNS address. Is there a way to append the addresses to the file instead of overwriting them, as I want to preserve my previous ones.

Please check the source code of the dedfault.script.
It is the udhcpc that call the default.script to add DNS into the /etc/resolv.conf.

Hello! How did you manage to get it works? It this a specific laptop that works with GLAP version?

I somehow can’t get the quectel-CM to understand the changes I made in the default.script and default.script_ip files. I commented out the part where it overwrites the resolv.conf, but still after make clean and make release it still adds the dns servers to resolv.conf when I launch it.

It is not included in the code of the quectel-CM.
It is the udhcpc that add the DNS.

 busybox udhcpc --help
BusyBox v1.30.1 (Ubuntu 1:1.30.1-7ubuntu3.1) multi-call binary.

Usage: udhcpc [-fbqRB] [-a[MSEC]] [-t N] [-T SEC] [-A SEC/-n]
        [-i IFACE] [-s PROG] [-p PIDFILE]
        [-oC] [-r IP] [-V VENDOR] [-F NAME] [-x OPT:VAL]... [-O OPT]...

        -i IFACE        Interface to use (default eth0)
        -s PROG         Run PROG at DHCP events (default /etc/udhcpc/default.script)
        -p FILE         Create pidfile
        -B              Request broadcast replies
        -t N            Send up to N discover packets (default 3)
        -T SEC          Pause between packets (default 3)
        -A SEC          Wait if lease is not obtained (default 20)
        -n              Exit if lease is not obtained
        -q              Exit after obtaining lease
        -R              Release IP on exit
        -f              Run in foreground
        -b              Background if lease is not obtained
        -S              Log to syslog too
        -a[MSEC]        Validate offered address with ARP ping
        -r IP           Request this IP address
        -o              Don't request any options (unless -O is given)
        -O OPT          Request option OPT from server (cumulative)
        -x OPT:VAL      Include option OPT in sent packets (cumulative)
                        Examples of string, numeric, and hex byte opts:
                        -x hostname:bbox - option 12
                        -x lease:3600 - option 51 (lease time)
                        -x 0x3d:0100BEEFC0FFEE - option 61 (client id)
                        -x 14:'"dumpfile"' - option 14 (shell-quoted)
        -F NAME         Ask server to update DNS mapping for NAME
        -V VENDOR       Vendor identifier (default 'udhcp VERSION')
        -C              Don't send MAC as client identifier
Signals:
        USR1    Renew lease
        USR2    Release lease

-s PROG Run PROG at DHCP events (default /etc/udhcpc/default.script)

It would do something like setting the DNS.

Thanks! Got it working