5G PCIe网卡
2026-02-28
本文以连接RM520N-GL PCIe网卡为例,介绍如何在Quectel Pi H1智能主控板上通过PCIe接口连接5G网卡,并完成网络配置和拨号上网。
硬件接口及准备
开始操作前,请确认已准备好以下硬件:
- Quectel Pi H1智能主控板
- RM520N-GL PCIe网卡
- PCIe转接线
- Type-C-to-Type-A USB数据线
- 5G天线
- 有效的SIM卡
快速开始
连接硬件
- 将RM520N-GL PCIe网卡转接线完全均匀地插入智能主控板的PCIe端口。
- 从两侧向下推动PCIe接口支架,确保PCIe转接线牢牢固定到位。
- 使用TYPE-C To USB线连接至Windows PC。初次使用可能需要安装USB驱动(驱动文件由模块技术支持提供,请根据模块型号选择正确的驱动文件)。
功能使用
PCIe模块配置
使用PCIe直通转接卡时,必须把模块设置成PCIe-EP模式,否则无法与Quectel Pi H1的PCIe接口通信。安装模块驱动后,通过转接板的USB口连接5G模块,输入AT指令,将其切换到PCIe-EP模式,操作如下:
连接AT端口
- 在Windows PC的设备管理器中,找到显示为“Quectel USB AT Port (COMxxx)”的端口。
- 然后,使用串口工具打开该AT端口。
执行配置命令
- 执行如下配置命令:
AT+QCFG="data_interface",1,0
AT+QCFG="pcie/mode",0
AT+QCFG="usbnet",2
AT+CFUN=1,1
- 执行完成后,断开PC端的USB线,重新给主控板上电。
验证PCIe设备识别情况
通过Shell口使用如下命令并核对输出:
检查PCIe总线设备识别情况。
执行命令:
lspci正常输出示例:
root@QuectelPi:~# lspci 0000:00:00.0 PCI bridge: Qualcomm Device 010b 0000:01:00.0 Ethernet controller: Device 1f0a:6801 (rev 01) 0001:00:00.0 PCI bridge: Qualcomm Device 010b 0001:01:00.0 Unassigned class [ff00]: Qualcomm Device 0308检查MHI调至解调器接口识别情况。
执行命令:
ls /dev/mhi*正常输出示例:
root@QuectelPi:~# ls /dev/mhi* /dev/mhi_BHI /dev/mhi_DIAG /dev/mhi_DUN /dev/mhi_LOOPBACK /dev/mhi_QMI0若以上设备均已被成功识别,则可以正常执行拨号操作。
拨号上网
拨号前准备
- 已为5G模块连接天线。
- 已插入SIM卡。
- 信号正常(避免信号较差导致注网失败)。
使用quectel-CM拨号
后台运行quectel-CM命令进行拨号。
root@QuectelPi:~# quectel-CM &
[2] 1303
root@QuectelPi:~# [01-01_00:07:55:168] QConnectManager_Linux_V1.6.7
[01-01_00:07:55:179] network interface '' or qmidev '' is not exist
[01-01_00:07:55:179] netcard driver = pcie_mhi, driver version = V1.3.7
[01-01_00:07:55:179] qmap_mode = 1, qmap_version = 9, qmap_size = 15360, muxid = 0x81, qmap_netcard = rmnet_mhi0.1
[01-01_00:07:55:179] Modem works in QMI mode
[01-01_00:07:55:193] /proc/1273/fd/7 -> /dev/mhi_QMI0
[01-01_00:07:55:193] /proc/1273/exe -> /usr/bin/quectel-CM
[01-01_00:07:55:193] requestDeactivateDefaultPDP WdsConnectionIPv4Handle
[01-01_00:07:55:424] ip link set dev rmnet_mhi0 down
[01-01_00:07:55:431] ip addr flush dev rmnet_mhi0.1
[01-01_00:07:55:436] ip link set dev rmnet_mhi0.1 down
[01-01_00:07:55:457] QmiWwanThread exit
[01-01_00:07:55:459] qmi_main exit
[01-01_00:07:57:196] cdc_wdm_fd = 7
[01-01_00:07:57:208] Get clientWDS = 15
[01-01_00:07:57:212] Get clientDMS = 1
[01-01_00:07:57:215] Get clientNAS = 4
[01-01_00:07:57:219] Get clientUIM = 3
[01-01_00:07:57:224] Get clientWDA = 1
[01-01_00:07:57:229] requestBaseBandVersion RM520NGLABR03A02M8G
[01-01_00:07:57:232] qmap_settings.rx_urb_size = 15360
[01-01_00:07:57:233] qmap_settings.ul_data_aggregation_max_datagrams = 11
[01-01_00:07:57:233] qmap_settings.ul_data_aggregation_max_size = 8192
[01-01_00:07:57:233] qmap_settings.dl_minimum_padding = 0
[01-01_00:07:57:248] requestGetSIMStatus SIMStatus: SIM_READY
[01-01_00:07:57:257] requestGetProfile[pdp:1 index:1] ctnet///0/IPV4V6
[01-01_00:07:57:261] requestRegistrationState2 MCC: 460, MNC: 11, PS: Attached, DataCap: 5G_SA
[01-01_00:07:57:265] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
[01-01_00:07:57:265] ip link set dev rmnet_mhi0 down
[01-01_00:07:57:272] ip addr flush dev rmnet_mhi0.1
[01-01_00:07:57:277] ip link set dev rmnet_mhi0.1 down
[01-01_00:07:57:768] requestSetupDataCall WdsConnectionIPv4Handle: 0xe27891d0
[01-01_00:07:57:783] ip link set dev rmnet_mhi0 up
[ 473.062494][ T1311] [I][mhi_netdev_open] Opened net dev interface
[01-01_00:07:57:797] ip link set dev rmnet_mhi0.1 up
[01-01_00:07:57:803] busybox udhcpc -f -n -q -t 5 -i rmnet_mhi0.1
udhcpc: started, v1.35.0
udhcpc: broadcasting discover
udhcpc: broadcasting select for 100.98.134.67, server 100.98.134.68
udhcpc: lease of 100.98.134.67 obtained from 100.98.134.68, lease time 7200
[01-01_00:07:57:883] /etc/udhcpc.d/50default: Adding DNS 202.102.213.68
[01-01_00:07:57:883] /etc/udhcpc.d/50default: Adding DNS 61.132.163.68
当底部的udhcpc获取到IP地址后,表明设备已成功获得基站分配的IP,网络连接建立成功。
接下来,使用ifconfig和ping命令验证网络连接:
root@QuectelPi:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:55:7B:B5:7D:F7
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:166
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:50 errors:0 dropped:0 overruns:0 frame:0
TX packets:50 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4632 (4.5 KiB) TX bytes:4632 (4.5 KiB)
p2p0 Link encap:Ethernet HWaddr 02:03:7F:D6:00:01
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
rmnet_mhi0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet6 addr: fe80::6921:e40e:336d:a80e/64 Scope:Link
UP RUNNING NOARP MTU:1500 Metric:1
RX packets:14 errors:0 dropped:0 overruns:0 frame:0
TX packets:23 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4464 (4.3 KiB) TX bytes:5204 (5.0 KiB)
rmnet_mhi0.1 Link encap:Ethernet HWaddr 02:50:F4:00:00:01
inet addr:100.98.134.67 Mask:255.255.255.248
inet6 addr: fe80::50:f4ff:fe00:1/64 Scope:Link
UP RUNNING NOARP MTU:1500 Metric:1
RX packets:14 errors:0 dropped:0 overruns:0 frame:0
TX packets:23 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4330 (4.2 KiB) TX bytes:5334 (5.2 KiB)
wlan0 Link encap:Ethernet HWaddr 00:03:7F:50:00:01
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
root@QuectelPi:~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=113 time=5006.075 ms
64 bytes from 8.8.8.8: seq=5 ttl=113 time=485.806 ms
64 bytes from 8.8.8.8: seq=6 ttl=113 time=190.026 ms
64 bytes from 8.8.8.8: seq=13 ttl=113 time=628.962 ms
64 bytes from 8.8.8.8: seq=14 ttl=113 time=542.605 ms
64 bytes from 8.8.8.8: seq=15 ttl=113 time=585.632 ms
64 bytes from 8.8.8.8: seq=16 ttl=113 time=796.018 ms
64 bytes from 8.8.8.8: seq=17 ttl=113 time=95.139 ms
64 bytes from 8.8.8.8: seq=18 ttl=113 time=837.369 ms
64 bytes from 8.8.8.8: seq=19 ttl=113 time=41.186 ms