2005 CM4 NAS
关键词
树莓派、CM4核心板、NAS、2.5G、NVME SSD、RPiOS、Ubuntu、OpenMediaVault
一、简介
CM4_NAS扩展板基于树莓派CM4核心板设计,通过PCIe接口扩展了三路M.2 NVMe固态硬盘,其中一路支持22110尺寸,一路支持2242和2280尺寸,还有一路支持2242和2280以及22110尺寸。同时我们还通过PCIe扩展了一路2.5G以太网,以提高M.2 NVMe固态盘的读写速度(实际无法跑满2.5G,硬盘读写典型速度150MB/s=1.2Gbps,峰值可达200MB/s=1.6Gbps,但仍远高于千兆以太网的110MB/s=0.88Gbps)。其它为树莓派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扩展RTL8125芯片的2.5G以太网接口;
3. 三路PCIe M.2 M-KEY接口,支持22110/2280/2242尺寸的固态硬盘;
4. 四路USB2.0主机口,其中三路为USB-A口,一路为1.25mm-4p接口;
5. 一路标准HDMI接口;
6. 一路DSI(22PIN,0.5mm,翻盖下接);
7. 两路CSI(22PIN,0.5mm,翻盖下接);
8. 一路TF卡座,用于无eMMC的CM4核心板启动系统用;
9. 六盏LED灯,其中三盏为SSD灯,一盏为5V电源指示灯,一盏为CM4电源指示灯,一盏为CM4运行指示灯;
10. 供电:7-24V DC直流宽电压输入;USB-C 5V3A输入,两者二选一使用。
11. 一路2.54mm-2Pin Boot跳线,用于eMMC烧写;eMMC烧写口为USB-C;
12. 两路风扇电源口,2.54mm-2P 5V和3.3V;
13.尺寸:125*135mm,PCB板沉金工艺,无铅生产,板材通过UL和ROHS认证,防火等级94V-0;
14.可选铝合金外壳,外壳带4个固定孔,方便安装,外壳尺寸为:128*155*31mm。
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 |
三、系统的烧写
本文档采用树莓派OS和Ubuntu OS进行测试。测试的系统版本如下:
▶树莓派OS的版本为2024-07-04-raspios-bookworm-arm64.img.xz,树莓派OS下载地址:
https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit
▶OpenMediaVault需要在32位的树莓派OS Lite下安装,32位的树莓派OS Lite下载地址:
https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-32-bit
▶Ubuntu OS的版本为ubuntu-24.10-preinstalled-desktop-arm64+raspi.img.xz;下载地址:
https://ubuntu.com/download/raspberry-pi
对于带eMMC的核心板,系统烧写在eMMC内,若核心板不带eMMC,则系统烧写在TF卡内。
使用带eMMC的核心板,烧写前用跳线帽短接扩展板BOOT,将扩展板上的USB-C接口连接至电脑,如下图:
烧写完成后,短路帽拔掉,重新上电,即可启动系统。
烧写方法请参阅:
四、树莓派OS的使用
4.1 以太网测试
4.1.1 原生千兆以太网
将原生千兆网口与上级路由器相连,系统会自动获取IP,打开终端,安装测速软件iperf3:
sudo apt-get install iperf3
然后我们使用iperf3进行测试:
原生千兆以太网测速结果,client模式为942Mbps左右:
server模式为946Mbps左右:
4.1.2 2.5G以太网
2.5G以太网在树莓派系统是免驱,自动识别的;我们将2.5G网口与上级路由器相连,系统会自动获取IP,然后我们使用iperf3进行测试:
2.5G以太网测速结果,client模式为1.84Gbps左右:
server模式为1.85Gbps左右:
4.1.3 设置2.5G以太网MAC地址
2.5G网口为RTL8125网卡,在使用过程中的MAC地址是不固定的,每次重新上电后MAC地址都会随机改变。下面讲解如何为RTL8125网卡设置固定MAC地址。
本讲解也适用于Ubuntu系统。
首先在树莓派终端中查看RTL8125网卡的识别信息:
ipconfig -a
这里的RTL8125网卡为eth1,实际操作中可能会因为系统识别名称不同而不同。
然后输入:
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
sudo systemctl start macspoof@eth1.service
这样就完成了对eth1的固定MAC地址。
全部操作完毕后重启系统,系统重启完毕后,执行ipconfig -a
即可看到MAC地址更改成功:
4.2 单路硬盘使用
本次测试采用三块不同的硬盘进行测试,编号及参数如下:
一号硬盘:KingSpec NE-128 128.0 GB
二号硬盘:WDC PC SN530 SDBPNPZ-256G-1002 256.0 GB
三号硬盘:INTEL MEMPEI1J016GAL 16 GB
4.2.1 硬盘识别测试
板载三路硬盘接口,树莓派系统免驱,使用命令lspci
读取硬盘信息,红框处即为读到的二号硬盘信息:
这样就证明该硬盘已被识别。
经测试,单块硬盘无论插哪个硬盘插槽都能识别;不过,树莓派系统下需要先做授权才能进一步操作:
4.2.2 硬盘接口测速
安装硬盘测速软件hdparm。在树莓派终端下运行:
sudo apt install hdparm
在树莓派终端下运行df
,查看SSD分区名为nvme0n1:
运行命令,可多次运行,测试多次硬盘速度:
sudo hdparm -t /dev/nvme0n1
第一个插槽:
第二个插槽:
第三个插槽:
测试结果:该硬盘在三个插槽中的接口速度均为360MB/s左右,即三个插槽本身的接口速度相近。
以下是三个硬盘在三个插槽中的硬盘接口速度测试结果:
接口速度单位:MB/s | 插槽1 | 插槽2 | 插槽3 |
一号硬盘 | 359 | 359 | 361 |
二号硬盘 | 387 | 389 | 389 |
三号硬盘 | 379 | 379 | 380 |
4.2.3 安装SAMBA文件共享服务
SAMBA是一个在Windows和Linux之间分享文件的软件,我们可以利用它在Windows和树莓派通过以太网传输文件,以用来测试网络的网速。
安装SAMBA软件:
sudo apt install samba
在SSD路径下建立一个新文件夹用于共享文件,并修改文件夹权限:
cd /media/mcuzone/writable
sudo mkdir ssdfiles
sudo chmod +777 ssdfiles
修改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访问,无需密码(这里设置为否)
注意:如果需要添加更多的映射文件夹,请使用相同的格式继续加上新的共享节点,其中共享文件夹说明和共享文件夹目录不要重复,本地path请按照挂载的路径填写。
创建一个名为mcuzone的用户,创建后会提示输入密码:
sudo smbpasswd -a mcuzone
重启SAMBA服务:
sudo systemctl restart smbd
然后在Windows中映射一个网络驱动器,这里以Windows11为例。
打开“此电脑”,点击“映射网络驱动器”:
按下图填入相关节点信息(IP为树莓派OS的IP):
输入刚才设置的用户名和密码:
然后就会打开设置的共享文件夹了:
注意:设置共享文件夹前一定要在树莓派OS中对SSD硬盘的分区进行授权操作,否则在设置共享文件夹时会报找不到网络名。
4.2.4 硬盘读写测速
通过2.5G网口进行测速,第一个插槽,第一个硬盘:
写:
读:
第一个插槽,第二个硬盘:写:
读:
第一个插槽,第三个硬盘:写:
读:
第二个插槽,第一个硬盘:
写:
读:
第二个插槽,第二个硬盘:
写:
读:
第二个插槽,第三个硬盘:
写:
读:
第三个插槽,第一个硬盘:
写:
读:
第三个插槽,第二个硬盘:
写:
读:
第三个插槽,第三个硬盘:
写:
读:
本次测试汇总如下:
通过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.3 两路硬盘同时使用
本次测试采用两块不同的硬盘进行测试,编号及参数如下:
一号硬盘:KingSpec NE-128 128.0 GB
二号硬盘:WDC PC SN530 SDBPNPZ-256G-1002 256.0 GB
每一类测试都分三次测试,硬盘对应插槽的如下:
插槽1 | 插槽2 | 插槽3 | |
测试1 | 一号硬盘 | 二号硬盘 | |
测试2 | 二号硬盘 | 一号硬盘 | |
测试3 | 一号硬盘 | 二号硬盘 |
4.3.1 硬盘识别测试
运行命令lspci
对硬盘进行识别测试,结果如下:
测试结果 | |
测试1 | 两个硬盘均可识别 |
测试2 | 两个硬盘均可识别 |
测试3 | 两个硬盘均可识别 |
4.3.2 硬盘接口测速
使用硬盘测速软件hdparm,测试硬盘接口速度结果如下:
接口速度单位:MB/s | 一号硬盘 | 二号硬盘 |
测试1 | 360 | 385 |
测试2 | 359 | 388 |
测试3 | 360 | 390 |
4.3.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.4 三路硬盘同时使用
本次测试采用三块不同的硬盘进行测试,编号及参数如下:
一号硬盘:KingSpec NE-128 128.0 GB
二号硬盘:WDC PC SN530 SDBPNPZ-256G-1002 256.0 GB
三号硬盘:INTEL MEMPEI1J016GAL 16 GB
3个硬盘同时插在扩展板的三个插槽上,其中,一号硬盘对应插槽1,二号硬盘对应插槽3,三号硬盘对应插槽2。
4.4.1 硬盘识别测试
运行命令lspci
对硬盘进行识别测试,结果如下:
三块硬盘均可识别。
4.4.2 硬盘接口测速
使用硬盘测速软件hdparm,测试硬盘接口速度结果如下:
接口速度单位:MB/s | 一号硬盘 | 二号硬盘 | 三号硬盘 |
测试结果 | 360 | 386 | 380 |
4.4.3 硬盘读写测速
通过2.5G网口进行硬盘读写测速:
读写速度单位:MB/s | 一号硬盘 | 二号硬盘 | 三号硬盘 | |||
写 | 读 | 写 | 读 | 写 | 读 | |
测试结果 | 170 | 215 | 170 | 205 | 169 | 204 |
通过原生千兆网口进行硬盘读写测速:
读写速度单位:MB/s | 一号硬盘 | 二号硬盘 | 三号硬盘 | |||
写 | 读 | 写 | 读 | 写 | 读 | |
测试结果 | 101 | 111 | 98 | 111 | 97 | 111 |
五、Ubuntu系统的使用
5.1 安装2.5G以太网驱动
板载2.5G以太网在Ubuntu系统下,需要安装RTL8125驱动。
将扩展板上的千兆网口连接到上级路由器,安装ifconfig工具:
sudo apt install net-tools
输入ifconfig -a
,可见此时并没有显示2.5G网卡:
接下来我们开始安装RTL8125驱动。
首先需要更新系统:
sudo apt-get update
接着准备编译环境:
sudo apt-get install --reinstall linux-headers-$(uname -r) linux-headers-generic build-essential dkms
然后安装驱动:
sudo apt-get install r8125-dkms
安装完成后输入:
sudo modprobe r8125
输入ifconfig -a
就可以看到一个enxxx的网卡接口,2.5G网卡驱动安装完毕:
5.2 原生千兆网口测试
我们将原生千兆网口连接上级路由器,系统会自动获取IP,然后我们使用iperf3进行测试:
原生千兆以太网测速结果,client模式为941Mbps左右:
server模式为929Mbps左右:
5.3 2.5G网口测试
我们将2.5G网口连接上级路由器,系统会自动获取IP,然后我们使用iperf3进行测试:
2.5G以太网测速结果,client模式为2.29Gbps左右:
server模式为1.64Gbps左右:
5.4 单块硬盘测试
经测试,Ubuntu 24.04系统能识别SSD硬盘,但是在系统内对硬盘进行操作就会死机,无法正常使用;
Ubuntu 24.10系统则可支持SSD硬盘的使用,但是系统比较挑硬盘。故我们在Ubuntu 24.10系统进行测试,尽量在保证系统稳定下做全面测试;硬盘在Ubuntu系统下只能用作存储。
5.4.1 硬盘识别测试
使用命令lspci
读取硬盘信息,红框处即为读到的单个硬盘信息:
这样就证明该硬盘已被识别。
运行命令lspci
对硬盘进行识别测试,结果如下:
硬盘编号 | 插槽1 | 插槽2 | 插槽3 | |
A硬盘: KingSpec NE-128 128.0 GB | √ | × | × | √表示识别;
×表示不识别。 |
B硬盘:SAMSUNG MZALQ128HBHQ-000L1 128.0 GB | √ | × | × | |
C硬盘:KINGSTON SNV2S250G 250.0 GB | × | × | √ | |
D硬盘:KSE128 128.0 GB | √ | √ | √ | |
E硬盘:WDC PC SN530 SDBPNPZ-256G-1002: 256.0 GB | √ | × | √ | |
F硬盘:HFS960GD0TEG-6410A 960.1 GB | √ | × | × |
5.4.2 硬盘接口速度测试
以下是使用硬盘测速软件hdparm,各个硬盘在三个插槽中的硬盘接口速度测试结果:
接口速度单位:MB/s | 插槽1 | 插槽2 | 插槽3 |
A硬盘 | 278 | ||
B硬盘 | 271 | ||
C硬盘 | 266 | ||
D硬盘 | 269 | 255 | 264 |
E硬盘 | 269 | ||
F硬盘 | 228 |
5.4.3 安装SAMBA文件共享服务
在Ubuntu下安装SAMBA服务与在树莓派OS下安装的步骤一致,请参考4.4.3节。
5.4.4 硬盘读写速度测试
读 | 写 | |
---|---|---|
通过2.5G网口对B硬盘进行读写测速,B硬盘插在插槽1上 | 244MB/S | 155MB/S |
通过千兆网口对B硬盘进行读写测速,B硬盘插在插槽1上 | 108MB/S | 105MB/S |
5.5 两块硬盘测试
本次测试采用三块不同的硬盘搭配着两两进行测试,编号及参数如下:
A硬盘:KingSpec NE-128 128.0 GB
C硬盘:KINGSTON SNV2S250G 250.0 GB
D硬盘:KSE128 128.0 GB
5.5.1 硬盘识别测试
A硬盘对应插槽1,D硬盘对应插槽2,C硬盘对应插槽3,两两插,均能识别。
运行命令lspci
对硬盘进行识别测试,结果如下:
硬盘编号 | A硬盘 | C硬盘 | D硬盘 |
A硬盘(插槽1)+D硬盘(插槽2) | √ | √ | |
A硬盘(插槽1)+C硬盘(插槽3) | √ | √ | |
D硬盘(插槽2)+C硬盘(插槽3) | √ | √ |
5.5.2 硬盘接口速度测试
使用硬盘测速软件hdparm,测试硬盘接口速度结果如下:
接口速度单位:MB/s | A硬盘 | C硬盘 | D硬盘 |
A硬盘(插槽1)+D硬盘(插槽2) | 233 | 179 | |
A硬盘(插槽1)+C硬盘(插槽3) | 172 | 219 | |
D硬盘(插槽2)+C硬盘(插槽3) | 288 | 284 |
5.5.3 硬盘读写速度测试
选取A硬盘(插槽1)+C硬盘(插槽3)的插入方式,并对A硬盘进行读写测速。
通过2.5G网口对A硬盘进行读写测速,A硬盘插在插槽1上:
读:202MB/s
写:95MB/s
通过原生千兆网口对A硬盘进行读写测速,A硬盘插在插槽1上:
读:108MB/s
写:97MB/s
选取D硬盘(插槽2)+C硬盘(插槽3)的插入方式,并对D硬盘进行读写测速。
通过2.5G网口对D硬盘进行读写测速,D硬盘插在插槽2上:
读:244MB/s
写:160MB/s
通过原生千兆网口对D硬盘进行读写测速,D硬盘插在插槽2上:
读:107MB/s
写:104MB/s
5.6 三块硬盘测试
本次测试采用三块不同的硬盘进行测试,编号及参数如下:
B硬盘:SAMSUNG MZALQ128HBHQ-000L1 128.0 GB
D硬盘:KSE128 128.0 GB
E硬盘:WDC PC SN530 SDBPNPZ-256G-1002: 256.0 GB
每一次测试都在扩展板上插满三个插槽,其中,B硬盘对应插槽1,D硬盘对应插槽2,E硬盘对应插槽3。
5.6.1 硬盘识别测试
运行命令lspci
对硬盘进行识别测试,结果如下:
选区B硬盘(插槽1)+D硬盘(插槽2)+E硬盘(插槽3)的插入方式,三块硬盘均可识别。
5.6.2 硬盘接口速度测试
使用硬盘测速软件hdparm,测试硬盘接口速度结果如下:
接口速度单位:MB/s | B硬盘 | D硬盘 | E硬盘 |
测试结果 | 277 | 248 | 262 |
5.6.3 硬盘读写速度测试
选取B硬盘(插槽1)+D硬盘(插槽2)+E硬盘(插槽3)的插入方式,并对B硬盘进行读写测速。
通过2.5G网口对B硬盘进行读写测速,B硬盘插在插槽1上:
读:205MB/s
写:150MB/s
通过原生千兆网口对B硬盘进行读写测速,B硬盘插在插槽1上:
读:112MB/s
写:105MB/s
六、NAS服务器的应用演示
【关于NAS的服务器的搭建步骤,已购买扩展板的用户可以向我们索取。】
6.1 测试NAS服务器
在同一局域网内的PC中,以Windows11为例,进入“控制面板 - 所有控制面板项 - 网络和共享中心 - 高级共享设置”,打开“启用网络发现”和“启用文件和打印机共享”:
点击“网络”,找到NAS服务器,本文中所示的为“RASPBERRYPI”:
双击此服务器,然后输入上面设置的用户名和密码,即可打开共享文件夹:
我们通过拷贝大文件进行NAS测速。下面分别是写入和读取结果:
写入:
读取:
注意:测试速度受网络状况、硬盘质量、硬盘上的文件存储情况等多种因素影响,以上测试结果仅供参考,不作为实际产品的最终参数。
6.2 多SSD共同使用测试
上面我们测试了单个SSD硬盘作为存储设备时的性能,接下来我们测试下一个SSD在不同插槽以及多个SSD共同使用时的识别情况。
6.2.1 单块硬盘测试
经测试,单块硬盘无论插哪个硬盘插槽都能识别。
6.2.2 两块硬盘测试
本次测试采用三块不同的硬盘搭配着两两进行测试,编号及参数如下:
A硬盘:KingSpec NE-128 128.0 GB
C硬盘:KINGSTON SNV2S250G 250.0 GB
D硬盘:KSE128 128.0 GB
A硬盘对应插槽1,D硬盘对应插槽2,C硬盘对应插槽3。
测试1:
A硬盘+D硬盘,即插槽1+插槽2:
两块硬盘均可识别。
测试2:
A硬盘+C硬盘,即插槽1+插槽3:
两块硬盘均可识别。
测试3:
D硬盘+C硬盘,即插槽2+插槽3:
两块硬盘均可识别。
6.2.3 三块硬盘测试
测试4:
本次测试采用三块不同的硬盘进行测试,编号及参数如下:
A硬盘:KingSpec NE-128 128.0 GB
C硬盘:KINGSTON SNV2S250G 250.0 GB
D硬盘:KSE128 128.0 GB
A硬盘对应插槽1,D硬盘对应插槽2,C硬盘对应插槽3。
将三块硬盘都插进插槽:
三块硬盘均可识别。
测试5:
本次测试采用三块不同的硬盘进行测试,编号及参数如下:
B硬盘:SAMSUNG MZALQ128HBHQ-000L1 128.0 GB
D硬盘:KSE128 128.0 GB
F硬盘:HFS960GD0TEG-6410A 960.1 GB
B硬盘对应插槽1,D硬盘对应插槽2,F硬盘对应插槽3。
将三块硬盘都插进插槽:
三块硬盘均可识别。
6.2.4 结论
在OpenMediaVault下,无论插一块或者两块或者三块硬盘,无论插在哪个插槽,系统和软件均能正常识别。
六、CM5核心板兼容性测试
启动 | 支持eMMC版本的CM5核心板,不带eMMC的CM5核心板无法从TF卡启动,但是可以从任意一个SSD接口,使用SSD启动 | ||||
外设名称 | HDMI输出 | USB2.0-A接口 | SSD读写 | 千兆以太网 | 2.5G以太网 |
是否兼容 | √ | √ | √ | √ | √ |
外设名称 | 核心板WiFi | DSI | CSI0 | CSI1 | CSI1做DSI用 |
是否兼容 | √ | √(dsi1) | × | √(cam0) | √(dsi0) |
注:√表示兼容,×表示不兼容,括号内的文字表示与CM4核心板的区别 |
联系我们
电话:13957118045
如本页面有任何疏漏、错误或者侵权,请通过上述途径联系我们,谢谢!
Copyright 2004-2025 野芯科技