2009 CM4/CM5 SSD WiFi6

来自Mcuzone Wiki

关键词

树莓派、CM4核心板、千兆以太网、RPiOS、Ubuntu、SSD、NVMe SSD、PCIe、DSI、CSI、OV5647、WiFi6

一、简介

CM4_SSD+WiFi6扩展板

二、硬件资源

三、烧写系统

本文档采用树莓派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的USB口,然后打开软件:

Raspberry Pi Device:选择Raspberry Pi 4;

请选择需要写入的操作系统:选择Raspberry Pi OS(64-bit),为从树莓派官网下载系统镜像烧写(需联网);选择Use Custom,则需要自行选择硬盘上已经下载的系统镜像(无需联网);

储存卡:选择所需烧入的TF卡(即插在PC的USB接口的卡);

0005_MPS2242_2280_01.jpg

选择完毕后按“NEXT”,建议点击“编辑设置”,将一些参数预设置进烧写软件,之后在系统启动时就不必再次设置,便于使用。

0005_MPS2242_2280_02.jpg

5001_CM5_WiFi7-PoE_08.jpg

5001_CM5_WiFi7-PoE_09.jpg

需要使用预设置的按“”,不需要使用预设置的按“”,进入下一页。

点击“”,就开始烧写及验证完整性。

0005_MPS2242_2280_04.jpg

以上介绍的是烧写树莓派OS,烧写Ubuntu系统或者OpenWrt系统也是用类似的操作,只是在“请选择需要写入的操作系统”时,需要选择Use Custom,然后选择预先下载的镜像即可。

3.2.2 使用balenaEtcher烧写

首先在Windows端安装balenaEtcher,下载地址:https://etcher.balena.io/#download-etcher

将TF卡插入读卡器,读卡器插入PC的USB口,然后打开软件:

从文件烧录:选择预先下载的树莓派OS或者Ubuntu系统镜像;

选择目标磁盘:选择所需烧入的TF卡(即插在PC的USB接口的卡);

然后点击“现在烧录!”,就开始烧录了,等待烧录完毕即可。

2001_CM4_Ultra_69.jpg

2001_CM4_Ultra_70.jpg

3.2.3 启动系统

烧写完毕后,将TF卡从读卡器中取下,插入CM4_SSD+WiFi6扩展板的TF卡卡槽,上电后即可进入系统。

3.2 eMMC的烧写

如果核心板具有板载eMMC,则系统将会忽略TF卡,而从eMMC启动。

要烧写系统到eMMC,首先需要在PC上安装驱动包,下载地址:

http://www.mcuzone.com/down/Software.asp?ID=10000623

然后使用跳线帽短接扩展板BOOT脚和GND脚(WiFi6接口旁边):

01

使用USB Type A-C数据线将扩展板上的USB OTG接口(即扩展板的USB-C口)连接至电脑,连接上电脑之后,打开计算机的设备管理器,查看是否有新的USB设备出现。在下图中的是名称为“BCM2711 Boot”的USB设备:

2001_CM4_Ultra_65.jpg

PC的开始菜单的所有程序下,Raspberry Pi下面有个rpiboot:

2001_CM4_Ultra_66.jpg

打开这个软件,计算机会将emmc或者TF卡格式化并分区:

2001_CM4_Ultra_68.jpg

稍等片刻,在资源管理器中会出现一个分区(本例中的分区名为bootfs,具体名称视实际情况而不同):

2001_CM4_Ultra_67.jpg

接下来我们就可以使用balenaEtcher软件对这个分区进行烧写了。

打开balenaEtcher软件,第一项点击“从文件烧录”,选择你要烧录到eMMC的文件,第二项选择上面的那个bootfs分区,然后点击“现在烧录”,就开始烧录文件了:

2001_CM4_Ultra_69.jpg

2001_CM4_Ultra_70.jpg

烧写完成后,把短路帽都拔掉,重新上电,启动系统即可。

3.3 注意事项

1. 如果使用树莓派系统,系统启动后卡死或者键盘鼠标无法使用,请在PC端打开TF卡系统分区根目录下的config.txt检查USB的初始化脚本,如果是烧写在eMMC上,则请在烧写完毕后,再次使用一次rpiboot工具使系统分区显示出来,然后打开系统分区根目录下的config.txt检查USB的初始化脚本:

0007_Zero_4G_Cat1_41.jpg

然后按照下面红框所示的两处进行修改:

