[具身智能-595]:RDK X5 如何支持 4G/5G 模块
RDK X5 接入 4G/5G 模块完整方案
一、硬件接入方式(两种主流方案)
方案 1:USB Dongle 式 4G/5G 模组(最简单、推荐)
RDK X5 自带4 路 USB3.0 Host Type-A,市面绝大多数 4G/5G USB Stick、USB 模组即插即用。
- 硬件接线 1)4G/5G USB 模组直接插入机身 USB3.0 口;2)插入物联网 SIM 卡,安装天线; 3)供电:USB3.0 供电足够小型 4G 模组;大功率 5G 模组建议外接 5V 独立供电,避免 USB 压降重启。
- 硬件兼容性
- 主流芯片:移远 EC20/EC200S、RM500Q、RG500Q;广和通 FM650、FM350 等;
- 驱动:内核自带
usbserial、option、qmi_wwan、cdc_mbim标准驱动,免编译。
方案 2:40Pin UART/USB 外接 Mini PCIe/M.2 5G 模块(工控扩展)
- 扩展板引出 USB 2.0 通道接 M.2 4G/5G 模组;
- 用 GPIO 控制模块 PWR_KEY、RESET 引脚,实现模块上电 / 断电复位;
- 适合机箱嵌入式固定安装。
二、内核驱动识别与调试
1. 插入模组后查看 USB 设备
bash
运行
lsusb # 查看串口节点(AT指令调试口) ls /dev/ttyUSB* /dev/ttyACM* # 查看wwan蜂窝网卡(数据上网口) ip link show正常识别会生成:
控制信道:/dev/ttyUSB0~3:AT 命令串口(查信号、发短信、拨号配置)数据信道:wwan0/wwp0s20u4:蜂窝数据网卡(TCP/IP 流量走这个网卡)
2. 驱动依赖模块(系统预装,无需编译)
bash
运行
sudo modprobe usbserial sudo modprobe option sudo modprobe qmi_wwan sudo modprobe cdc_mbim三、三种拨号上网模式(RDK 全部支持)
模式 1:QMI 拨号(移远主流 5G/4G 模组首选,速度最优)
工具包:uqmi
- 安装工具
bash
运行
sudo apt update sudo apt install libqmi-utils udhcpc- 拨号脚本示例
bash
运行
# 1. 关闭wwan网卡 sudo ip link set wwan0 down # 2. 创建QMI设备 uqmi -d /dev/cdc-wdm0 --get-device # 3. 启用数据会话,填入运营商APN(移动cmnet/联通3gnet/电信ctnet) uqmi -d /dev/cdc-wdm0 --start-network apn=cmnet # 4. 获取IP地址 sudo udhcpc -i wwan0 # 查看IP ip a show wwan0模式 2:MBIM 拨号(广和通、新款 5G 模组)
工具:mbimcli
bash
运行
sudo apt install libmbim-utils mbimcli -d /dev/cdc-wdm0 --connect apn=cmnet udhcpc -i wwan0模式 3:PPP 拨号(老旧 4G 模组 EC20,串口拨号)
工具:ppp、minicom通过ttyUSBx串口 AT 指令拨号,性能弱,仅存量设备使用。
四、AT 指令调试(信号、短信、网络查询)
bash
运行
# 使用minicom打开AT串口 minicom -D /dev/ttyUSB2 -b 115200 # 常用AT指令 AT # 检测模块正常 AT+CSQ # 查询信号强度 AT+COPS? # 查询运营商 AT+CGDCONT? # 查询APN配置 AT+CREG? # 注册网络状态五、路由配置:4G/5G 作为外网,以太网 / WiFi 作为内网
场景:RDK 本地局域网设备通过 4G 模组访问公网
bash
运行
# 开启内核IP转发 sudo sysctl -w net.ipv4.ip_forward=1 # 配置iptables NAT转发 sudo iptables -t nat -A POSTROUTING -o wwan0 -j MASQUERADE # 内网网段(eth0/wlan0)转发 sudo iptables -A FORWARD -i eth0 -o wwan0 -j ACCEPT sudo iptables -A FORWARD -i wwan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT六、上层业务开发
- TCP/UDP/MQTT/HTTP4G/5G 网卡
wwan0属于标准 Linux TCP/IP 网络设备,Python/C/ROS2 socket 编程无需修改代码,仅切换网卡即可。python
运行
# MQTT通过4G网卡上云示例,和以太网代码完全一致 import paho.mqtt.client as mqtt client = mqtt.Client() client.connect("xxx.mqttserver.com", 1883, 60) - ROS2 远程通信配置
CycloneDDS/FastDDS绑定wwan0网卡,实现 4G 无线远程遥控机器人。 - 短信、拨号功能:通过 AT 串口读写指令实现。
七、自开机自动拨号服务(systemd)
编写 systemd 服务,上电自动拉起 4G 网络,断网自动重拨:
ini
# /etc/systemd/system/4g-connect.service [Unit] Description=4G LTE Auto Connect After=network.target [Service] Type=oneshot ExecStart=/root/4g_start.sh RemainAfterExit=yes [Install] WantedBy=multi-user.targetbash
运行
# 启用开机自启 sudo systemctl daemon-reload sudo systemctl enable 4g-connect.service sudo systemctl start 4g-connect.service八、关键优化与避坑
- 供电问题(5G 高频踩坑点)RM500Q 等 5G 模组峰值电流可达 2A,仅 USB 供电会出现反复掉线、搜网失败,必须额外 5V/3A 电源给模组供电。
- APN 区分运营商
- 移动:
cmnet - 联通:
3gnet - 电信:
ctnet
- 移动:
- 流量分流默认系统网关可能走以太网,如需程序强制走 4G 网络,可通过路由表指定出口网卡:
bash
运行
# 指定公网流量全部从wwan0出去 sudo route add default dev wwan0 metric 100 - 休眠断网关闭 USB 自动挂起,防止模组离线:
bash
运行
echo -1 | sudo tee /sys/bus/usb/devices/*/power/autosuspend - 防火墙云端下发控制指令需放行对应端口,关闭 iptables 测试或开放端口。
九、整体架构总结
- 硬件层:USB3.0 Host 直连 4G/5G 模组;
- 内核层:usbserial/qmi_wwan/cdc_mbim 驱动识别,生成 AT 串口与 wwan 蜂窝网卡;
- 拨号层:uqmi/mbimcli/ppp 完成蜂窝网络注册、获取公网 IP;
- 网络层:标准 TCP/IP 协议栈,支持 NAT 转发、MQTT、ROS、HTTP 等所有网络应用;
- 业务层:和以太网 / WiFi 代码无差异,仅切换网络设备名即可完成 4G 远程上云、远程控制、视频回传。
