2005 CM4 NAS(三路固态硬盘扩展板)

来自Mcuzone Wiki

关键词

树莓派、CM4核心板、系统烧写、2.5G、SSD、RPiOS、Ubuntu、OpenMediaVault

一、简介

CM4_NAS扩展板基于CM4核心板设计,通过PCIe接口扩展了三路M.2 NVMe固态硬盘,其中一路支持2210尺寸,一路支持2242和2280尺寸,还有一路支持2242和2280以及2210尺寸。同时我们还通过PCIe扩展了一路2.5G以太网,以提高M.2 NVMe固态盘的读写速度(实际无法跑满2.5G,硬盘读写典型速度150MB/s,但仍远高于千兆以太网的110MB/s)。其它为CM4标准资源,包括CSI0、CSI1、DSI1、原生千兆、标准HDMI、启动用TF卡槽、40Pin扩展接口、3.3V和5V风扇插头,以及3路USB2.0-A和1路1.25mm 4pin接口USB用于内部4G设备连接。可通过USB-C接口用于eMMC烧写。扩展板采用DC5.5接口,支持7-24V电压输入。

扩展板可运行树莓派OS、Ubuntu、以及OpenWrt系统。这三个系统下均可正常使用2.5G网络和NVMe固态盘。另外支持基于树莓派OS Lite的OpenMediaVault用做NAS网络硬盘应用。

二、硬件资源

1. 一路原生千兆网口;

2. 一路由PCIE支持的2.5G以太网接口;

3. 一路支持4K分辨率的标准HDMI口;

4. 三路USB2.0主机口;

5. 一路内置USB2.0;

6. 一路USB-C烧写口;

7. 两路CSI(22PIN,0.5mm,翻盖下接);

8. 一路DSI(22PIN,0.5mm,翻盖下接);

9. 三路PCIe M-KEY接口,支持2210尺寸规格的固态硬盘;

10. TF卡座。

40pin引脚定义从左到右依次为:

5V 5V GND G14 G15 G18 GND G23 G24 GND G25 G08 G07 IDSC GND G12 GND G16 G20 G21
3V3 G02 G03 G04 GND G17 G27 G22 3V3 G10 G09 G11 GND IDSD G05 G06 G13 G19 G26 GND

三、系统烧写及设置

3.1 概述

本文档采用树莓派OS和Ubuntu系统进行测试。

1. 树莓派OS的版本为2024-07-04-raspios-bookworm-arm64.img.xz,树莓派OS下载地址:

https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit

2. 另外OpenMediaVault需要在32位的树莓派OS Lite下安装,32位的树莓派OS Lite下载地址:

https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-legacy

3. Ubuntu系统的版本为ubuntu-24.04-preinstalled-desktop-arm64+raspi.img.xz,下载地址:

https://ubuntu.com/download/raspberry-pi

3.2 从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

0005_MPS2242_2280_03.jpg

需要使用预设置的按“是”,不需要使用预设置的按“不”,进入下一页,点击“是”,就开始烧写及验证完整性,烧写完毕后按提示取下卡即可。

0005_MPS2242_2280_04.jpg

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

3.2.2 使用balenaEtcher烧写

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

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

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

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

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

0005_MPS2242_2280_05.jpg

3.2.3 启动系统

将TF卡从读卡器中取下,塞进树莓派开发版的TF卡卡槽,上电后即可进入系统。

3.3. 从eMMC启动

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

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

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

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

使用USB Type C-A数据线将扩展板上的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

等烧写完成后,将之前插上的跳线帽拔下来,然后重新给系统上电,待系统启动即可。

四、树莓派OS下的硬件测试

4.1 原生千兆网口测试

我们将网线插入原生千兆网口,系统会自动获取IP,打开终端,安装测速软件iperf3:

sudo apt-get install iperf3

2001_CM4_Ultra_01.jpg

然后我们使用iperf3进行测试:

原生千兆以太网测速结果,client模式为942Mbps左右:

2005_CM4_NAS_01.jpg

server模式为946Mbps左右:

2005_CM4_NAS_02.jpg

4.2 2.5G网口测试

我们将网线插入2.5G网口,系统会自动获取IP,然后我们使用iperf3进行测试:

2.5G以太网测速结果,client模式为1.84Gbps左右:

2005_CM4_NAS_03.jpg

server模式为1.85Gbps左右:

2005_CM4_NAS_04.jpg

4.3 固定2.5G网口的MAC地址