2006_CM4_UART_CAN_59.jpg

2. 如果使用Ubuntu系统,系统启动后键盘鼠标无法使用,请在PC端打开TF卡系统分区根目录下的config.txt检查USB的初始化脚本,如果是烧写在eMMC上,则请在烧写完毕后,再次使用一次rpiboot工具使系统分区显示出来,然后打开系统分区根目录下的config.txt检查USB的初始化脚本。

需要确认下图中的红框处是否配置完全,如果没有,请手动添加完整并保存文件:

2006_CM4_UART_CAN_60.jpg

也可以将红框处这一行删除后保存文件:

2006_CM4_UART_CAN_61.jpg

3. Ubuntu系统的desktop版本对硬件要求较高,如果核心板只有1G内存,有可能在运行时速度很慢甚至死机,建议使用内存为2G或以上的核心板进行安装使用。

四、树莓派OS的操作

4.1 测试USB口

在树莓派终端中执行lsusblsusb -t,显示如下:

2009_CM4_SSD_WiFi6_02.jpg

Bus 001的Decice 003、004、007表示三个USB2.0-A口,识别都正常。

Bus 01为为USB 2.0接口,480M,工作模式也正常。

4.2 测试SSD硬盘

将SSD硬盘插入CM4_SSD+WiFi6扩展板的M.2接口,上电启动系统。

在树莓派终端中执行lspci,查看SSD硬盘信息(红框处):

2009_CM4_SSD_WiFi6_03.jpg

执行df,我们可以看到这个SSD分区名为nvme0n1p1(红框处):

2009_CM4_SSD_WiFi6_04.jpg

默认状态下,SSD硬盘运行在 PCIe Gen2下,不支持CIe Gen3。

安装硬盘测速软件hdparm,在树莓派终端下运行:

sudo apt install hdparm

运行接口测速命令,可多次运行,测试多次硬盘速度:

sudo hdparm -t /dev/nvme0n1

因为板子上的SSD接口和WiFi6接口实际上是由一路PCIe通过一个switch一分为二,这样反映到SSD上就会对速度有所影响,测试结果如下:

2009_CM4_SSD_WiFi6_05.jpg

次数 传输速度MB/s
1 375.85
2 374.47
3 378.77
4 376.61
5 375.08
平均 376.16

4.3 测试WiFi6

树莓派官方系统核心板自带WiFi和PCIe扩展WiFi共存,因此,若使用带WiFi功能的树莓派CM4核心板,在安装WiFi6驱动后,核心板自带的WiFi模块将自动关闭,无法使用。在此也建议可以使用不带WiFi的CM4核心板。

在WiFi6接口中插入一块WiFi6无线网卡(本文档以AX210为例),启动系统后在树莓派终端中执行lspci,红框处即为AX210 WiFi9模组:

2009_CM4_SSD_WiFi6_06.jpg

4.3.1 安装驱动

在树莓派终端下更新头文件:

sudo apt install -y raspberrypi-kernel-headers firmware-iwlwifi flex yacc

5001_CM5_WiFi7-PoE_19.jpg

然后下载源码:

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

5001_CM5_WiFi7-PoE_20.jpg

准备编译环境:

sudo make defconfig-iwlwifi-public

sudo sed -i 's/CPTCFG_IWLMVM_VENDOR_CMDS=y/# CPTCFG_IWLMVM_VENDOR_CMDS is not set/' .config

5001_CM5_WiFi7-PoE_21.jpg

编译源码:

sudo make -j 4

sudo make install

注意,编译时如果使用-j 4出现死机或者报错,请使用-j 2或者-j 1进行编译。

5001_CM5_WiFi7-PoE_22.jpg

5001_CM5_WiFi7-PoE_23.jpg

安装完成后提示重启系统,请重启:

sudo reboot

4.3.2 测试WiFi6

重启系统后,我们就可以在网络连接里面使用WiFi6模块连接无线AP了:

5001_CM5_WiFi7-PoE_25.jpg

注意,此时核心板自带的WiFi模块已自动关闭,被WiFi6模块所取代。

点击桌面右上角网络图标 - Advanced Options - Connection Information...,在网络连接的信息中,我们也可以看到这个驱动为iwlwifi的网络连接(如果是核心板自带的无线网卡,驱动会显示为brcmfmac):

2009_CM4_SSD_WiFi6_07.jpg

2009_CM4_SSD_WiFi6_08.jpg

