2009 CM4/CM5 SSD WiFi6
关键词
树莓派CM4核心板、CM5核心板、千兆以太网、RPiOS、Ubuntu、NVMe SSD、DSI、CSI、抓包、WiFi6
一、简介
CM4_SSD_WiFi6扩展板是一款基于树莓派CM4核心板设计的由一路PCIE扩展出来的两路PCIe的NVME SSD和WiFi6扩展板。
CM4_SSD_WiFi6扩展板具有一路PCIE M.2 M-KEY接口,用于外扩SSD和一路PCIEM.2 A-KEY接口,可安装WiFi6模块。引出了一路原生千兆以太网、一路2-lane DSI0接口、一路4-lane CSl1接口、一路标准尺寸的HDMI接口,支持4K输出及一路TF卡座,且扩展了三路USB2.0主机A口和一路USB主机1.25 4pin接口。此外引出与树莓派4B相同定义的2.54mm 2x20pin的GPIO引脚,用于常规外设扩展。
此扩展板也可以改造成双wifi扩展板,即将NVME接口外接NVME转wifi转接板,即可实现。此扩展板也支持WLANPI OS,实现WiFi抓包,监控等功能。
此扩展板同时也支持树莓派CM5核心板。
二、硬件资源
1. 一路原生千兆以太网接口,采用一体式变压器,电磁性能更好;
2. 一路PCIE M.2 M-KEY NVMe SSD接口,支持2242、2280尺寸规格的固态硬盘;
3. 一路PCIE M.2A-KEY WIFI6接口,支持WiFi6和WiFi6E(可选配AX200/AX210),可选配M.2A转2.5G千兆网卡;
4. 三路USB2.0主机A口,一路USB2.0主机(1.25mm-4PIN),可选配CM4 4G Mini和5G Mini模块;
5. 一路4-lane CS11(22PIN,0.5mm,翻盖下接);
6. 一路2-lane DSl0(22PIN,0.5mm,翻盖下接);
7. 一路标准HDMI接口(分辨率可达4K);
8. 一路TF卡座,仅用于不带eMMC版本的CM4核心板存放系统;
9. 一路USB Type-C供电(5V3A)及烧写接口;
10 一路风扇供电接口5V 2.54mm-2p;
11. 40pin GPIO引脚,与树莓派4B完全兼容;
12. 标配铝合金外壳。
树莓派CM4/CM5_SSD_WiFi6扩展版+CM4核心板+CM4散热片+侧涡轮散热风扇:
树莓派CM4/CM5_SSD_WiFi6扩展版+CM4核心板+CM4散热片+4G Mini模块:
PCIE M.2转千兆2.5G网卡:
三、烧写系统
本文档采用树莓派OS和Ubuntu系统进行测试。
1. 树莓派OS的版本为2024-11-19-raspios-bookworm-arm64.img.xz,树莓派OS下载地址:
https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit
2. Ubuntu系统的版本为ubuntu-24.10-preinstalled-desktop-arm64+raspi.img.xz,
Ubuntu系统下载地址:
https://ubuntu.com/download/raspberry-pi
3.1 TF卡的烧写
树莓派CM4核心板分2个大类,一类是不带eMMC版本,仅限从TF卡启动系统;一类是带eMMC版本,仅限从eMMC启动系统,那对应扩展板上的TF卡将无效。
3.2.1 使用树莓派镜像烧录器烧写
首先在Windows端安装树莓派镜像烧录器,下载地址:https://www.raspberrypi.com/software/
安装完毕后,将TF卡通过读卡器插入PC,然后打开软件:
Raspberry Pi Device: | Raspberry Pi 4 |
请选择需要写入的操作系统: | 选择Raspberry Pi OS(64-bit),为从树莓派官网下载系统镜像烧写(需联网);
选择Use Custom,则需要自行选择硬盘上已经下载的系统镜像(无需联网); |
储存卡: | 选择所需烧入的TF卡(即插在PC的USB接口的卡) |
选择完毕后按“NEXT”,建议点击“编辑设置”,将一些参数预设置进烧写软件,之后在系统启动时就不必再次设置,便于使用。
需要使用预设置的按“是”,不需要使用预设置的按“不”,进入下一页。
点击“是”,就开始烧写及验证完整性。
以上介绍的是烧写树莓派OS,烧写Ubuntu系统或者OpenWrt系统也是用类似的操作,只是在“请选择需要写入的操作系统”时,需要选择Use Custom,然后选择预先下载的镜像即可。
3.2.2 使用balenaEtcher烧写
首先在Windows端安装balenaEtcher,下载地址:https://etcher.balena.io/#download-etcher
打开软件:
从文件烧录: | 选择预先下载的树莓派OS或者Ubuntu系统镜像 |
选择目标磁盘: | 选择所需烧入的TF卡(即插在PC的USB接口的卡) |
然后点击“现在烧录!”,就开始烧录了,等待烧录完毕即可。
烧写完毕后,将TF卡插入扩展板,上电后即可进入系统。
3.2 eMMC的烧写
若核心板板载eMMC,则系统从eMMC启动,板载TF卡将无效。
首先要安装核心板的驱动,驱动包可以从树莓派官方下载,也可以从我们公司官网下载,下载地址:
http://www.mcuzone.com/down/Software.asp?ID=10000623
驱动安装好后,硬件连接如下:
01
打开计算机的设备管理器,查看是否有新的USB设备出现。在下图中的是名称为“BCM2711 Boot”的USB设备:
PC的开始菜单的所有程序下,Raspberry Pi下面有个rpiboot:
打开这个软件,计算机会将emmc或者TF卡格式化并分区:
稍等片刻,在资源管理器中会出现一个分区(本例中的分区名为bootfs,具体名称视实际情况而不同):
接下来我们就可以使用balenaEtcher软件对这个分区进行烧写了。
打开balenaEtcher软件,第一项点击“从文件烧录”,选择你要烧录到eMMC的文件,第二项选择上面的那个bootfs分区,然后点击“现在烧录”,就开始烧录文件了:
烧写完成后,把短路帽都拔掉,重新上电,启动系统即可。
3.3 注意事项
1. 如果使用树莓派系统,系统启动后卡死或者键盘鼠标无法使用,请在PC端打开TF卡系统分区根目录下的config.txt检查USB的初始化脚本,如果是烧写在eMMC上,则请在烧写完毕后,再次使用一次rpiboot工具使系统分区显示出来,然后打开系统分区根目录下的config.txt检查USB的初始化脚本:
然后按照下面红框所示的两处进行修改:
2. 如果使用Ubuntu系统,系统启动后键盘鼠标无法使用,请在PC端打开TF卡系统分区根目录下的config.txt检查USB的初始化脚本,如果是烧写在eMMC上,则请在烧写完毕后,再次使用一次rpiboot工具使系统分区显示出来,然后打开系统分区根目录下的config.txt检查USB的初始化脚本。
需要确认下图中的红框处是否配置完全,如果没有,请手动添加完整并保存文件:
也可以将红框处这一行删除后保存文件:
3. Ubuntu系统的desktop版本对硬件要求较高,如果核心板只有1G内存,有可能在运行时速度很慢甚至死机,建议使用内存为2G或以上的核心板进行安装使用。
四、树莓派OS的操作
4.1 测试USB口
在树莓派终端中执行lsusb
及lsusb -t
,显示如下:
003是接了USB 读卡器;004是接了无线键鼠;007是接了U盘,此时表示三个USB2.0-A口,识别都正常。若USB无外接设备,则不会出现设备编号。
Bus 01为为USB 2.0接口,480M,工作模式也正常。
4.2 测试SSD硬盘
CM4的PCIe经过switch一扩二以后,板载SSD不支持硬盘启动系统,只能作为数据存储用。将SSD硬盘插入扩展板,上电启动系统。
在树莓派终端中执行lspci
,查看SSD硬盘信息:
执行lsblk
,我们可以看到这个SSD分区名为nvme0n1p1:
默认状态下,SSD硬盘运行在 PCIe Gen2下,不支持CIe Gen3。
安装硬盘测速软件hdparm,在树莓派终端下运行:
sudo apt install hdparm
运行接口测速命令,可多次运行,测试多次硬盘速度:
sudo hdparm -t /dev/nvme0n1
因SSD和WiFi6是由一路PCIe通过switch一分为二,所以反映到SSD上就会对速度有所影响,测试结果如下:
次数 | 传输速度MB/s | 传输速度Gbps |
1 | 375.85 | 3.01 |
2 | 374.47 | 3.00 |
3 | 378.77 | 3.03 |
4 | 376.61 | 3.01 |
5 | 375.08 | 3.00 |
平均 | 376.16 | 3.01 |
4.3 测试WiFi6(AX210)
对于树莓派CM4核心板自带WiFi和扩展板外扩的WiFi,树莓派OS只支持外扩或自带的WiFi中的其中一种,因此若想用WiFi6,建议选不带WiFi的CM4核心板。若使用带WiFi功能的树莓派CM4核心板,在安装WiFi6驱动后,核心板自带的WiFi模块将自动关闭,无法使用。
我们测试用的是AX210,同时也适用于AX200。启动系统后,树莓派终端中执行lspci
,即可看到:
4.3.1 安装驱动
在树莓派终端下更新头文件:
sudo apt install -y raspberrypi-kernel-headers firmware-iwlwifi flex yacc
然后下载源码:
mkdir wifi && cd wifi
wget http://www.mcuzone.com/wiki/2004_CM4_WiFi7/backport-iwlwifi-20231029.tar.bz2
sudo tar -xvf backport-iwlwifi-20231029.tar.bz2
准备编译环境:
sudo make defconfig-iwlwifi-public
sudo sed -i 's/CPTCFG_IWLMVM_VENDOR_CMDS=y/# CPTCFG_IWLMVM_VENDOR_CMDS is not set/' .config
编译源码:
sudo make -j 4
sudo make install
注意,编译时如果使用-j 4出现死机或者报错,请使用-j 2或者-j 1进行编译。
安装完成后提示重启系统,请重启:
sudo reboot
4.3.2 测试WiFi6
重启系统后,我们就可以在网络连接里面使用WiFi6模块连接无线AP了:
注意,此时核心板自带的WiFi模块已自动关闭,被WiFi6模块所取代。
点击桌面右上角网络图标 - Advanced Options - Connection Information...,在网络连接的信息中,我们也可以看到这个驱动为iwlwifi的网络连接(如果是核心板自带的无线网卡,驱动会显示为brcmfmac):
在树莓派终端中执行ifconfig -a
,结果如下:
这里的wlan0为WiFi6模块。
我们使用网速测试软件iperf3进行测速。
Windows版iperf3下载:
http://www.mcuzone.com/down/Software.asp?ID=10000634
Linux下iperf3安装:
sudo apt-get install iperf3
测速所使用的硬件设备:
路由器为小米BE6500 Pro(WiFi6/7+四口2.5G路由器),扩展板距离路由器约1米。
扩展板的AX210连接WiFi6无线网络(5G热点),与同一路由器下的Windows系统进行iperf3测速。
扩展板作为client,单线程测速:
速度为为505Mbps左右。
30个线程测速:
速度为为1.31Gbps左右。
扩展板作为server,单线程测速:
速度为为557Mbps左右。
30个线程测速:
扩展板作为server,单线程测速:
速度为为1.97Gbps左右。
单线程(Mbps) | 30线程(Gbps) | |
Client | 505 | 1.31 |
Server | 557 | 1.97 |
注意:网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。
4.3.3 双无线网卡测试
4.3.3.1 双WiFi6测试
此扩展板可以改造成双WiFi6扩展板,将NVMe接口配一个我司配套的NVMe转WiFi6转接板,即可实现双无线网卡:
网络连接显示如下:
AX200网络详情(接在WiFi6接口上,为主网卡,wlan0):
AX210网络详情(接在NVMe转WiFi6转接板上,为副网卡,wlan1):
在树莓派终端中执行ifconfig -a
,结果如下:
我们使用网速测试软件iperf3进行测速,结果如下:
单线程(Mbps) | 30线程(Gbps) | |
AX200 Client | 403 | 0.57 |
AX200 Server | 457 | 1.05 |
AX210 Client | 521 | 1.40 |
AX210 Server | 564 | 1.72 |
注意:网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。
4.3.3.2 WiFi6和WiFi7测试
此扩展板可以改造成一路WiFi6和一路WiFi7的双WiFi扩展板,将NVMe接口配一个我司配套的NVMe转WiFi7转接板,即可实现双无线网卡:
为BE200安装固件:
在树莓派OS下,BE200需要安装固件,AX200/210不需要,安装BE200的固件后,不影响AX200/210的使用
在树莓派终端下执行:
cd ..
cd Downloads
wget http://www.mcuzone.com/wiki/0011_MPW7/firmware_wifi7.zip
unzip firmware_wifi7.zip
sudo cp iwlwifi-gl-c0-fm-c0-86.ucode /lib/firmware
sudo cp iwlwifi-gl-c0-fm-c0.pnvm /lib/firmware
最后重启系统:
sudo reboot
重启完毕后,我们就可以在网络连接里面使用两个模块连接无线AP了,方法同WiFi6.
网络连接显示如下:
AX210网络详情(接在WiFi6接口上,为主网卡,wlan0):
BE200网络详情(接在NVMe转WiFi7转接板上,为副网卡,wlan1):
在树莓派终端中执行ifconfig -a
,结果如下:
我们使用网速测试软件iperf3进行测速,结果如下:
单线程(Mbps) | 15线程(Mbps) | |
AX210 Client | 494 | 953 |
AX210 Server | 441 | 948 |
BE200 Client | 460 | 958 |
BE200 Server | 426 | 881 |
注意:网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。
4.4 测试以太网口
将网口接上级路由器,树莓派OS终端执行ifconfig -a
,显示如下:
这里的eth0为板载千兆网卡。
使用iperf3对千兆网口进行测速:
client模式为943Mbps左右:
server模式为949Mbps左右:
注意:原生千兆网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。
4.5 测试DSI
4.5.1 树莓派官方第一代液晶屏
这里使用的是树莓派官方第一代液晶屏进行测试,液晶屏需要独立供电。
连接好硬件后,给扩展板上电。等待系统运行后打开终端,运行下列命令:
sudo nano /boot/firmware/config.txt
在文件末尾加入下列语句:
dtoverlay=vc4-kms-dsi-7inch,dsi0
保存后重启系统,即可使用树莓派官方7寸触摸屏。
4.5.2 树莓派官方第二代液晶屏
这里使用的是树莓派官方第二代液晶屏进行测试,液晶屏需要独立供电。
连接好硬件后,给扩展板上电。等待系统运行后打开终端,运行下列命令:
sudo nano /boot/firmware/config.txt
在文件末尾加入下列语句:
dtoverlay=vc4-kms-dsi-ili9881-7inch,dsi0
保存后重启系统,即可使用树莓派官方二代7寸触摸屏。
4.5.3 注意事项
注意1:如果同时插HDMI显示器和7寸触摸屏,7寸触摸屏有可能变成副屏,只要关机后将HDMI显示器拔掉,再启动系统,7寸触摸屏就会成为主屏。
注意2:添加的语句实际上开启了第二块显示屏,即双屏显示,无论第二块屏的硬件是否安装,系统都有可能认为存在双屏,如果使用PrtScn截图,也会截到双屏的图。甚至还有可能造成系统无法启动。因此如果不需要使用这块屏,建议在config.txt中把这条语句去掉或者注释掉。
4.6 测试CSI
这里测试用的摄像头是OV5647,摄像头连接好后,给板子上电。等待系统运行后打开终端,运行下列命令:
sudo nano /boot/firmware/config.txt
在文件末尾加入下列语句:
dtoverlay=ov5647,cam0
在实际使用中根据自己的型号进行添加,保存后重启系统,即可使用OV5647摄像头。
重启后在终端中输入:
ls /dev/video*
即可看到video0设备:
在终端中输入libcamera-hello --camera 0
即可打开对应的摄像头浏览:
如果需要拍照,则输入:
libcamera-jpeg -o test.jpg
照片保存在/home/mcuzone
目录下(即用户主目录),照片效果如下:
五、Ubuntu OS的操作
5.1 测试USB口
在Ubuntu终端中执行lsusb
及lsusb -t
,显示如下:
Decice 003是接无线键鼠、004是接U盘、005是接USB读卡器,这表示三个USB2.0-A口,识别都正常,如果USB没有外接设备,则lsusb后只出现Hub,不会出现设备号。
Bus 001为USB 2.0接口,480M,工作模式也正常。
5.2 测试SSD硬盘
将SSD硬盘插入扩展板,上电启动系统。在终端中执行lspci
,查看SSD硬盘信息:
执行lsblk
,我们可以看到这个SSD分区名为nvme0n1p1:
默认状态下,SSD硬盘运行在 PCIe Gen2下,不支持CIe Gen3。
安装硬盘测速软件hdparm,在Ubuntu终端下运行:
sudo apt install hdparm
运行接口测速命令,可多次运行,测试多次硬盘速度:
sudo hdparm -t /dev/nvme0n1
因SSD和WiFi6是由一路PCIe通过switch一分为二,这样反映到SSD上就会对速度有所影响,测试结果如下:
次数 | 传输速度MB/s |
1 | 332.30 |
2 | 295.68 |
3 | 331.57 |
4 | 337.63 |
5 | 327.38 |
6 | 317.33 |
7 | 336.66 |
8 | 335.89 |
平均 | 326.81 |
5.3 测试WiFi6
5.3.1 单无线网卡测试
在Ubuntu系统下,AX200及AX210无线模组免驱,即插即用。
扩展板上插AX210,启动系统后在树莓派终端中执行lspci
,即可看到:
点击桌面右上角图标,可见WiFi已经激活,点击WiFi图标旁的箭头,可以选择热点进行连接:
输入热点密码,连接成功后,在终端中执行ifconfig -a
,结果如下:
这里的wlp3s0为WiFi6模块。
我们使用网速测试软件iperf3进行测速。
测速所使用的硬件设备:
路由器为小米BE6500 Pro(WiFi6/7+四口2.5G路由器),扩展板距离路由器约1米。
扩展板的AX210连接WiFi6无线网络(5G热点),与同一路由器下的Windows系统进行iperf3测速。
测试结果如下:
单线程(Mbps) | 30线程(Gbps) | |
AX210 Client | 491.00 | 1.80 |
AX210 Server | 493.00 | 1.66 |
注意:网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。
5.3.2 双无线网卡测试
此扩展板可改造为双WiFi扩展板,即通过NVME接口,配一个我司配套的NVME转WiFi6转接板,即可实现双无线网卡。
在WiFi6接口插入一块AX200无线网卡,SSD转WiFi6转接板上插入一块AX210无线网卡,网络连接显示如下:
上图已经连接热点的网卡为原AX210网卡,未连接热点的网卡为新加的AX200网卡,将AX200网卡也连接上热点,在终端中执行ifconfig -a
,结果如下:
这里的wlp3s0为AX210模块,wlp4s0为AX200模块。
我们使用网速测试软件iperf3进行测速。测试结果如下:
单线程(Mbps) | 30线程(Gbps) | |
AX200 Client | 492.00 | 1.80 |
AX200 Server | 537.00 | 1.63 |
AX210 Client | 487.00 | 1.58 |
AX210 Server | 503.00 | 1.53 |
注意:网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。
5.4 测试以太网口
将网口接上级路由器,终端执行ifconfig -a
,显示如下:
这里的eth0为板载千兆网卡。
使用iperf3对千兆网口进行测速:
client模式为936Mbps左右:
server模式为938Mbps左右:
注意:原生千兆网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。
5.5 测试DSI
5.5.1 树莓派第一代液晶屏
这里使用的是树莓派官方第一代液晶屏进行测试,液晶屏需要独立供电。
连接好硬件后,给扩展板上电。等待系统运行后打开终端,运行下列命令:
sudo nano /boot/firmware/config.txt
在文件末尾加入下列语句:
dtoverlay=vc4-kms-dsi-7inch,dsi0
保存并退出后,重启系统,即可使用树莓派官方7寸触摸屏。
5.5.2 树莓派第二代液晶屏
5.6 测试CSI
六、CM5核心板兼容性测试
启动 | 仅支持eMMC版本的CM5核心板,不带eMMC的CM5核心板无法从TF卡启动 | ||||
SSD启动 | CM4核心板不支持SSD启动系统,CM5(无eMMC)核心板支持SSD启动。 | ||||
外设名称 | HDMI输出 | USB2.0-A接口 | SSD | 千兆以太网 | 核心板WiFi |
是否兼容 | √ | √ | √ | √ | √ |
外设名称 | DSI | CSI | 单WiFi6 | 双WiFi6 | |
是否兼容 | √ | √ | √ | × | |
注:√表示兼容,×表示不兼容 |
七、WLAN Pi系统的使用
我们测试的WLAN Pi系统版本为:wlanpi-os_v3.3.0-2025-02-17.zip;
WLAN Pi下载地址:https://www.wlanpi.com/downloads
7.1 WLAN Pi系统下使用单无线模块
经测试,适配WLAN Pi的无线模块有:
WiFi6:AX200、AX210;
WiFi7:BE200(需NVME转WiFi7转接板配套使用)。
单无线模块下使用WLAN Pi系统的操作参考我司CM4 WIFi6扩展板,链接如下:
无线模块无论插在原生WiFi6接口,还是通过转接板插在SSD接口皆可使用,且不需要做额外的设置。
7.2 WLAN Pi系统下使用双无线模块
在WLAN Pi系统下,无线模块的作用是在PROFILER中作为抓包工具使用,PROFILER默认使用wlan0作为抓包工具;原WiFi6接口的模块(AX210)为wlan0,NVME转WiFI6转接板上的模块(AX200)为wlan1。
在COCKPIT的终端中运行ifconfig -a
,如下图所示:
此时我们运行:
wifichannel 6
sudo profiler -c 12
结果如下:
从MAC地址可以得知,此时的抓包是通过AX210,即wlan0进行的。
如果需要用AX200进行抓包,我们需要运行下列命令,将wlan0和wlan1交换:
sudo ip link set wlan0 name wlan2
sudo ip link set wlan1 name wlan0
sudo ip link set wlan2 name wlan1
然后运行ifconfig -a
,如下图所示:
从MAC地址可以得知,此时wlan0为AX200,运行:
wifichannel 6
sudo profiler -c 12
结果如下:
从MAC地址可以得知,此时的抓包是通过AX200,即wlan0进行的。
如果需要恢复默认状态(即通过AX210进行抓包),只需重启系统即可。
联系我们
电话:13957118045
如本页面有任何疏漏、错误或者侵权,请通过上述途径联系我们,谢谢!
Copyright 2004-2025 野芯科技