2.5G网口为RTL8125网卡,在使用过程中的MAC地址是不固定的,每次重新上电后MAC地址都会随机改变。下面讲解如何为RTL8125网卡设置固定MAC地址。

本讲解也适用于Ubuntu系统。

首先在树莓派终端中查看RTL8125网卡的识别信息:

ipconfig -a

0009_MP2_5GD_46.jpg

这里两块RTL8125网卡分别为eth1和eth2,实际操作中可能会因为系统识别名称不同而不同。

然后输入:

sudo mousepad /etc/systemd/system/macspoof@eth1.service

或:

sudo nano /etc/systemd/system/macspoof@eth1.service

eth1为上面显示的网卡识别名称。

运行上面的命令后会新建一个文档,输入以下文本:

[Unit]

Description=MAC Address Change %I

Wants=network-pre.target

Before=network-pre.target

BindsTo=sys-subsystem-net-devices-%i.device

After=sys-subsystem-net-devices-%i.device

[Service]

Type=oneshot

ExecStart=/usr/bin/ip link set dev %i address xx:xx:xx:xx:xx:xx

ExecStart=/usr/bin/ip link set dev %i up

[Install]

WantedBy=multi-user.target

其中“xx:xx:xx:xx:xx:xx”为想要指定的MAC地址,可以按MAC地址格式自行确定(不要和其它网络设备重复),设置完成后保存并退出。

随后输入下面的命令使能服务:

sudo systemctl enable macspoof@eth1.service

这样就完成了对eth1的固定MAC地址。

对如eth2这样的其它网卡,也是按照上述步骤进行操作。

全部操作完毕后重启系统,系统重启完毕后,执行ipconfig -a即可看到MAC地址更改成功:

0009_MP2_5GD_47.jpg

4.4 单块硬盘测试

本次测试采用三块不同的硬盘进行测试,编号及参数如下:

一号硬盘:KingSpec NE-128 128.0 GB

二号硬盘:WDC PC SN530 SDBPNPZ-256G-1002 256.0 GB

三号硬盘:INTEL MEMPEI1J016GAL 16 GB

4.4.1 硬盘识别测试

经测试,单块硬盘无论插哪个硬盘插槽都能识别,树莓派系统下需要先做授权才能进一步操作:

2005_CM4_NAS_05.jpg

2005_CM4_NAS_06.jpg

4.4.2 硬盘接口速度测试

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

sudo apt install hdparm

2005_CM4_NAS_07.jpg

在树莓派终端下运行df,查看SSD分区名为nvme0n1:

2005_CM4_NAS_08.jpg

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

sudo hdparm -t /dev/nvme0n1

第一个插槽:

2005_CM4_NAS_09.jpg

第二个插槽:

2005_CM4_NAS_11.jpg

第三个插槽:

2005_CM4_NAS_10.jpg

测试结果:该硬盘在三个插槽中的接口速度均为360MB/s左右,即三个插槽本身的接口速度相近。

以下是三个硬盘在三个插槽中的硬盘接口速度测试结果:

接口速度单位:MB/s 插槽1 插槽2 插槽3
一号硬盘 359 359 361
二号硬盘 387 389 389
三号硬盘 379 379 380

4.4.3 安装SAMBA文件共享服务

安装SAMBA软件:

sudo apt install samba

2005_CM4_NAS_22.jpg

在SSD路径下建立一个新文件夹用于共享文件,并修改文件夹权限:

cd /media/mcuzone/writable

sudo mkdir ssdfiles

sudo chmod +777 ssdfiles

2005_CM4_NAS_23.jpg

修改SAMBA配置文件,添加共享节点:

sudo mousepad /etc/samba/smb.conf

在文件末尾加上共享节点:

[ssd]

# 共享文件夹说明

comment = ssd

# 共享文件夹目录

path = /media/mcuzone/writable/ssdfiles/

# 需要映射的共享目录的挂载路径

browseable = yes

# 可被其他人看到资源名称(非内容,这里设置为是)

writable = yes

# 可写

create mask = 0777

# 新建文件的权限为 777

directory mask = 0777

# 新建目录的权限为 777

public = no

# guest访问,无需密码(这里设置为否)

2005_CM4_NAS_24.jpg

注意:如果需要添加更多的映射文件夹,请使用相同的格式继续加上新的共享节点,其中共享文件夹说明和共享文件夹目录不要重复,本地path请按照挂载的路径填写。

创建一个名为mcuzone的用户,创建后会提示输入密码:

sudo smbpasswd -a mcuzone

