尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

RK3568开发板Ubuntu 20.04系统驱动MT5710 5G模块全流程指南

RK3568开发板Ubuntu 20.04系统驱动MT5710 5G模块全流程指南 1. 先搞清楚这个演示到底要解决什么问题如果你手头有一块搭载瑞芯微 RK3568 芯片的开发板比如鲁班猫2并且想在它上面跑 Ubuntu 20.04 系统然后连接一个 MT5710 5G RedCap 模块那么这篇文章就是为你准备的。这个组合的核心价值在于它提供了一个完整的、从硬件到操作系统的 5G 物联网或边缘计算原型验证平台。你不需要去折腾复杂的 5G 核心网就能在本地验证 5G 模块的接入、数据传输等基础功能。很多人拿到模块和开发板第一步就卡在系统启动和驱动识别上。这个演示最关键的不是展示 5G 速度有多快而是验证从硬件上电、系统启动、到模块被正确识别并注册到移动网络这一整套链路的通畅性。对于开发者来说这意味着你可以基于这个稳定的基础去开发自己的 5G 应用比如远程数据采集、视频回传或者边缘 AI 推理。所以别急着去测速。我们先要确保三件事第一Ubuntu 20.04 系统能在 RK3568 上稳定运行第二MT5710 模块通过正确的接口通常是 USB 或 PCIe被系统识别为网络设备第三模块能正常完成搜网、注册、获取 IP 地址等流程。这三步走通了后续的应用开发才有意义。2. 环境准备硬件、软件与源码在动手之前请确认你手头有下面这些东西。缺了任何一样后面的步骤都可能走不下去。2.1 硬件清单核心开发板鲁班猫2LubanCat-2或其它基于 RK3568 的设计。关键是要确认板子的具体型号和外围接口定义。5G 模块移远通信的 MT5710 5G RedCap 模块。RedCap 可以理解为“轻量版 5G”在速率和功耗上做了平衡更适合物联网场景。你需要确认模块的具体型号比如 MT5710-S、MT5710-AU等因为不同型号支持的频段和功能可能有细微差别。天线至少需要两根 5G 天线主集和分集确保信号质量。天线接口通常是 SMA 或 IPEX。SIM 卡一张已开通数据业务、并支持 5G 的 SIM 卡。最好先放在手机里确认一下能否正常使用 5G 网络。电源给开发板提供稳定可靠的电源RK3568 全速运行时功耗不低供电不足会导致各种奇怪问题。连接线用于连接模块和开发板的接口线。MT5710 通常通过 M.2 或 Mini PCIe 接口与底板连接而底板再通过 USB 或 PCIe 与 RK3568 相连。这里最容易出错务必根据你的硬件设计确认 MT5710 最终是以 USB 设备还是 PCIe 设备的形式呈现给 RK3568 系统的。这决定了后续驱动和调试的方向。串口调试工具一根 USB 转 TTL 串口线用于连接开发板的调试串口通常是 UART2。这是系统启动和内核信息输出的生命线没有它出问题时你基本是“盲人摸象”。2.2 软件与源码准备Ubuntu 20.04 系统镜像需要专门为 RK3568 编译的 Ubuntu 20.04 RootFS根文件系统和对应的内核。你不能直接用 PC 版的 Ubuntu 镜像。来源通常可以从开发板厂商的 Wiki、GitHub 仓库或社区论坛找到预编译的镜像。例如搜索“LubanCat-2 Ubuntu 20.04 image”。自行构建如果你需要深度定制可以使用 Buildroot 或 Yocto 等工具链。但请注意像ct-ng list-samples | grep rk3568如果没有结果说明你的 crosstool-NG 配置里可能没有预置 RK3568 的 profile需要自己添加或使用厂商提供的工具链。烧录工具瑞芯微提供的RKDevTool或开源工具upgrade_tool用于将系统镜像烧录到开发板的 eMMC 或 SD 卡中。交叉编译工具链如果你想在 PC 上为 RK3568 编译内核模块或应用程序需要安装 aarch64 架构的交叉编译工具链。驱动与固件MT5710 模块在 Linux 下通常依赖qmi_wwanUSB 模式或qcom_emac等驱动这些驱动一般已经包含在标准内核中。但模块的固件Firmware可能需要单独放置到系统的/lib/firmware/目录下。这个固件文件通常由模块厂商提供。3. 系统部署与基础启动拿到镜像后不要急着连接 5G 模块。先确保一个“干净”的 Ubuntu 系统能在开发板上独立跑起来。3.1 烧录系统镜像进入烧录模式开发板通常有两种启动模式正常启动和 Loader 模式烧录模式。一般通过按住板上的某个按键如 Recovery 或 MaskROM 键再上电或者短接测试点来进入 Loader 模式。具体方法请查阅你的开发板手册。连接与识别用 USB 线连接开发板的 OTG 口到 PC。在 PC 上打开RKDevTool如果工具识别到设备处于 “Maskrom” 或 “Loader” 模式就可以进行烧录。加载镜像在工具中选择对应的分区表如parameter.txt和各个分区的镜像文件如uboot.img,boot.img,rootfs.img。执行烧录点击“执行”按钮开始烧录。等待进度条走完提示成功。重启断开 USB 线给开发板重新上电此时应该从 eMMC 正常启动。3.2 首次启动与基础配置连接串口将 USB 转 TTL 串口线的 RX、TX、GND 分别连接到开发板的调试串口如 UART2_TX, UART2_RX, GND。注意 RX 接 TXTX 接 RX。在 PC 上使用串口终端工具如minicom,picocom或 Windows 下的MobaXterm、Putty打开对应的串口设备如/dev/ttyUSB0波特率通常设置为1500000这是瑞芯微平台常见的调试波特率。观察启动日志上电后串口终端会输出大量 U-Boot 和内核启动信息。你需要关注内核是否正常解压并启动。文件系统是否被成功挂载。是否出现任何Failed或Error提示例如搜索材料中提到的display_device相关错误如果与你的外设无关可能暂时不影响主线功能但需留意。最终是否出现Ubuntu 20.04 ... login:提示符。登录系统使用默认账号密码通常是root/root或cat/cat具体看镜像说明登录。基础网络配置为了后续安装软件方便可以先配置有线网络或 Wi-Fi如果板载支持。配置国内镜像源登录后第一件事就是替换apt源为国内镜像加速软件安装。执行sudo vim /etc/apt/sources.list将文件内容替换为阿里云、清华或中科大的 Ubuntu 20.04 源。然后运行sudo apt update sudo apt upgrade -y更新系统。安装必要工具安装网络调试和驱动查看工具sudo apt install net-tools pciutils usbutils vim -y。usbutils里的lsusb和pciutils里的lspci将是接下来排查模块识别的关键命令。4. 连接并识别 MT5710 5G 模块现在可以请出主角 MT5710 模块了。这一步的目标是让系统“看见”它。4.1 物理连接与上电安全下电在连接模块前最好先关闭开发板电源。安装模块将 MT5710 模块插入开发板底板对应的 M.2 或 Mini PCIe 插槽并拧紧固定螺丝。连接好 5G 天线。插入 SIM 卡将 SIM 卡插入模块或底板上的卡槽。重新上电给开发板重新上电并通过串口登录系统。4.2 检查系统识别状态模块的识别方式取决于其与 RK3568 的连接总线。如果通过 USB 总线连接 在终端执行lsusb命令。你应该能看到一个类似Quectel Wireless Solutions Co., Ltd.或Foxconn移远模块的 VID/PID 可能显示为富士康的设备。例如Bus 002 Device 002: ID 2c7c:0125 Quectel Wireless Solutions Co., Ltd.这表示系统已经通过 USB 识别到了模块硬件。记下这个 ID2c7c:0125。如果通过 PCIe 总线连接 在终端执行lspci命令。你应该能看到一个网络控制器设备其厂商可能是Qualcomm因为 MT5710 采用高通芯片。01:00.0 Network controller: Qualcomm Device xxxx (rev xx)同时执行lsusb可能看不到相关设备因为通信走的是 PCIe 通道。如果lsusb或lspci都看不到设备那么问题出在硬件连接或供电上检查模块是否插紧金手指是否清洁。检查底板是否为模块提供了稳定的电源。有些底板可能需要跳线帽来使能 PCIe/USB 槽的电源。查看内核启动日志dmesg | tail -50搜索是否有关于pcie或usb枚举失败的错误信息。4.3 加载驱动与生成网络接口识别到硬件后内核需要加载正确的驱动来将其初始化为一个可用的网络设备。对于 USB 模式最常见 驱动通常是qmi_wwan或GobiNet。执行lsmod | grep qmi或lsmod | grep Gobi查看驱动是否已加载。如果没有尝试sudo modprobe qmi_wwan。 驱动加载成功后再执行ip link或ifconfig -a你应该能看到一个新的网络接口名字通常是wwan0、usb0或eth1具体名字取决于驱动和配置。 同时dmesg日志里会有类似usb 2-1.4: GSM modem (1-port) converter now attached to ttyUSB0的信息生成多个ttyUSBx串口设备用于 AT 命令和 QMI 协议通信。对于 PCIe 模式 驱动可能是qcom_emac或其它专有驱动。需要确认内核是否编译了该驱动zcat /proc/config.gz | grep QCEMAC。驱动加载后会生成类似eth1或wwp0s20u6i6这样的网络接口。注意有时模块需要几秒钟到一分钟的时间来完成初始化。如果刚上电没看到接口可以等待一会儿再检查或者通过sudo dmesg -w实时查看内核日志。5. 配置网络连接与拨号生成了网络接口假设是wwan0并不代表就能上网了。你需要通过移动网络协议如 QMI 或 MBIM来拨号获取运营商分配的 IP 地址。5.1 使用qmi-network工具拨号QMI 协议这是目前最通用和推荐的方式。安装工具sudo apt install libqmi-utils udhcpc -y启动 QMI 管理连接首先你需要知道模块对应的 QMI 设备文件它通常是/dev/cdc-wdm0或/dev/qmi0。可以通过ls /dev/cdc*或查看dmesg日志确认。sudo qmicli -d /dev/cdc-wdm0 --dms-get-operating-mode这个命令可以测试 QMI 通道是否通畅。如果返回当前模式如online或low_power说明通道正常。设置 APNAPN接入点名称由你的 SIM 卡运营商提供如中国移动是cmnet。sudo qmicli -d /dev/cdc-wdm0 --wds-set-apncmnet启动数据会话sudo qmicli -d /dev/cdc-wdm0 --wds-start-networkip-type4 --client-no-release-cid这个命令会启动一个 IPv4 的数据会话并返回一个 CID客户端 ID。命令输出中会包含一个网络接口名如wwan0和租约文件路径。获取 IP 地址使用udhcpc或dhclient为wwan0接口获取 IP。sudo udhcpc -i wwan0 -q成功后执行ip addr show wwan0应该能看到一个公网或内网 IP 地址。5.2 使用NetworkManager进行图形化/命令行管理更简便如果系统安装了NetworkManager并且模块驱动支持这是更省心的方式。安装 NetworkManagersudo apt install network-manager -y查看设备nmcli device status。你应该能看到wwan0设备状态可能是disconnected。创建连接sudo nmcli connection add type gsm ifname wwan0 con-name my-5g apn cmnet启动连接sudo nmcli connection up my-5g检查状态再次运行nmcli device status和ip addr show wwan0确认连接已激活并获取到 IP。5.3 网络连通性测试获取到 IP 后进行基础测试ping -I wwan0 8.8.8.8指定从wwan0接口 ping 一个公网 IP测试基础连通性。curl --interface wwan0 ifconfig.me查看当前获取到的公网 IP 地址。nslookup www.baidu.com测试 DNS 解析是否正常。如果 ping 通公网 IP 但无法解析域名可能是 DNS 设置问题需要检查/etc/resolv.conf文件。6. 深度调试与排错指南事情很少一帆风顺。下面是我在调试这类套件时最常检查的几个点和顺序。6.1 模块无响应或无法识别现象lsusb/lspci无输出dmesg无相关日志。排查供电这是首要怀疑对象。用万用表测量模块供电引脚电压是否稳定且在规格范围内如 3.8V。RK3568 底板设计不良或电源芯片带载能力不足是常见问题。复位与唤醒检查模块的复位RESET和唤醒WAKEUP引脚电平是否正确。有些模块需要主控通过 GPIO 将其拉高或拉低才能启动。USB/PCIe 枚举在dmesg中搜索usb、xhci、pcie等关键词看是否有枚举错误或超时信息。可能是内核配置中相关控制器驱动未启用或配置错误。设备树Device Tree这是 RK3568 平台的关键。需要确认设备树文件.dts是否正确配置了对应接口如 USB Host 控制器或 PCIe 控制器的状态为okay并且引脚复用pinctrl配置正确。搜索材料中的rk3568设备树和rk3568 defconfig配置正是与此相关。你可能需要重新编译内核并更新设备树。6.2 有接口但无法拨号现象能看到wwan0但qmicli命令失败或NetworkManager无法连接。排查QMI/MBIM 设备节点确认/dev/cdc-wdm0等设备节点存在且权限正确crw-rw-rw-。有时需要手动创建sudo mknod /dev/cdc-wdm0 c 180 176。固件缺失这是最隐蔽的问题之一。执行sudo dmesg | grep firmware看是否有加载固件失败的错误。需要将模块厂商提供的.mbn或.bin固件文件放入/lib/firmware/目录并确保文件名与内核驱动期望的完全一致。SIM 卡与信号确认 SIM 卡已开通数据业务且未欠费。使用 AT 命令检查信号先找到模块的 AT 命令端口如/dev/ttyUSB2使用minicom或echo命令发送ATCSQ查询信号强度ATCOPS?查询注册网络。信号弱或无服务会导致拨号失败。检查天线是否连接牢固。APN 设置确认 APN 设置正确。可以尝试不设置 APN让模块自动从运营商获取。6.3 连接不稳定或速度慢现象能连接但频繁断线或测速远低于预期。排查信号质量使用ATCSQ和ATCESQ命令查看详细的 RSRP参考信号接收功率和 SINR信噪比值。RSRP -90 dBmSINR 10 dB 是比较好的状态。频段锁定有些模块默认搜索所有频段可能驻留在信号不佳的频段。可以使用 AT 命令如ATQNWPREFCFG尝试锁定到信号更强的特定 5G 频段。射频干扰开发板上的其他高速电路如 DDR、GPU可能对射频产生干扰。确保天线远离这些部件并尝试调整天线位置。系统负载与散热RK3568 在高负载下如果散热不佳可能导致 CPU 降频或总线不稳定间接影响模块性能。监控系统温度cat /sys/class/thermal/thermal_zone*/temp。内核网络参数可以尝试优化一些 TCP 参数但效果因网络环境而异。6.4 关于 UART 流控搜索材料中提到了rk3568 uart流控。在调试 5G 模块时通常不需要关心 UART 流控。因为模块与主控的高速数据通信走的是 USB 或 PCIe 总线。开发板上的调试串口UART2是给人看的波特率固定一般也不启用流控。流控RTS/CTS更多用于两个设备间通过 UART 进行高速、可靠的数据传输场景比如某些老式的 4G 模块通过 UART 传输 PPP 数据。对于 MT5710 这种通过 USB 使用 QMI 协议的模块UART 流控不是配置重点。7. 进阶生产环境考量与优化当演示调通后如果你打算将其用于实际项目还需要考虑以下几点开机自启动连接编写一个 Systemd 服务单元service unit在系统启动时自动执行qmicli拨号脚本或配置NetworkManager自动连接。连接监控与重连网络可能因信号等原因中断。需要编写守护进程定期检查wwan0接口状态和网络可达性并在断开时自动重连。功耗管理对于电池供电的设备需要配置模块的休眠模式通过 AT 命令如ATQSCLK。注意平衡功耗和网络唤醒的延迟。日志与监控将dmesg、qmicli输出、信号质量AT命令结果等关键信息重定向到日志文件便于远程排查问题。内核定制为了追求极致的稳定性和精简可以基于 RK3568 的默认配置如rockchip_linux_defconfig进行内核裁剪只保留必要的驱动如 USB Net、QMI WWAN、PPP 等和文件系统支持。RootFS 优化使用 Buildroot 或 Yocto 构建一个只包含必要软件的精简根文件系统减小镜像体积提高启动速度。这个基于 RK3568 和 MT5710 的 5G 演示打通了从硬件到系统再到移动网络接入的全链路。它最大的意义不是跑分而是为你后续的物联网网关、边缘计算盒子、远程监控设备等产品原型提供了一个经过验证的、可靠的通信基础。调试过程中耐心和顺序是关键先确保硬件供电和连接再看系统识别和驱动最后处理网络协议和配置。当你看到wwan0接口上出现那个来之不易的 IP 地址时剩下的应用层开发就是一片广阔的天地了。
返回列表