移远通信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