2005_CM4_NAS_25.jpg

重启SAMBA服务:

sudo systemctl restart smbd

2005_CM4_NAS_26.jpg

然后在Windows中映射一个网络驱动器,这里以Windows11为例。

打开“此电脑”,点击“映射网络驱动器”:

2005_CM4_NAS_27.jpg

按下图填入相关节点信息(IP为树莓派OS的IP):

2005_CM4_NAS_28.jpg

输入刚才设置的用户名和密码:

2005_CM4_NAS_29.jpg

然后就会打开设置的共享文件夹了:

2005_CM4_NAS_32.jpg

4.4.4 硬盘读写速度测试

通过2.5G网口进行测速,第一个插槽,第一个硬盘:

写:

2005_CM4_NAS_30.jpg

读:

2005_CM4_NAS_31.jpg

第一个插槽,第二个硬盘:写:

2005_CM4_NAS_33.jpg

读:

2005_CM4_NAS_34.jpg

第一个插槽,第三个硬盘:写:

2005_CM4_NAS_35.jpg

读:

2005_CM4_NAS_36.jpg

第二个插槽,第一个硬盘:

写:

2005_CM4_NAS_43.jpg

读:

2005_CM4_NAS_44.jpg

第二个插槽,第二个硬盘:

写:

2005_CM4_NAS_45.jpg

读:

2005_CM4_NAS_46.jpg

第二个插槽,第三个硬盘:

写:

2005_CM4_NAS_47.jpg

读:

2005_CM4_NAS_48.jpg

第三个插槽,第一个硬盘:

写:

2005_CM4_NAS_37.jpg

读:

2005_CM4_NAS_38.jpg

第三个插槽,第二个硬盘:

写:

2005_CM4_NAS_39.jpg

读:

2005_CM4_NAS_40.jpg

第三个插槽,第三个硬盘:

写:

2005_CM4_NAS_41.jpg

读:

2005_CM4_NAS_42.jpg

本次测试汇总如下:

通过2.5G网口进行硬盘读写测速:

读写速度单位:MB/s 插槽1 插槽2 插槽3
一号硬盘 164 207 161 208 151 201
二号硬盘 171 192 208 195 175 217
三号硬盘 159 190 163 218 166 204

注:接下来的硬盘读写测速等测试结果将以表格形式汇总,不再单独贴图。

通过原生千兆网口进行硬盘读写测速:

读写速度单位:MB/s 插槽1 插槽2 插槽3
二号硬盘 113 112 110 111 110 111

4.5 两块硬盘测试

本次测试采用两块不同的硬盘进行测试,编号及参数如下:

一号硬盘:KingSpec NE-128 128.0 GB

二号硬盘:WDC PC SN530 SDBPNPZ-256G-1002 256.0 GB

每一类测试都分三次测试,硬盘对应插槽的如下:

插槽1 插槽2 插槽3
测试1 一号硬盘 二号硬盘
测试2 二号硬盘 一号硬盘
测试3 一号硬盘 二号硬盘

4.5.1 硬盘识别测试

硬盘识别测试结果如下:

测试结果
测试1 两个硬盘均可识别
测试2 两个硬盘均可识别
测试3 两个硬盘均可识别

4.5.2 硬盘接口速度测试

使用硬盘测速软件hdparm,测试硬盘接口速度结果如下:

接口速度单位:MB/s 一号硬盘 二号硬盘
测试1 360 385
测试2 359 388
测试3 360 390

4.5.3 硬盘读写速度测试

通过2.5G网口进行硬盘读写测速:

读写速度单位:MB/s 一号硬盘 二号硬盘
测试1 165 205 155 208
测试2 160 200 160 200
测试3 170 210 173 209

通过原生千兆网口进行硬盘读写测速:

读写速度单位:MB/s 一号硬盘 二号硬盘
测试1 106 110 109 110
测试2 110 112 109 111
测试3 110 111 108 111

4.6 三块硬盘测试

本次测试采用三块不同的硬盘进行测试,编号及参数如下:

一号硬盘:KingSpec NE-128 128.0 GB

二号硬盘:WDC PC SN530 SDBPNPZ-256G-1002 256.0 GB

三号硬盘:INTEL MEMPEI1J016GAL 16 GB

每一次测试都在扩展板上插满三个插槽,其中,一号硬盘对应插槽1,二号硬盘对应插槽3,三号硬盘对应插槽2。

4.6.1 硬盘识别测试

硬盘识别测试结果如下:

三块硬盘均可识别。

