跳转到内容

2005 CM4 NAS EN

来自Mcuzone Wiki

切换语言为中文

Keywords

Raspberry Pi, CM4 Core board, NAS, 2.5Gbps Ethernet, NVME SSD, RPiOS, Ubuntu, OpenMediaVault

I. Introduction

The CM4_NAS expansion board is designed based on the Raspberry Pi CM4. It expands three M.2 NVMe SSDs via the PCIe interface, with one slot supporting the 22110 form factor, another supporting 2242 and 2280, and a third supporting 2242, 2280, and 22110. We also added a 2.5Gbps Ethernet via PCIe to improve the read and write speeds of the M.2 NVMe SSD. Although the connection cannot fully utilize the 2.5Gbps bandwidth (typical SSD speeds are around 150MB/s = 1.2Gbps, with peaks up to 200MB/s = 1.6Gbps), it still significantly outperforms Gigabit Ethernet, which maxes out at about 110MB/s = 0.88Gbps. Other resources are standard for the Raspberry Pi CM4, including CSI0, CSI1, DSI1, native Gigabit Ethernet, standard HDMI, a TF card slot for booting, a 40-pin expansion interface, 3.3V and 5V fan connectors, as well as three USB 2.0-A ports and one 1.25mm 4-pin USB port for internal 4G device connectivity. This expansion board supports OS flashing to eMMC via a USB-C port. For power supply, it utilizes a DC5.5 interface and accepts a wide input voltage range of 7-24V.

The expansion board can run Raspberry Pi OS, Ubuntu OS, and OpenWrt. All three OSs support normal operation of 2.5Gbps Ethernet and NVMe SSDs. Additionally, it supports OpenMediaVault based on Raspberry Pi OS Lite for NAS storage applications.

II. Hardware Spec

1) 1*native Gigabit Ethernet.

2) 1*2.5G Ethernet via PCIe expansion with RTL8125 chip.

3) 3*PCIe M.2 M-KEY interfaces, supporting 22110/2280/2242 form factor SSDs.

4) 4*USB 2.0 host ports, including 3*USB-A ports and 1*1.25mm-4p port.

5) 1*standard HDMI port.

6) 1*DSI (22PIN, 0.5mm, flip-down connection).

7) 2*CSI (22PIN, 0.5mm, flip-down connection).

8) 1*TF card slot for booting the OS with a CM4 core module without eMMC.

9) 6*LEDs: 3*SSD activity LEDs, 1*5V power LED, 1*CM4 power LED, and 1*CM4 operation LED.

10) Power supply: 7–24V DC wide-voltage input or USB-C 5V/3A input (use either one, not both simultaneously).

11) 1*2.54mm 2-pin Boot jumper for eMMC flashing, eMMC flashing port is USB-C port.

12) 2*fan power connectors: 2.54mm 2-pin, supporting 5V and 3.3V.

13) Size: 125 × 135 mm; PCB with immersion gold process, lead-free production, UL and RoHS certified material, flame retardant rating 94V-0.

14) Optional aluminum alloy case with four mounting holes for easy installation, case size: 128 × 155 × 31 mm.

The pin definitions for the 40-pin connector, from left to right:

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

2005_CM4_NAS_84.jpg

2005_CM4_NAS_85.jpg

2005_CM4_NAS_88.jpg

III. Flash OS

This document was tested on Raspberry Pi OS and Ubuntu OS. The OS versions used for testing are as follows:

▶ The version of Raspberry Pi OS is: 2024-07-04-raspios-bookworm-arm64.img.xz.

You can download it in:

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

▶ OpenMediaVault needs to be installed on the Lite version of Raspberry Pi OS (32-bit/64-bit CLI without GUI). The download link for the 32-bit/64-bit Raspberry Pi OS Lite is:

https://www.raspberrypi.com/software/operating-systems/

▶ The version of Ubuntu OS is: ubuntu-24.10-preinstalled-desktop-arm64+raspi.img.xz.

You can download it in:

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

For a core board with eMMC, the OS is flashed into the eMMC. If the core board does not have eMMC, the OS is flashed into the TF card.