在树莓派终端中执行ifconfig -a,结果如下:

2009_CM4_SSD_WiFi6_09.jpg

这里的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路由器),CM4_SSD+WiFi6扩展板距离路由器约1米。

扩展板的AX210连接WiFi6无线网络(5G热点),与同一路由器下的Windows系统进行iperf3测速。

扩展板作为client,单线程测速:

2009_CM4_SSD_WiFi6_10.jpg

速度为为505Mbps左右。

30个线程测速:

2009_CM4_SSD_WiFi6_11.jpg

速度为为1.31Gbps左右。

扩展板作为server,单线程测速:

2009_CM4_SSD_WiFi6_12.jpg

速度为为557Mbps左右。

30个线程测速:

扩展板作为server,单线程测速:

2009_CM4_SSD_WiFi6_13.jpg

速度为为1.97Gbps左右。

单线程(Mbps) 30线程(Gbps)
Client 505 1.31
Server 557 1.97

注意:网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。

4.3.3 双无线网卡测试

另外也可以通过在SSD接口上安装一块SSD转WiFi6转接板,然后将无线网卡插入该转接板,重启即可正常使用无线网卡。此时原有的WiFi6接口还可以插一块无线网卡,实现双无线网卡。

在WiFi6接口插入一块AX200无线网卡,SSD转WiFi6转接板上插入一块AX210无线网卡,网络连接显示如下:

2009_CM4_SSD_WiFi6_14.jpg

AX200网络详情:

2009_CM4_SSD_WiFi6_15.jpg

AX210网络详情:

2009_CM4_SSD_WiFi6_16.jpg

在树莓派终端中执行ifconfig -a,结果如下:

2009_CM4_SSD_WiFi6_17.jpg

我们使用网速测试软件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.4 测试以太网口

将网线插入扩展板的原生千兆网口,执行ifconfig -a,显示如下:

2009_CM4_SSD_WiFi6_18.jpg

这里的eth0为板载千兆网卡。

使用iperf3对千兆网口进行测速:

client模式为943Mbps左右:

2009_CM4_SSD_WiFi6_19.jpg

server模式为949Mbps左右:

2009_CM4_SSD_WiFi6_20.jpg

注意:原生千兆网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。

4.5 测试DSI

4.5.1 树莓派第一代液晶屏测试

这里使用的是树莓派官方第一代液晶屏进行测试,液晶屏需要独立供电。

连接好硬件后,给扩展板上电。等待系统运行后打开终端,运行下列命令:

sudo nano /boot/firmware/config.txt

在文件末尾加入下列语句:

dtoverlay=vc4-kms-dsi-7inch,dsi0

5001_CM5_WiFi7-PoE_33.jpg

保存后重启系统,即可使用树莓派官方7寸触摸屏。

4.5.2 树莓派第二代液晶屏测试

这里使用的是树莓派官方第二代液晶屏进行测试,液晶屏需要独立供电。

连接好硬件后,给扩展板上电。等待系统运行后打开终端,运行下列命令:

sudo nano /boot/firmware/config.txt

在文件末尾加入下列语句:

dtoverlay=vc4-kms-dsi-ili9881-7inch,dsi0

2009_CM4_SSD_WiFi6_21.jpg

保存后重启系统,即可使用树莓派官方二代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

5001_CM5_WiFi7-PoE_35.jpg

在实际使用中根据自己的型号进行添加,保存后重启系统,即可使用OV5647摄像头。

重启后在终端中输入:

ls /dev/video*

即可看到video0设备:

2009_CM4_SSD_WiFi6_22.jpg

在终端中输入libcamera-hello --camera 0即可打开对应的摄像头浏览:

2009_CM4_SSD_WiFi6_23.jpg

如果需要拍照,则输入:

libcamera-jpeg -o test.jpg

照片保存在/home/mcuzone目录下(即用户主目录),照片效果如下:

2009_CM4_SSD_WiFi6_24.jpg

五、Ubuntu OS的操作

六、CM5核心板兼容性测试

启动 仅支持eMMC版本的CM5核心板,不带eMMC的CM5核心板无法从TF卡启动
外设名称 HDMI输出 USB2.0-A接口 SSD 千兆以太网 核心板WiFi
是否兼容
外设名称 DSI CSI 单WiFi6 双WiFi6
是否兼容 ×
注:√表示兼容,×表示不兼容,括号内的文字表示与CM4核心板的区别