Anyone who has worked with RM500U-CN?


I looked into the file. I think this is the line in question?

Right, they added a block of lines between #if and #endif. They have short instruction for Linux on that page, my understanding their install script will take care of two drivers - usb_wwan and option.
I’m still confused with your signal and registration issues, but since you have an IP on the modem it will be worth testing with the driver updated.

wget https://www.waveshare.net/w/upload/9/9e/RM500U_FOR_RPI_Ubuntu22.04.zip
unzip RM500U_FOR_RPI_Ubuntu22.04.zip
sudo chmod 777 -R RM500U_FOR_RPI_Ubuntu22.04
cd RM500U_FOR_RPI_Ubuntu22.04
sudo ./install.sh

No, it’s still the same…

The registration issue is fixed now after a firmware upgrade but now I randomly can’t get a pdp IP and even when I have one, I have no throughput.

Make sure you’re using the patched driver. I have a confirmation that this modem works fine with OpenWrt with the driver patched according to Quectel instructions. Waveshare instruction is probably based on the same source.
Check with ls -l /lib/modules/$(uname -r)/kernel/drivers/usb/serial/ | grep usb and see if the file is updated.

Is this what you were expecting to see?

Yes and no :wink: The driver in question was not changed.
What is currently in your RM500U_FOR_RPI_Ubuntu22.04/option directory ?
Please do not use pictures to show text.

Here you go,

pi@ubuntu:~/Quectel/try-2/RM500U_FOR_RPI_Ubuntu22.04/option$ ls
Makefile        option.ko     qcserial.c      qcserial.o    usb_wwan.mod.c
Module.symvers  option.mod    qcserial.ko     usb-wwan.h    usb_wwan.mod.o
drivers         option.mod.c  qcserial.mod    usb_wwan.c    usb_wwan.o
modules.order   option.mod.o  qcserial.mod.c  usb_wwan.ko
option.c        option.o      qcserial.mod.o  usb_wwan.mod
pi@ubuntu:~/Quectel/try-2/RM500U_FOR_RPI_Ubuntu22.04/option$

Please repeat with ls -l to show the file size.

pi@ubuntu:~/Quectel/try-2/RM500U_FOR_RPI_Ubuntu22.04/option$ ls -l
total 1964
-rwxrwxrwx 1 pi   pi      341 Nov 23 10:29 Makefile
-rw-r--r-- 1 root root   1348 Feb 27 14:09 Module.symvers
drwxrwxrwx 3 pi   pi     4096 Nov 23 10:29 drivers
-rw-r--r-- 1 root root    211 Feb 27 14:09 modules.order
-rwxrwxrwx 1 pi   pi   133411 Nov 23 10:29 option.c
-rw-r--r-- 1 root root 403628 Feb 27 14:09 option.ko
-rw-r--r-- 1 root root     69 Feb 27 14:09 option.mod
-rw-r--r-- 1 root root  79290 Feb 27 14:09 option.mod.c
-rw-r--r-- 1 root root 220576 Feb 27 14:09 option.mod.o
-rw-r--r-- 1 root root 185816 Feb 27 14:09 option.o
-rwxrwxrwx 1 pi   pi    17546 Nov 23 10:29 qcserial.c
-rw-r--r-- 1 root root 215992 Feb 27 14:09 qcserial.ko
-rw-r--r-- 1 root root     71 Feb 27 14:09 qcserial.mod
-rw-r--r-- 1 root root   9484 Feb 27 14:09 qcserial.mod.c
-rw-r--r-- 1 root root  50952 Feb 27 14:09 qcserial.mod.o
-rw-r--r-- 1 root root 167828 Feb 27 14:09 qcserial.o
-rwxrwxrwx 1 pi   pi     1982 Nov 23 10:29 usb-wwan.h
-rwxrwxrwx 1 pi   pi    16866 Nov 23 10:29 usb_wwan.c
-rw-r--r-- 1 root root 220228 Feb 27 14:09 usb_wwan.ko
-rw-r--r-- 1 root root     71 Feb 27 14:09 usb_wwan.mod
-rw-r--r-- 1 root root   2031 Feb 27 14:09 usb_wwan.mod.c
-rw-r--r-- 1 root root  32352 Feb 27 14:09 usb_wwan.mod.o
-rw-r--r-- 1 root root 195716 Feb 27 14:09 usb_wwan.o
pi@ubuntu:~/Quectel/try-2/RM500U_FOR_RPI_Ubuntu22.04/option$