4.6.2 硬盘接口速度测试

使用硬盘测速软件hdparm,测试硬盘接口速度结果如下:

接口速度单位:MB/s 一号硬盘 二号硬盘 三号硬盘
测试结果 360 386 380

4.6.3 硬盘读写速度测试

通过2.5G网口进行硬盘读写测速:

读写速度单位:MB/s 一号硬盘 二号硬盘 三号硬盘
测试结果 170 215 170 205 169 204

通过原生千兆网口进行硬盘读写测速:

读写速度单位:MB/s 一号硬盘 二号硬盘 三号硬盘
测试结果 101 111 98 111 97 111

五、Ubuntu系统下使用演示

5.1 安装2.5G以太网驱动

CM4_NAS扩展板上的2.5G网口在Ubuntu系统下不能即插即用,需要安装RTL8125驱动。

使用网线连接CM4_NAS扩展板上的千兆网口。

Ubuntu系统默认不安装ifconfig工具,所以需要手动安装:

sudo apt install net-tools

0008_MPS2_5G_13.jpg

输入ifconfig -a,可见此时并没有显示2.5G网卡:

2005_CM4_NAS_12.jpg

接下来我们开始安装RTL8125驱动。

首先需要更新系统:

sudo apt-get update

2005_CM4_NAS_13.jpg

接着准备编译环境:

sudo apt-get install --reinstall linux-headers-$(uname -r) linux-headers-generic build-essential dkms

2005_CM4_NAS_14.jpg

然后安装驱动:

sudo apt-get install r8125-dkms

2005_CM4_NAS_15.jpg

安装完成后输入:

sudo modprobe r8125

2005_CM4_NAS_16.jpg

输入ifconfig -a就可以看到一个enxxx的网卡接口,这样就安装完毕2.5G网卡驱动:

2005_CM4_NAS_17.jpg

5.2 原生千兆网口测试

我们将网线插入原生千兆网口,系统会自动获取IP,然后我们使用iperf3进行测试:

原生千兆以太网测速结果,client模式为941Mbps左右:

2005_CM4_NAS_20.jpg

server模式为929Mbps左右:

2005_CM4_NAS_21.jpg

5.3 2.5G网口测试

我们将网线插入2.5G网口,系统会自动获取IP,然后我们使用iperf3进行测试:

2.5G以太网测速结果,client模式为2.29Gbps左右:

2005_CM4_NAS_18.jpg

server模式为1.64Gbps左右:

2005_CM4_NAS_19.jpg

5.4 单块硬盘测试

5.4.1 硬盘识别测试

经测试,单块硬盘无论插哪个硬盘插槽都能识别。

以下是三个硬盘在三个插槽中的硬盘接口速度测试结果:

六、NAS服务器的应用演示

6.1 系统选择

为了能够正确安装NAS服务器,软件平台请选择32位Lite版本(即不带GUI的32位命令行版本),其他版本将无法正常安装OpenMediaVault。系统镜像下载地址:

https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-32-bit

本文所使用的镜像版本为:2024-07-04-raspios-bookworm-armhf-lite.img.xz

将系统烧写进TF卡或者eMMC,注意,请用树莓派镜像烧录器烧写,并在烧写时开启预设置中的SSH功能:

2005_CM4_NAS_49.jpg

6.2 安装2.5G以太网驱动

CM4_NAS扩展板上的2.5G网口在Lite版本的树莓派系统下不能即插即用,需要安装RTL8125驱动。

使用网线连接CM4_NAS扩展板上的千兆网口,系统启动后用预置的用户名和密码登录:

50

然后输入ifconfig -a,查看千兆网口的ip:

51

这里的ip是192.168.8.112,为了操作方便,建议使用PC端的SSH软件连接系统,我们使用MobaXterm进行连接:

52

接下来进行2.5G以太网驱动的安装。

首先在官网下载好r8125驱动,下载地址:

https://www.realtek.com/Download/List?cate_id=584

这里下载的版本为r8125-9.013.02.tar.bz2,下载完毕后通过SSH软件等工具将驱动放置在系统的/tmp目录下。

也可以在本公司的网站上下载该版本驱动:

wget -O /tmp/r8125-9.013.02.tar.bz2 http://www.mcuzone.com/wiki/2005_CM4_NAS/r8125-9.013.02.tar.zip

53

更新系统和头文件:

sudo apt-get update

sudo apt-get upgrade

54

55

安装Kernel Headers:

sudo apt install raspberrypi-kernel-headers

56