Quectel RM500U-CN

移远通信RM500U-CN 是一款专为 IoT/eMBB 应用而设计的 5G Sub-6 GHz 模块。采用 3GPP Release 15 技术,同时支持 5G NSA 和 SA 模式。RM500U-CN 采用 M.2 封装,与移远通信RM500Q系列模块兼容。

RM500U-CN 支持国内四大运营商。

RM500U-CN为工规级模块,仅适用于工业级和商业级应用。

RM500U-CN 内置丰富的网络协议,集成多个工业标准接口,并支持多种驱动和软件功能(如 Windows、Linux、Android 等操作系统下的 USB/PCIe 驱动等)

支持频段: n1/n28(广电700M)/n41/n77/n78/n79

cat /sys/kernel/debug/usb/devices

T: Bus=02 Lev=01 Prnt=01 Port=04 Cnt=01 Dev#= 3 Spd=5000 MxCh= 0
D: Ver= 3.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs= 1
P: Vendor=2c7c ProdID=0900 Rev= 4.04
S: Manufacturer=Quectel
S: Product=RM500U-CN
S: SerialNumber=0123456789ABCDEF
C:* #Ifs= 7 Cfg#= 1 Atr=c0 MxPwr=504mA
A: FirstIf#= 0 IfCount= 2 Cls=e0(wlcon) Sub=01 Prot=03
I:* If#= 0 Alt= 0 #EPs= 1 Cls=e0(wlcon) Sub=01 Prot=03 Driver=rndis_host
E: Ad=82(I) Atr=03(Int.) MxPS= 8 Ivl=32ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host
E: Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
E: Ad=83(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
E: Ad=84(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
E: Ad=85(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
E: Ad=86(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=05(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 6 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
E: Ad=87(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=06(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms


# modprobe  -v option
insmod /lib/modules/5.10.0-8-amd64/kernel/drivers/usb/serial/usbserial.ko
insmod /lib/modules/5.10.0-8-amd64/kernel/drivers/usb/serial/usb_wwan.ko
insmod /lib/modules/5.10.0-8-amd64/kernel/drivers/usb/serial/option.ko
# echo '2c7c 0900' > /sys/bus/usb-serial/drivers/option1/new_id

就会正确加载驱动了
T: Bus=02 Lev=01 Prnt=01 Port=04 Cnt=01 Dev#= 3 Spd=5000 MxCh= 0
D: Ver= 3.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs= 1
P: Vendor=2c7c ProdID=0900 Rev= 4.04
S: Manufacturer=Quectel
S: Product=RM500U-CN
S: SerialNumber=0123456789ABCDEF
C:* #Ifs= 7 Cfg#= 1 Atr=c0 MxPwr=504mA
A: FirstIf#= 0 IfCount= 2 Cls=e0(wlcon) Sub=01 Prot=03
I:* If#= 0 Alt= 0 #EPs= 1 Cls=e0(wlcon) Sub=01 Prot=03 Driver=rndis_host
E: Ad=82(I) Atr=03(Int.) MxPS= 8 Ivl=32ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host
E: Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=83(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=84(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=85(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=86(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=05(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 6 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=87(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=06(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
在 /dev/下会出现多个usb串口,第3个是AT命令端口

picocom -b 23400 -c /dev/ttyUSB2
at+cgmr
Platform Version: MOCORTM_20C_W21.17.3_P2_Debug
Project Version:   Orca_NR_modem
BASE  Version:    5G_MODEM_20C_W21.17.3_P2

用lsusb -t 以树形显示 挂载关系和速率

# lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 5000M
    |__ Port 1: Dev 2, If 0, Class=Wireless, Driver=rndis_host, 5000M
    |__ Port 1: Dev 2, If 1, Class=CDC Data, Driver=rndis_host, 5000M
    |__ Port 1: Dev 2, If 2, Class=Vendor Specific Class, Driver=, 5000M
    |__ Port 1: Dev 2, If 3, Class=Vendor Specific Class, Driver=, 5000M
    |__ Port 1: Dev 2, If 4, Class=Vendor Specific Class, Driver=, 5000M
    |__ Port 1: Dev 2, If 5, Class=Vendor Specific Class, Driver=, 5000M
    |__ Port 1: Dev 2, If 6, Class=Vendor Specific Class, Driver=, 5000M

可以看到 2,3,4,5,6 功能没有加载正确的驱动

ls -la /sys/bus/usb/devices/
...
lrwxrwxrwx 1 root root 0  9月 22 00:42 2-1:1.2 -> ../../../devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.2
lrwxrwxrwx 1 root root 0  9月 22 00:42 2-1:1.3 -> ../../../devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.3
lrwxrwxrwx 1 root root 0  9月 22 00:42 2-1:1.4 -> ../../../devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.4
lrwxrwxrwx 1 root root 0  9月 22 00:42 2-1:1.5 -> ../../../devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.5
lrwxrwxrwx 1 root root 0  9月 22 00:42 2-1:1.6 -> ../../../devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.6
...

手动绑定

ls -la /sys/bus/usb/drivers/rndis_host/
echo '2-1:1.0'  >   /sys/bus/usb/drivers/rndis_host/bind
echo '2-1:1.1'  >   /sys/bus/usb/drivers/rndis_host/bind

查询/设置当前usb网卡驱动模型

AT+QCFG="usbnet"[,net]

1 表示 ECM
2 表示 MBIM
3 表示 RNDIS
5 表示 NCM
默认为 3, 因为rndis在Linux和Windows下都有驱动

配置网卡模式

AT+QCFG="nat"[,nat]
0=网卡模式
1=路由模式
2=网桥模式
默认为0,网卡模式。网卡模式下,分配给PC机的地址为公网地址(也就是核心网分配给基带的地址)。此时modem内部无法连接外网,因为它都没有IP了,IP给了PC机


网桥模式和路由模式为 内网地址

AT+QCFG=”ethernet” (通过 pcie外接了以太网网卡芯片,这个指令才有用)

配置USB

AT+QCFG="usbcfg"[, vid, pid, diag,log,at_port,modem,NMEA,ADB]
示例:
AT+QCFG="usbcfg",0x2c7c,0x0900,1,1,1,1,1,1
打开全部功能,包括adb
默认情况下,adb是关闭的
还可以用AT+QCFG="usbid"[,vid,pid] 来单独配置vid和pid

启用ims/volte

AT+QCFG="ims",1

配置网络搜索模式

AT+QNWPREFCFG="mode_pref"

配置通话语音

AT+QNWPREFCFG="voice_domain"

配置语音优先还是数据优先

AT+QNWPREFCFG="ue_usage_setting"

查询5G注册状态

AT+C5GREG

+C5GREG: 0,1

查询5G网络质量

AT+C5GQOS?
+C5GQOS: 1,0,0,0,0,0
+C5GQOS: 2,0,0,0,0,0
+C5GQOS: 11,0,0,0,0,0


AT+C5GQOSRDP=1

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注