OK, the drivers were built but not copied.
You need to copy *.ko from this directory to the 1st one you opened, but make a backup copy of the old files.
Then reboot, open a terminal and send at+qnetdevctl=1,1,1 to the modem, show the command output (if any). Then you can try DHCP, etc.

pi@ubuntu:~$ ls -l /lib/modules/$(uname -r)/kernel/drivers/usb/serial/ | grep usb
-rw-r--r-- 1 root root  17481 Jan 18 14:58 ir-usb.ko
-rw-r--r-- 1 root root  14473 Jan 18 14:58 kl5kusb105.ko
-rw-r--r-- 1 root root  12313 Jan 18 14:58 metro-usb.ko
-rw-r--r-- 1 root root  35009 Jan 18 14:58 ti_usb_3410_5052.ko
-rw-r--r-- 1 root root  13725 Jan 18 14:58 usb-serial-simple.ko
-rw-r--r-- 1 root root   6641 Jan 18 14:58 usb_debug.ko
-rw-r--r-- 1 root root 220228 Mar 21 22:12 usb_wwan.ko
-rw-r--r-- 1 root root  67625 Jan 18 14:58 usbserial.ko
pi@ubuntu:~$ ifconfig usb0
usb0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.42.2  netmask 255.255.255.0  broadcast 192.168.42.255
        inet6 fe80::4865:daff:feda:e104  prefixlen 64  scopeid 0x20<link>
        ether 4a:65:da:da:e1:04  txqueuelen 1000  (Ethernet)
        RX packets 161  bytes 9900 (9.9 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 261  bytes 32340 (32.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

pi@ubuntu:~$ ping -I usb0 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 192.168.42.2 usb0: 56(84) bytes of data.
From 192.168.42.1 icmp_seq=1 Destination Net Unreachable
From 192.168.42.1 icmp_seq=2 Destination Net Unreachable
From 192.168.42.1 icmp_seq=3 Destination Net Unreachable
From 192.168.42.1 icmp_seq=4 Destination Net Unreachable
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3005ms

pi@ubuntu:~$

and the terminal output please

I am currently using RNDIS mode so I don’t think I need to run that?

My understanding you need it in either case and I suggest switching to ECM.

OMGGG! I switched to ECM and ran that command and it’s working now.
WHAT DOES THAT COMMAND DO?

Ok, now

AT+QCFG="nat",0
at+qnetdevctl=1,3,1
at+cfun=1,1

When the modem is back just run your DHCP client and see whether it will work without additional commands.

I just realised that I suggested the wrong sequence of commands in my earlier post.
Reset command should be used before at+qnetdevctl, not after and at+qnetdevctl should be issued after the modem is back after reset.

One more thing to mention: the new drivers produced by the Waveshare script are too big, you can compare the sizes between the old and new files. Their build script probably needs some tweaking but that is outside of my area of expertise.

What does this command do? Looks like this command is what enables it to work.

Yup. It works after I run these followed by the DHCP client.

AT+QCFG="nat",0
at+qnetdevctl=1,3,1
at+cfun=1,1

Thank you for checking.
The command is described by Quectel as 该命令用于执行/断开PDP 拨号。

This command is used to perform/disconnect PDP dialing (Google translate)

See: https://www.quectel.com/wp-content/uploads/2021/12/Quectel_EG060V-EA_USBnet_Call_Application_Note_V1.0.pdf

1 Like