Do that. At this point, you’re very close to getting it to work.
I’d bet the issue now is with the carrier settings, everything else seems to be fine.
Do that. At this point, you’re very close to getting it to work.
I’d bet the issue now is with the carrier settings, everything else seems to be fine.
Thank you very much for support
I have similar issues with a Quectel RM520N-GL on OpenWRT latest release w/ModemManager 1.22:
/dev/wwan0mbim0
was the device I had to use via qmbimat
(had to build it myself) in order to send commandsAT+QMBNCFG="list"
to validate that an MBN for my network was available on-SIM and used AT+QMBNCFG="AutoSel",1
to enable autoselection of it. Now IP and route is assigned to the interface setup with ModemManager.mhi_hwip0
(ping -I mhi_hwip0 1.1.1.1
for example increments TX without any RX and nor can I ping the default route). This looks exactly like the issue you have.AT+QPING=4,"1.1.1.1"
responds OK for me. I wonder if instructing the modem to ping would work for you?That’s as far as I’ve got so far. It’s enough to validate, I think, that connectivity is working on the modem side so something else is misbehaving - I hope that you manage to get it working and can report back on how you managed it!
Ref. Banana Pi BPI-R4 4G/5G Module sim card missing in modem manager - #42 by pkern as it looks like a similar issue.
I have the same issue of ping -I wwan0 8.8.8.8 it get IP address and gate way but it not receive echo reply so the connection to internet not established, I tried hard to find out why but not found yet, I checked firewall and Debian forwarding and NAT all correct , I hope find out why asap
other problem is when insert sim card , device not found but I have to take it a little bit out and keep checking to device find it
I’ve got it working with the Quectel drivers now I’ve had a few hours to play with it, I gave up on pure OSS MBIM.
First step was to make sure the bands were selected correctly on the modem, I just want 5G or LTE so I set ./qmbimat -d /dev/wwan0mbim0 -a AT+QNWPREFCFG=\"mode_pref\",NR5G:LTE
The packages I have installed are:
luci-proto-modemmanager
mbim-utils
modemmanager
modemmanager-rpcd
kmod-mhi-wwan-ctrl
kmod-mtk-t7xx
kmod-usb-acm
kmod-usb-atm
kmod-usb-atm-cxacru
kmod-usb-atm-speedtouch
kmod-usb-atm-ueagle
kmod-usb-net-kalmia
kmod-usb-net-qmi-wwan
kmod-usb-serial-option
kmod-usb-serial-wwan
kmod-mhi-wwan-ctrl
kmod-mhi-wwan-mbim
kmod-usb-net-qmi-wwan
kmod-usb-serial-wwan
kmod-wwan
wwan
kmod-qcom-qmi-helpers
kmod-usb-net-qmi-wwan
libqmi
luci-proto-qmi
qmi-utils
uqmi
kmod-mhi-bus
kmod-mhi-net
kmod-mhi-pci-generic
kmod-mhi-wwan-ctrl
kmod-mhi-wwan-mbim
kmod-qrtr-mhi
I’m not sure that all are needed, but at least some of these are.
I had to build the Quectel kernel module and utility, but first the OpenWRT release I’m using:
git clone [email protected]:openwrt/openwrt.git
cd openwrt
git checkout 6df0e3d # hash suffix from release build ID
wget https://downloads.openwrt.org/releases/24.10.0/targets/mediatek/filogic/config.buildinfo -O .config
wget https://downloads.openwrt.org/releases/24.10.0/targets/mediatek/filogic/feeds.buildinfo -O feeds.conf
./scripts/feeds update -a
./scripts/feeds install -a
make -j $(($(nproc)+1)) toolchain/install
make -j $(($(nproc)+1)) target/linux/compile
Then I built the Quectel driver and QConnectManager using the replicated kernel build, it has to be the exact same version of the kernel you’re using. You can obtain these from Quectel (or, I’m sure, somewhere else but I’m not sure what the redist license is for them)
unzip Quectel_Linux_PCIE_MHI_Driver_V1.3.7.zip -d package/kernel/
unzip Quectel_QConnectManager_Linux_V1.6.7.zip -d package/utils/
make package/utils/quectel-CM-5G/{clean,compile} V=sc
make package/kernel/pcie_mhi/{clean,compile} V=sc
Once it’s built, you need to copy it over to your development board and install the packages:
scp -O bin/targets/mediatek/filogic/packages/kmod-pcie_mhi_*.ipk user@router:/tmp
scp -O bin/packages/aarch64_cortex-a53/base/quectel-CM-5G_*.ipk user@router:/tmp
ssh user@router
cd /tmp; opkg install *.ipk
After that, I disabled all existing ModemManager interfaces and the service if it was running then powered off the router and modem with poweroff
and physically removing the adapter to ‘reset’ them. I made sure that the kernel module was loaded after booting up again and that I had screen
, tmux
or similar and ran eg.
lsmod | grep pcie_mhi
# pcie_mhi 151552 0
screen -S modem
quectel-CM
# detach with Ctrl-A D
I was then able to achieve full internet connectivity via the newly generated interface:
ping 1.1.1.1 -c 4 -I rmnet_mhi0.1
# PING 1.1.1.1 (1.1.1.1): 56 data bytes
# 64 bytes from 1.1.1.1: seq=0 ttl=57 time=201.485 ms
# 64 bytes from 1.1.1.1: seq=1 ttl=57 time=28.409 ms
# 64 bytes from 1.1.1.1: seq=2 ttl=57 time=45.255 ms
# 64 bytes from 1.1.1.1: seq=3 ttl=57 time=45.153 ms
#
# --- 1.1.1.1 ping statistics ---
# 4 packets transmitted, 4 packets received, 0% packet loss
# round-trip min/avg/max = 28.409/80.075/201.485 ms
Hope that helps! From here, it should be as easy as making quectel-CM
run on boot by creating an init
or systemd
service.
Edit: as a bit of Debian specific info you may find How to build out of tree Kernel Module on Debian · GitHub to be useful to guide the process of building an individual kernel module, you can of course ignore all the OpenWRT related stuff and adapt the process for your own OS
Great job! Congratulations on getting it up and running.
I have my RM520-GL on the way, if customs doesn’t delay it, it should arrive this week. Hopefully, everything works out of the box, but we’ll see!
Thanks for sharing such a detailed explanation, it’ll definitely be helpful.
Congratulations
Thank you very much for post the solution I will try it