Use a core board with eMMC. Before flashing, short-circuit the BOOT jumper on the extension board with a jumper cap, then connect the USB-C port on the extension board to a computer, as shown in the figure below:

2005_CM4_NAS_87.jpg

Once the flashing process is complete, remove the shorting cap, then power on again to start the OS.

For the flashing method, please refer to:

How to flash OS

IV. Work with Raspberry Pi OS

4.1 Ethernet test

4.1.1 Ethernet connection

Connect the Gigabit Ethernet port to the upstream router, and execute ifconfig on the terminal, which displays the following:

2005_CM4_NAS_92.jpg

eth0 is a Gigabit Ethernet and has obtained an IP address.

eth1 is a 2.5Gbps Ethernet, but since no network cable is plugged in, it has not acquired an IP address.

4.1.2 Gigabit Ethernet test

Connect the Gigabit Ethernet to the upstream router. The OS will automatically obtain an IP address. Open the terminal and install the speed testing software iperf3:

sudo apt-get install iperf3

2001_CM4_Ultra_01.jpg

Then we use iperf3 for a speed test:

The Gigabit Ethernet speed test result: about 942Mbps in Client mode:

2005_CM4_NAS_01.jpg

About 946Mbps in Server mode:

4.1.3 2.5Gbps Ethernet test

The 2.5Gbps Ethernet is automatically recognized and driver-free on the Raspberry Pi OS. We connected the 2.5Gbps Ethernet to the upstream router, and the OS automatically obtained an IP address. Then, we used iperf3 to conduct a speed test:

The 2.5Gbps Ethernet speed test result: about 1.84Gbps in Client mode:

2005_CM4_NAS_03.jpg

About 1.85Gbps in Server mode:

2005_CM4_NAS_04.jpg

4.1.4 Set 2.5Gbps Ethernet MAC address

The 2.5G Ethernet port uses the RTL8125 network card, and during use, the MAC address is not fixed. Each time the device is powered on again, the MAC address changes randomly. The following explains how to set a fixed MAC address for the RTL8125 network card.

This explanation also applies to the Ubuntu system.

First, check the identification information of the RTL8125 network card in terminal:

ipconfig -a

0015_MP2_5G_28.jpg

Here, the RTL8125 network card is identified as eth1, but in practice, the name recognized by the system might be different.

Then input:

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

Or:

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

eth1 is the name recognized by the system for the network card shown above.

Executing the above command will create a new document, then enter the following text:

