5G PCIe网卡

Quectel Pi H1智能主控板可通过PCIe接口搭配转接板连接5G网卡,本文介绍借助PCIe转接板连接RG520NGL-AA PCIe网卡的具体方法。

硬件接口

image-20251126135111447

快速开始

将RG520NGL-AA PCIe网卡转接线完全均匀地插入智能主控板的PCIe端口后,从两侧向下推动PCIe接口的支架,将PCIe转接线牢牢固定到位。再使用一根TYPE-C To USB线接入windows电脑(此时您可能需要安装驱动,驱动文件由模块技术支持提供,请按照对应模组选择合适的驱动文件安装)。

功能使用

PCIe模块配置

使用PCIe直通转接卡,需要把模块设置成PCIe-EP模式,这样才能和Quectel Pi H1的PCIe接口通信。安装模块驱动后,通过转接板的USB口连接5G模块,输入AT指令,将其切换到PCIe-EP模式。

1.在设备管理器中确认端口,找到显示为“Quectel USB AT Port (COM***)”的端口,然后使用串口工具打开该AT端口。

AT+QCFG="data_interface",1,0
AT+QCFG="pcie/mode",0
AT+QCFG="usbnet",2
AT+CFUN=1,1

2.执行完指令,拔掉PC端口的USB线,重新给Quectel Pi上电之后,通过shell口使用如下命令,判断设备是否正常识别并连接。

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
root@QuectelPi:~# ls /dev/mhi*
/dev/mhi_BHI  /dev/mhi_DIAG  /dev/mhi_DUN  /dev/mhi_LOOPBACK  /dev/mhi_QMI0

若以上设备均已被成功识别,则可以正常执行拨号操作。

拨号上网

要使用quectel-CM工具进行拨号上网,首先需为5G模块连接天线,插入SIM卡,避免信号较差无法注网。

确认无误后,直接后台运行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