[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

Here, "xx:xx:xx:xx:xx:xx" represents the MAC address you wish to assign. You can determine it according to the MAC address format (make sure it does not duplicate the MAC address of other network devices). After setting it, save and exit.

Then execute the following commands to enable the service:

sudo systemctl enable macspoof@eth1.service

sudo systemctl start macspoof@eth1.service

This completes the fixation of the MAC address for eth1.

After completing all operations, restart the system. Once the system has finished rebooting, execute ipconfig -a to see that the MAC address has been successfully changed.

0015_MP2_5G_29.jpg

4.2 Single SSD test

The test was conducted using three different SSDs, with their serial numbers and parameters as follows:

SSD1: KingSpec NE-128 128.0 GB

SSD2: WDC PC SN530 SDBPNPZ-256G-1002 256.0 GB

SSD3: INTEL MEMPEI1J016GAL 16 GB

The locations of the three SSD slots on the expansion board are shown in the figure below:

2005_CM4_NAS_93.jpg

4.2.1 SSD recognition test

The onboard triple SSD interface supports plug-and-play functionality on the Raspberry Pi OS. Use the command lspci to read SSD information, where the red box indicates the information read from the SSD2:

This proves that the SSD has been recognized.

After testing, a single SSD can be recognized regardless of which slot it is plugged into. However, in the Raspberry Pi OS, authorization is required before further operations can be performed:

5002_CM5_Basic_20.jpg

4.2.2 SSD interface speed test

Install the SSD speed testing software hdparm. Execute the command in the terminal:

sudo apt install hdparm

2005_CM4_NAS_07.jpg

Execute df in the terminal to check the SSD partition named nvme0n1:

2005_CM4_NAS_08.jpg

Execute the speed test command repeatedly to measure SSD performance multiple times:

sudo hdparm -t /dev/nvme0n1

Slot1:

2005_CM4_NAS_09.jpg

Slot2:

2005_CM4_NAS_11.jpg

Slot3:

2005_CM4_NAS_10.jpg

Test results: The SSD achieved an interface speed of approximately 360MB/s (equivalent to about 2.81Gbps) across all three slots, indicating similar interface speeds for the three slots themselves.

Below are the SSD interface speed test results for three SSDs in three slots:

Interface speed unit: MB/s Slot1 Slot2 Slot3
SSD1 359 (about 2.80Gbps) 359 (about 2.80Gbps) 361 (about 2.82Gbps)
SSD2 387 (about 3.02Gbps) 389 (about 3.04Gbps) 389 (about 3.04Gbps)
SSD3 379 (about 2.96Gbps) 379 (about 2.96Gbps) 380 (about 2.97Gbps)

4.2.3 Install SAMBA for file sharing

SAMBA is a software for sharing files between Windows and Linux. We can use it to transfer files between Windows and Raspberry Pi via Ethernet to test network speed.

Install SAMBA:

sudo apt install samba

Edit the SAMBA configuration file and add a shared node:

sudo nano /etc/samba/smb.conf

Add a shared node at the end of the file:

[pi5]

comment = pi5 filesystem

path = /

available = yes

browseable = yes

public = yes

guest ok = yes

writable = yes

create mask = 0644

directory mask = 0755

valid users = mcuzone

force user = mcuzone

force group = mcuzone

The "mcuzone" in the last 3 lines represents the login username for the Raspberry Pi OS. Please modify it according to the actual username.

5007_CM5_NAS_49.jpg

After adding the content, save the file and quit.

Assign Samba access to the user "mcuzone: (a custom password will be required):

sudo smbpasswd -a mcuzone

5007_CM5_NAS_50.jpg

Test and restart the Samba service:

sudo testparm

sudo service smbd restart

sudo service nmbd restart

After completing the setup, on a PC within the same local network as the CM4_NAS expansion board (taking Windows 11 as an example), enter \192.168.8.61 in File Explorer (the address is that of the expansion board and may vary in practice). Then, enter the username and password (the password is the Samba password, not the Raspberry Pi OS login password), and you will be able to see the shared directory:

5007_CM5_NAS_51.jpg

Note: If "Remember my credentials" is enabled, changing the Samba password (via sudo smbpasswd -a mcuzone) will cause login failures on Windows. To resolve this, delete or update the credentials in Windows Credential Manager.

4.2.4 SSD R/W speed test

Speed test via 2.5Gbps Ethernet.

Slot1 and SSD1:

Write: about 164MB/s (about 1.28Gbps)

Read: about 207MB/s (about 1.61Gbps)

Slot1 and SSD2:

Write: about 171MB/s (about 1.34Gbps)

Read: about 192MB/s (about 1.50Gbps)

Slot1 and SSD3:

Write: about 159MB/s (about 1.24Gbps)

Read: about 190MB/s (about 1.48Gbps)

Slot2 and SSD1:

Write: about 161MB/s (about 1.26Gbps)

Read: about 208MB/s (about 1.63Gbps)

Slot2 and SSD2:

Write: about 208MB/s (about 1.63Gbps)

Read: about 195MB/s (about 1.52Gbps)

Slot2 and SSD3:

Write: about 163MB/s (about 1.27Gbps)

Read: about 218MB/s (about 1.70Gbps)

Slot3 and SSD1:

Write: about 151MB/s (about 1.18Gbps)

Read: about 201MB/s (about 1.57Gbps)

Slot3 and SSD2:

Write: about 175MB/s左右 (about 1.37Gbps)

Read: about 217MB/s (about 1.70Gbps)

Slot3 and SSD3:

Write: about 166MB/s (about 1.30Gbps)

Read: about 204MB/s (about 1.59Gbps)

The test summary is as follows:

Speed test for SSD R/W via 2.5Gbps Ethernet:

R/W speed units: MB/s Slot1 Slot2 Slot3
Write Read Write Read Write Read
SSD1 164 207 161 208 151 201
SSD2 171 192 208 195 175 217
SSD3 159 190 163 218 166 204
R/W speed units: Gbps Slot1 Slot2 Slot3
Write Read Write Read Write Read
SSD1 1.28 1.61 1.26 1.63 1.18 1.57
SSD2 1.34 1.50 1.63 1.52 1.37 1.70
SSD3 1.24 1.48 1.27 1.70 1.30 1.59

Note: Subsequent test results such as SSD R/W speed benchmarks will be summarized in tables without individual screenshots.

Speed test for SSD R/W via Gigabit Ethernet:

R/W speed units: MB/s Slot1 Slot2 Slot3
Write Read Write Read Write Read
SSD2 113 112 110 111 110 111
R/W speed units: Mbps Slot1 Slot2 Slot3
Write Read Write Read Write Read
SSD2 904 896 880 888 880 888

4.3 Using two SSDs simultaneously

The test was conducted using two different SSDs, with their serial numbers and parameters as follows:

SSD1: KingSpec NE-128 128.0 GB

SSD2: WDC PC SN530 SDBPNPZ-256G-1002 256.0 GB

Each type of test is divided into three rounds, with the SSDs corresponding to the slots as follows:

Slot1 Slot2 Slot3
Test1 SSD1 SSD2
Test2 SSD2 SSD1
Test3 SSD1 SSD2

4.3.1 SSD recognition test

Execute the command lspci to identify the SSDs, and the result is as follows:

Test results
Test1 Both SSDs can be recognized
Test2 Both SSDs can be recognized
Test3 Both SSDs can be recognized

4.3.2 SSD interfaces speed test

Using the SSD speed testing software hdparm, the results of the SSD interfaces speed test are as follows:

Interface speed unit: MB/s SSD1 SSD2
Test1 360 (about 2.81Gbps) 385 (about 3.01Gbps)
Test2 359 (about 2.80Gbps) 388 (about 3.03Gbps)
Test3 360 (about 2.81Gbps) 390 (about 3.05Gbps)

4.3.3 SSD R/W speed test

Speed test for SSD R/W via 2.5Gbps Ethernet:

R/W speed units: MB/s SSD1 SSD2
Write Read Write Read
Test1 165 205 155 208
Test2 160 200 160 200
Test3 170 210 173 209
R/W speed units: Gbps SSD1 SSD2
Write Read Write Read
Test1 1.29 1.60 1.21 1.63
Test2 1.25 1.56 1.25 1.56
Test3 1.33 1.64 1.35 1.63

Speed test for SSD R/W via Gigabit Ethernet:

R/W speed units: MB/s SSD1 SSD2
Write Read Write Read
Test1 106 110 109 110
Test2 110 112 109 111
Test3 110 111 108 111
R/W speed units: Mbps SSD1 SSD2
Write Read Write Read
Test1 848 880 872 880
Test2 880 896 872 888
Test3 880 888 864 888

4.4 Using three SSDs simultaneously

The test was conducted using three different SSDs, with their serial numbers and parameters as follows:

SSD1: KingSpec NE-128 128.0 GB

SSD2: WDC PC SN530 SDBPNPZ-256G-1002 256.0 GB

SSD3: INTEL MEMPEI1J016GAL 16 GB

Three SSDs are inserted into the three slots of the expansion board simultaneously, with SSD1 corresponding to Slot1, SSD2 to Slot3, and SSD3 to Slot2.

4.4.1 SSD recognition test

Execute the command lspci to identify the SSDs, and the result is as follows:

Three SSDs can be recognized.

4.4.2 SSD interfaces speed test

Using the SSD speed testing software hdparm, the results of the SSD interfaces speed test are as follows:

Interface speed unit: MB/s SSD1 SSD2 SSD3
Test results 360 (about 2.81Gbps) 386 (about 3.02Gbps) 380 (about 2.97Gbps)

4.4.3 SSD R/W speed test

Speed test for SSD R/W via 2.5Gbps Ethernet:

R/W speed units: MB/s SSD1 SSD2 SSD3
Write Read Write Read Write Read
Test results 170 215 170 205 169 204
R/W speed units: Gbps SSD1 SSD2 SSD3
Test results 1.33 1.68 1.33 1.60 1.32 1.59

Speed test for SSD R/W via Gigabit Ethernet:

R/W speed units: MB/s SSD1 SSD2 SSD3
Write Read Write Read Write Read
Test results 101 111 98 111 97 111
R/W speed units: Mbps SSD1 SSD2 SSD3
Write Read Write Read Write Read
Test results 808 888 784 888 776 888

4.5 Extend WiFi6

The SSD M.2 interface on the CM4_NAS expansion board can be converted into a WiFi interface using an NVMe to WiFi adapter to expand WiFi6 capability, compatible with AX200 or AX210.

Test results:

AX200:

When three WiFi modules are used individually, they can all connect to the internet normally. However, if two or three WiFi modules are used simultaneously, only the WiFi6 module in Slot1 remains functional.

AX210:

Whether using one, two, or three WiFi modules simultaneously, they can be freely inserted into any slot for normal operation.

V. Work with Ubuntu OS

5.1 Install the 2.5Gbps Ethernet driver

The 2.5Gbps Ethernet on the CM4_NAS expansion board requires the installation of the RTL8125 driver in Ubuntu OS.

Connect the Gigabit Ethernet on the expansion board to the upstream router and install net-tools to use ifconfig.

sudo apt install net-tools

Execute ifconfig -a, and you will see that the 2.5Gbps Ethernet is not displayed at this time:

Next, we will begin installing the RTL8125 driver:

First, you need to update the OS:

sudo apt-get update

Next, prepare the compilation environment:

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

Then install the driver:

sudo apt-get install r8125-dkms

If the OS freezes during the installation and compilation of the driver, you can limit the number of CPU cores used:

sudo MAKEFLAGS="-j2" apt-get install r8125-dkms

After installation is complete, excute:

sudo modprobe r8125

Enter ifconfig -a to see a network port called enxxx, which indicates that the 2.5Gbps Ethernet driver has been successfully installed:

5.2 Gigabit Ethernet test

Connect the Gigabit Ethernet to the upstream router. The OS will automatically obtain an IP address. Then we use iperf3 for a speed test:

The Gigabit Ethernet speed test result: about 941Mbps in Client mode:

About 929Mbps in Server mode:

5.3 2.5Gbps Ethernet test

Connect the 2.5Gbps Ethernet to the upstream router. The OS will automatically obtain an IP address. Then we use iperf3 for a speed test:

The 2.5Gbps Ethernet speed test result: about 2.29Gbps in Client mode:

About 1.64Gbps in Server mode:

5.4 Single SSD test

After testing, the Ubuntu 24.04 can recognize the SSD, but the OS freezes when performing operations on the SSD, making it unusable.

Ubuntu 24.10 supports the use of SSDs, but the system is quite selective with SSDs. Therefore, we conducted tests on the Ubuntu 24.10, aiming for comprehensive testing while ensuring OS stability; the SSD can only be used for storage in the Ubuntu OS.

The locations of the three SSD slots on the expansion board are shown in the figure below:

2005_CM4_NAS_93.jpg

5.4.1 SSD recognition test

Use the command lspci to read SSD information, where the red box indicates the information read from a single SSD:

This proves that the SSD has been recognized.

Execute the command lspci to identify and test the SSDs, with the following results:

SSD No. Slot1 Slot2 Slot3
SSD A: KingSpec NE-128 128.0 GB × × √ indicates recognition;

× indicates non-recognition.

SSD B: SAMSUNG MZALQ128HBHQ-000L1 128.0 GB × ×
SSD C: KINGSTON SNV2S250G 250.0 GB × ×
SSD D: KSE128 128.0 GB
SSD E: WDC PC SN530 SDBPNPZ-256G-1002: 256.0 GB ×
SSD F: HFS960GD0TEG-6410A 960.1 GB × ×

5.4.2 SSD interfaces speed test

Below are the SSD interface speed test results using the hdparm tool, with each SSD tested in three different slots:

Interface speed unit: MB/s Slot1 Slot2 Slot3
SSD A 278 (about 2.17Gbps)
SSD B 271 (about 2.12Gbps)
SSD C 266 (about 2.08Gbps)
SSD D 269 (about 2.10Gbps) 255 (about 1.99Gbps) 264 (about 2.06Gbps)
SSD E 269 (about 2.10Gbps)
SSD F 228 (about 1.78Gbps)

5.4.3 Install SAMBA for file sharing

The steps for installing the SAMBA service on Ubuntu OS are the same as on Raspberry Pi OS. Please refer to Section 4.2.3.

5.4.4 SSD R/W speed test

Read Write
Perform R/W speed tests on SSD B through the 2.5Gbps Ethernet,

with SSD B inserted in Slot 1

244MB/s (about 1.91Gbps) 155MB/s (about 1.21Gbps)
Perform R/W speed tests on SSD B through the Gigabit Ethernet,

with SSD B inserted in Slot 1

108MB/s (about 864Mbps) 105MB/s (about 840Mbps)

5.5 Two SSDs test

The test was conducted using three different SSDs, paired and tested in combinations of two. Their serial numbers and parameters are as follows:

SSD A: KingSpec NE-128 128.0 GB

SSD C: KINGSTON SNV2S250G 250.0 GB

SSD D: KSE128 128.0 GB

5.5.1 SSD recognition test

SSD A corresponds to Slot 1, SSD D corresponds to Slot 2, and SSD C corresponds to Slot 3. Each can be recognized when inserted pairwise.

Execute the command lspci to identify and test the SSDs, with the following results:

SSD No. SSD A SSD C SSD D
SSD A (Slot1) + SSD D (Slot2)
SSD A (Slot1) + SSD C (Slot3)
SSD D (Slot2) + SSD C (Slot3)

5.5.2 SSD interfaces speed test

Using the SSD speed testing software hdparm, the results of the SSD interface speed test are as follows:

Interface speed unit: MB/s SSD A SSD C SSD D
SSD A (Slot1) + SSD D (Slot2) 233 (about .82Gbps) 179 (about 1.40Gbps)
SSD A (Slot1) + SSD C (Slot3) 172 (about 1.34Gbps) 219 (about 1.71Gbps)
SSD D (Slot2) + SSD C (Slot3) 288 (about 2.25Gbps) 284 (about 2.22Gbps)

5.5.3 SSD R/W speed test

Select the insertion method of SSD A (Slot1) + SSD C (Slot3), and perform read/write speed tests on SSD A.

Perform R/W speed tests on SSD A through the 2.5Gbps Ethernet, with SSD A inserted in Slot1:

Read: 202MB/s, (about 1.58Gbps)

Write: 95MB/s, (about 760Mbps)

Perform R/W speed tests on SSD A through the Gigabit Ethernet, with SSD A inserted in Slot1:

Read: 108MB/s, (about 864Mbps)

Write: 97MB/s, (about 776Mbps)

Select the insertion method of SSD D (Slot2) + SSD C (Slot3), and perform read/write speed tests on SSD D.

Perform R/W speed tests on SSD D through the 2.5Gbps Ethernet, with SSD D inserted in Slot2:

Read: 244MB/s, (about 1.91Gbps)

Write: 160MB/s, (about 1.25Gbps)

Perform R/W speed tests on SSD D through the Gigabit Ethernet, with SSD D inserted in Slot2:

Read: 107MB/s, (about 856Mbps)

Write: 104MB/s, (about 832Mbps)

5.6 Three SSDs test

The test was conducted using three different SSDs , with their serial numbers and parameters as follows:

SSD B: SAMSUNG MZALQ128HBHQ-000L1 128.0 GB

SSD D: KSE128 128.0 GB

SSD E: WDC PC SN530 SDBPNPZ-256G-1002: 256.0 GB

Every test involves inserting three SSDs into the expansion board, with SSD B corresponding to Slot1, SSD D to Slot2, and SSD E to Slot3.

5.6.1 SSD recognition test

Execute the command lspci to identify and test the SSDs, with the following results:

Select the configuration with SSD B (Slot1) + SSD D (Slot2) + SSD E (Slot3). All three hard drives can be recognized.

5.6.2 SSD interfaces speed test

Using the SSD speed testing software hdparm, the results of the SSD interface speed test are as follows:

Interface speed unit: MB/s SSD B SSD D SSD E
Test results 277 (about 2.16Gbps) 248 (about 1.94Gbps) 262 (about 2.05Gbps)

Select the insertion method of SSD B (Slot1) + SSD D (Slot2) + SSD E (Slot3), and perform read/write speed tests on SSD B.

Perform R/W speed tests on SSD B through the 2.5Gbps Ethernet, with SSD B inserted in Slot1:

Read: 205MB/s, (about 1.60Gbps)

Write: 150MB/s, (about 1.17Gbps)

Perform R/W speed tests on SSD B through the Gigabit Ethernet, with SSD B inserted in Slot1:

Read: 112MB/s, (about 896Mbps)

Write: 105MB/s, (about 840Mbps)

5.7 Extend WiFi6

The SSD M.2 interface on the CM4_NAS expansion board can be converted into a WiFi interface using an NVMe to WiFi adapter to expand WiFi6 capability, compatible with AX200 or AX210. After testing, the device can connect to the internet normally when using any single WiFi module, any two modules combined, or all three modules simultaneously.

VI. Work with NAS server

6.1 Preparation

For successful installation of OpenMediaVault NAS server, use the Lite version of Raspberry Pi OS (32-bit/64-bit CLI without GUI). Other versions are incompatible.

The version of Raspberry Pi OS which we use is 2025-05-13-raspios-bookworm-armhf-lite.img.xz

Please flash the OS image to the TF card or eMMC. Use the Raspberry Pi Imager to flash the image and enable the SSH function in the preset configuration during the flashing process:

6.2 Install OpenMediaVault

Connect the Ethernet port on the CM4_NAS expansion board to the upstream router. It is recommended to use the 2.5Gbps Ethernet to maximize the functionality of the onboard network. After the OS starts, log in with the preset username and password:

Execute ifconfig, and you can see that the 2.5Gbps Ethernet has correctly obtained an IP:

The IP here is 192.168.8.79. Note: If the 2.5Gbps Ethernet is used for network connection, to prevent IP changes after each reboot, follow the instructions in Section 4.1.4 to set a fixed MAC address for this port.

Update the OS and header files:

sudo apt-get update

sudo apt-get upgrade

Once the update is finished, you can begin installing the OpenMediaVault.

Execute:

wget https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install

chmod +x install

sudo ./install -n

Note: When downloading and installing the OpenMediaVault, ensure a stable connection to websites like GitHub, as the installation process may take some time. Please wait patiently.

6.3 Configure OpenMediaVault

After the installation is complete, restart the OS. On a PC within the same local network, enter the Raspberry Pi OS's IP address (in this example, it is 192.168.8.79) into a browser to access OpenMediaVault. The default login username and password are admin and openmediavault, respectively.

Before setting up the NAS server, make sure the storage devices are correctly installed. Proceed only after installation is complete. Select "Storage", then click on "Disk". This should display all connected storage devices, including SD (TF) cards and SSDs. If nothing appears, carefully check that everything is properly inserted and restart the OS.

Here, you can see an externally connected Samsung 120G SSD.

Click "File System" under "Storage", then click "Mount Existing File System", as shown in the figure below:

Select the currently installed storage device (in this case, a 120GB Samsung SSD), then click "Save"

Save and then click "Change" in the "Pending Configuration Changes" that appear afterward to complete the mount setup.

After the mounting is completed, the interface will display an overview of the SSD.

We can repeat the above steps to mount multiple storage devices.

Click "Shared Folder" under "Storage", then click "Create":

You can name the folder here, select the drive where it should be located, and assign user permissions. By default, the permissions should be correct, but if different permissions are needed, they can be adjusted. Then save and apply the changes:

Here, multiple shared folders can be added as needed.

Next, we need to make sure the computers on the network can find the shared folder. Click "SMB/CIFS" under "Services", then click "Settings", check "Enabled", and save and apply the changes.

Then click "Share" under "SMB/CIFS", select "Create", choose the shared folder configured above, check "Enabled", and save and apply the changes.

If you need to configure multiple shared folders, please repeat the above steps.

Finally, by clicking on "User" under the "Users" section, we can set up a user for subsequent logins to the NAS server.

Note: The default user here refers to the login user of the Raspberry Pi OS, not the user logging into the OpenMediaVault (shown as the "mcuzone" user in this article). If you change this password, you will need to use the new password the next time you log in to the Raspberry Pi OS.

6.4 NAS server test

On a PC within the same local area network, taking Windows 11 as an example, navigate to "Control Panel > All Control Panel Items > Network and Sharing Center > Change advanced sharing settings", then enable "Turn on network discovery" and "Turn on file and printer sharing":

Click "Network," locate the NAS server, which is shown as "RASPBERRYPI" in this article:

2005_CM4_NAS_70.jpg

Double-click this server, then enter the username and password set above to open the shared folder:

2005_CM4_NAS_78.jpg

2005_CM4_NAS_75.jpg

Test file R/W speed under 2.5Gbps Ethernet:

Write: about 146MB/s (about 1.14Gbps)

Read: about 204MB/s (about 1.59Gbps)

Note: Testing speeds are affected by various factors such as network conditions, SSD quality, and file storage status. The above test results are for reference only and do not represent the final parameters of the actual product.

6.5 Multi-SSD concurrent usage test

Above, we tested the performance of a single SSD as the storage device. Next, we will examine how the OS recognizes one SSD in different slots and multiple SSDs working together.

6.5.1 Single SSDs test

After testing, a single SSD can be recognized no matter which slot it is inserted into.

6.5.2 Two SSDs test

The test was conducted using three different SSDs, paired and tested in combinations of two. The serial numbers and parameters are as follows:

SSD A: KingSpec NE-128 128.0 GB

SSD C: KINGSTON SNV2S250G 250.0 GB

SSD D: KSE128 128.0 GB

SSD A corresponds to Slot1, SSD D corresponds to Slot2, SSD C corresponds to Slot3.

Test1:

SSD A + SSD D (Slot1 + Slot2):

Both SSDs are detectable.

Test2:

SSD A + SSD C (Slot1 + Slot3):

Both SSDs are detectable.

Test3:

SSD D + SSD C (Slot2 + Slot3):

Both SSDs are detectable.

6.5.3 Three SSDs test

Test4:

The test was conducted using three different SSDs, with their serial numbers and parameters as follows:

SSD A: KingSpec NE-128 128.0 GB

SSD C: KINGSTON SNV2S250G 250.0 GB

SSD D: KSE128 128.0 GB

SSD A corresponds to Slot1, SSD D corresponds to Slot2, SSD C corresponds to Slot3.

Insert all three SSDs into the slots:

All three SSDs are detectable.

Test5:

The test was conducted using three different SSDs, with their serial numbers and parameters as follows:

SSD B: SAMSUNG MZALQ128HBHQ-000L1 128.0 GB

SSD D: KSE128 128.0 GB

SSD F: HFS960GD0TEG-6410A 960.1 GB

SSD B corresponds to Slot1, SSD D corresponds to Slot2, SSD F corresponds to Slot3.

Insert all three SSDs into the slots:

All three SSDs are detectable.

6.5.4 Conclusion

In OpenMediaVault, whether one, two, or three SSDs are inserted, and regardless of which slot they are plugged into, the OS and software can recognize them properly.

VII. The compatibility test of the CM5 core board

Raspberry Pi OS:

Boot Supports booting via the eMMC version of the CM5 core board. The CM5 core board without eMMC cannot boot from a TF card but can boot using an SSD via any SSD interface.
Device Name HDMI output USB2.0-A ports SSD R/W Gigabit Ethernet 2.5G Ethernet
Compatible or not?
Device Name Core Board WiFi DSI CSI0 CSI1 CSI1 used as DSI
Compatible or not? √(dsi1) × √(cam0) √(dsi0)
Note: √ = compatible, × = incompatible. The text in parentheses indicates the differences from the CM4 core board.

Contact Us

0001_x.jpg 0002_fb.jpg 0004_ytb.jpg 0003_bb.jpg 0005_qq.jpg QQ:8204136

Email: mcuzone@vip.qq.com

Tel: +86(0)13957118045

If there are any omissions, errors, or infringements on this page, please contact us through the above methods. Thank you!

Copyright 2004-2025 Wildchip