5007 CM5 NAS EN
Keywords
Raspberry Pi, CM5 Core board, NAS, Gigabit Ethernet, 2.5G Ethernet, 4*PCIe, CSI, DSI, RTC, PWM, USB2.0, USB3.0, NVME SSD, RPiOS
I. Introduction
The CM5_NAS expansion board is designed based on the Raspberry Pi CM5 core board, utilizing a PCIe Switch chip to expand four PCIe lanes, which include one 2.5Gbps Ethernet port and three NVMe SSD interfaces. 2.5Gbps Ethernet can fully utilize SSD performance. The expansion board also features two USB 3.0 ports and standard Raspberry Pi peripherals such as HDMI, Gigabit Ethernet, CAM, and DISP. The CM5_NAS expansion board is suitable for various NAS-like mass storage applications. It can also be connected to the Halio8 AI module or utilize an SSD-to-WiFi adapter board to support WiFi7 connectivity. The expansion board adopts a DC5.5 interface and supports a wide voltage input range of 9-24V.
The expansion board supports Raspberry Pi OS and OpenWrt, with full functionality of the 2.5G network and NVMe SSD under both OSs. It also supports OpenMediaVault running on Raspberry Pi OS Lite for NAS use.
II. Hardware Spec
1) 1*native Gigabit Ethernet port.
2) 1*expands to 2.5Gbps Ethernet via RTL8125.
3) 3*PCIe M.2 M-Key slots, supporting NVMe SSDs in 2230/2242/2260/2280/22110 form factors.
4) 2*native USB 3.0-A HOST.
5) 1*USB 2.0-A HOST (1*1.25mm-4P connector is also provided, which can be used to expand the built-in 4G module. This is the native OTG port's HOST function, and it can only be used simultaneously with the USB-C port one at a time).
6) 1*standard-sized HDMI port, supporting 4K output.
7) 2*CSI/DSI combo interface, can be used to connect cameras or displays.
8) 1*TF card slot, only used for system booting on core boards without eMMC.
9) 6*LEDs, including three SSD LEDs, one 5V power LED, one CM5 power LED, and one CM5 operation LED.
10) 1*PWM fan interface (1mm-4Pin).
11) 1*RTC Interface (1.25mm-2Pin).
12) 1*Boot jumper (2.54mm-2Pin) used for CM5's on-board eMMC/TF card flashing.
13) 1*USB-C port, used as the onboard eMMC flashing port for the CM5. This is a native OTG port and can also serve as a power supply port (5V/3A).
14) 1*2.54mm 40-pin GPIO expansion header, fully compatible with Raspberry Pi 5's 40-pin GPIO interface.
15) Power Supply: 9-24V DC 5.5-2.1 port, wide-range DC input, or USB-C 5V/3A input (use either one, not both simultaneously).
16) Sizes: 125*135mm, 4-layer PCB design, lead-free, UL and ROHS certified, flame resistance rating 94V-0.
17) Optional aluminum alloy casing, sizes: 128*138 (155 with bracket) *32mm.
The 40-pin pinout is defined sequentially from left to right as:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2pin | 5V | 5V | GND | G14 | G15 | G18 | GND | G23 | G24 | GND | G25 | G08 | G07 | IDSC | GND | G12 | GND | G16 | G20 | G21 |
1pin | 3V3 | G02 | G03 | G04 | GND | G17 | G27 | G22 | 3V3 | G10 | G09 | G11 | GND | IDSD | G05 | G06 | G13 | G19 | G26 | GND |
III. Flash OS
▶We use the Raspberry Pi OS, the OS version is 2024-11-19-raspios-bookworm-arm64.img.xz.
You can download it in:
https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit
For core boards with eMMC, the OS is flashed onto the eMMC. If the core board does not have eMMC, the OS is flashed onto the TF card or NVMe SSD.
Use a core board with eMMC. Before flashing the OS, please connect the power USB-C interface to the computer and short the BOOT jumper on the board:
Note: During OS flashing, do not connect any devices to the USB2.0-A port or the 1.25mm-4p interface behind it, otherwise the PC will not recognize the core board.
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:
IV. Work with Raspberry Pi OS
4.1 Test USB ports
4.1.1 USB port detection test
Plug the USB device into the USB port of the expansion board:
Execute the command lsusb
in the terminal:
If there are no external devices connected to the USB ports, the corresponding device numbers will not appear—only the USB hub will be shown.
Note: If the USB-C port is used as a 5V3A power input, the USB2.0-A port cannot be used (the USB2.0-A and USB-C ports are actually the native OTG ports of the CM5, and only one can be used at a time).
Then execute lsusb -t
to check whether the USB ports are operating in the correct mode.
Bus 02/04: 2*USB 3.0 ports with 5000Mbps speed.
Bus 05: USB 2.0 port with 480Mbps speed.
4.1.2 USB 3.0 test
Insert a USB 3.0 external hard drive into the USB 3.0 Type-A port on the expansion board, then start the OS.
Install the hard disk speed testing software hdparm:
sudo apt install hdparm
▶Testing USB hard drive interface speed:
Execute df
in the terminal to view the SSD partition information.
We can see the SSD partition named sda1.
Execute the speed test command repeatedly to measure disk performance multiple times:
sudo hdparm -t /dev/sda1
First USB3.0-A port:
No. | Transmission speed(MB/s) |
1 | 347.91 |
2 | 347.41 |
3 | 346.62 |
4 | 350.15 |
5 | 347.96 |
Avg. | 348.01 (about 2.72Gbps) |
Second USB3.0-A port:
Execute df
in the terminal and the SSD partition named sdb1.
Execute the speed test command repeatedly to measure disk performance multiple times:
sudo hdparm -t /dev/sdb1
No. | Transmission speed(MB/s) |
1 | 341.96 |
2 | 362.91 |
3 | 350.65 |
4 | 361.29 |
5 | 350.67 |
Avg. | 353.50 (about 2.76Gbps) |
▶Testing USB hard drive read/write speed:
Plug two USB 3.0 hard drives into each of the two USB 3.0-A ports; then use the Linux dd
command to copy a large file (a single file) between the two drives. The test results are as follows:
Data transfer direction | Time(s) | Transmission speed(MB/s) | Transmission speed(Gbps) | Packet size(Mb) |
SSD1->SSD2 | 29.16 | 342.94 | 2.68 | 10000 |
SSD2->SSD1 | 28.94 | 345.54 | 2.70 | 10000 |
With speed close to that of a USB hard drive connection.
▶Test the speed of a 2.5G USB Ethernet adapter:
Connect a 2.5G USB network adapter to a USB 3.0 Type-A port and perform a speed test with a PC on the same local network.
We use the network speed testing tool iperf3 for speed tests.
Download iperf3 for Windows:
http://www.mcuzone.com/down/Software.asp?ID=10000634
Install iperf3 on Linux:
sudo apt-get install iperf3
First USB3.0-A port:
Client mode is around 2.34Gbps:
Server mode is around 1.78Gbps:
Second USB3.0-A port:
Client mode is around 2.34Gbps:
Server mode is around 1.78Gbps:
Note: Network speed tests are affected by the network environment and testing methods. Please refer to the actual speed, as this test is for reference only.
4.1.3 USB 2.0 ports test
▶Testing USB hard drive interface speed:
Plug a USB 3.0 external hard drive into a USB 2.0-A port, run df
, and the SSD partition name is sda1.
Install the hard disk speed testing software hdparm:
sudo apt install hdparm
Execute the speed test command repeatedly to measure disk performance multiple times:
sudo hdparm -t /dev/sda1
No. | Transmission speed(MB/s) |
1 | 43.32 |
2 | 43.46 |
3 | 43.30 |
4 | 43.47 |
5 | 43.30 |
Avg. | 43.37 (about 0.34Gbps) |
▶Testing USB hard drive read/write speed:
Between the hard disk and eMMC, using the Linux dd
command to copy a large file (a single file), the test results are as follows:
Data transfer direction | Time(s) | Transmission speed(MB/s) | Transmission speed(Gbps) | Packet size(Mb) |
SSD->eMMC | 48.30 | 41.41 | 0.32 | 2000 |
eMMC->SSD | 38.97 | 51.32 | 0.40 | 2000 |
With speed close to that of a USB hard drive connection.
▶Test the speed of a 2.5G USB Ethernet adapter:
Connect a 2.5G USB network adapter to a USB 2.0 Type-A port and perform a speed test with a PC on the same local network.
Client mode is around 347Mbps:
Server mode is around 368Mbps:
Note: Network speed tests are affected by the network environment and testing methods. Please refer to the actual speed, as this test is for reference only.
4.2 NVMe SSD test
The CM5_NAS is equipped with 3 NVMe SSD slots, where M1 is an independent slot, and M2 and M3 are staggered (upper and lower) slots. Note: SATA SSDs are not supported.
Slot M1 supports SSDs in three lengths: 2242, 2280, and 22110.
Slot M2 supports SSDs in three lengths: 2242, 2280, and 22110.
Slot M3 supports SSDs in three lengths: 2230, 2242, and 2280.
Note: When both the M2 and M3 slots are used simultaneously, only the following combinations are supported.
Slot | Length | Slot | Length | |
Combination1 | M2 | 2242 | M3 | 2230 |
Combination2 | M2 | 2242 | M3 | 2242 |
Combination3 | M2 | 22110 | M3 | 2230 |
Combination4 | M2 | 22110 | M3 | 2242 |
Combination5 | M2 | 22110 | M3 | 2280 |
When using both M.2 and M.3 together, an extension bracket is needed if the M.2 slot is to support a 2280 SSD.
4.2.1 SSD for data storage
The CM5 core board we use for testing comes with eMMC. Insert the SSD into the expansion board, power on to boot the OS, and execute lspci
in the terminal to check the SSD information.
Then you need to authorize the SSD. In File Manager, click on the SSD partition, and an authorization dialog will pop up. Enter the current account password to authorize.
Note: The first partition requires password authorization upon clicking; others only need a click.
After authorization, the partitions will appear on the desktop.
Execute df
in the terminal to view the SSD partition information.
We can see two SSD partitions named nvme0n1p1 and nvme0n1p2.
4.2.2 Test a single SSD
Insert an SSD into each of the three SSD slots, and it is correctly recognized in all of them.
Execute the speed test command repeatedly to measure disk performance multiple times:
sudo hdparm -t /dev/nvme0n1p1
No. | Transmission speed(MB/s) |
1 | 429.80 |
2 | 429.79 |
3 | 430.05 |
4 | 429.93 |
5 | 429.98 |
Avg. | 429.91 (about 3.36Gbps) |
4.2.3 Test two SSDs
Insert the two SSDs into the two SSD slots, and the detection results are as follows:
Slot No. | Result |
M1, M2 | Can be recognized |
M1, M3 | Can be recognized |
M2, M3 | Can be recognized |
4.2.4 Test three SSDs
Insert three SSDs into the three SSD slots respectively, and each SSD can be recognized normally.
Select one SSD to run the interface speed test command. The test can be executed multiple times to measure the SSD interface speed repeatedly.
sudo hdparm -t /dev/nvme0n1p1
No. | Transmission speed(MB/s) |
1 | 432.07 |
2 | 430.61 |
3 | 429.89 |
4 | 429.84 |
5 | 430.15 |
Avg. | 430.51 (about 3.36Gbps) |
Select two SSDs and use the Linux dd
command to copy a large file (a single file), the test results are as follows:
Data transfer direction | Time(s) | Transmission speed(MB/s) | Transmission speed(Gbps) | Packet size(Mb) |
SSD1->SSD2 | 36.85 | 271.37 | 2.12 | 10000 |
SSD2->SSD1 | 29.59 | 337.95 | 2.64 | 10000 |
Note: The performance of an SSD can be affected by the quality of its controller, its age, and its storage capacity. Actual speeds may vary.
4.2.5 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.
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
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 CM5_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.
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.6 SSD read/write speed test over 2.5Gbps network
Execute the "df" command in the terminal, the path in the red box is the SSD's path.
Navigate to the SSD directory in Windows:
Drag any file from the SSD to the PC desktop to test the SSD read speed, which is approximately 156MB/s.
Drag any file from the PC desktop to the SSD to test read speed, which is approximately 210MB/s.
4.3 Ethernet port test
The expansion board comes with one 2.5G Ethernet port, which is driver-free and plug-and-play under the official Raspberry Pi OS. The OS automatically recognizes it as an eth1 device.
Connect the Gigabit Ethernet of the expansion board to the upstream router, execute ifconfig -a
:
We conducted speed tests on the native Gigabit Ethernet port using iperf3.
Client mode is around 937Mbps.
Server mode is around 949Mbps.
Disconnect the Gigabit Ethernet cable, connect it to the 2.5G port, and execute a speed test on the 2.5G port.
Client mode is around 2.00Gbps.
Server mode is around 1.77Gbps.
Note: Network speed test results are influenced by network conditions and testing methods. Actual speeds may vary, and this test is for reference only.
4.4 RTC test
The expansion board can be used directly in the Raspberry Pi OS when connected to the RTC battery, as shown below:
After the OS starts, execute the following in the terminal:
ls /dev/r*
You can see the RTC device:
The command to display the current system time is date
;
The command to write the system time to the RTC is sudo hwclock -w
;
The command to read the system time from the RTC is sudo hwclock -r
.
As shown below:
If the RTC battery is correctly connected at this time, the RTC will continue to keep accurate time after power loss. If the RTC battery is not properly connected, the time will reset to the default (January 1, 1970) after power loss.
4.5 PWM fan test
Installing the monitoring tool s-tui:
sudo apt install s-tui
Then, run s-tui in the Raspberry Pi terminal, and you can observe the changes in fan speed in the monitoring window.
If you need to customize the fan speed and operating temperature range, please open the terminal and execute the following commands:
sudo nano /boot/firmware/config.txt
Insert the following lines at the end of the file:
dtparam=cooling_fan=on
dtparam=fan_temp0=50000,fan_temp0_hyst=5000,fan_temp0_speed=255
Among them:
fan_temp0=50000
, where 50000 represents the temperature, here it is 50°C.
fan_temp0_hyst=5000
, where 5000 denotes the hysteresis temperature, here it is 5°C.
fan_temp0_speed=255
, where 255 indicates the fan speed, with the maximum being 255.
You can input multiple temperature ranges and their corresponding fan speeds, with each segment on a separate line, differentiated by unique numbering (e.g., 1., 2., 3., etc.):
dtparam=fan_temp1=36000,fan_temp1_hyst=5000,fan_temp1_speed=128
4.6 DSI test
The DSI and CSI interfaces of the Raspberry Pi CM5 are multiplexed as CSI/DISP 0 and CSI/DISP 1. If you need to use the CSI/DISP 1 interface, you must short the SCL and SDA jumpers next to the core board.
The official two LCD screens for Raspberry Pi: the 1st-gen LCD has a resolution of 800×480, while the 2nd-gen LCD has a resolution of 1280×720. Both screens require additional power supply.
4.6.1 Testing the Raspberry Pi 1st-Gen LCD Display
Connect the 7-inch screen's cable to the CSI/DISP 0 port on the expansion board, then power up the OS. After the OS starts, open the terminal and execute the following commands.
sudo nano /boot/firmware/config.txt
Insert the following lines at the end of the file:
dtoverlay=vc4-kms-dsi-7inch,dsi0
After saving and restarting the OS, you can use the Raspberry Pi 7-inch touchscreen.
4.6.2 Testing the Raspberry Pi 2nd-Gen LCD Display
Connect the Raspberry Pi 2nd-Gen LCD to CSI/DISP 0, power on the expansion board. Open the terminal and execute the following commands:
sudo nano /boot/firmware/config.txt
Insert the following lines at the end of the file:
dtoverlay=vc4-kms-dsi-ili9881-7inch,dsi0
After saving and restarting the OS, you can use the Raspberry Pi 7-inch touchscreen.
4.6.3 Notes
1): If both the HDMI display and the 7-inch touchscreen are connected simultaneously, the 7-inch touchscreen may become the secondary screen. Simply power off the system, disconnect the HDMI display, and restart; the 7-inch touchscreen will then function as the primary display.
2): The added command actually enables the second display, meaning a dual-screen setup. Whether the second screen's hardware is installed or not, the system may still recognize it as a dual-display configuration. If you use PrtScn (Print Screen) to take a screenshot, it may capture both screens. In some cases, this could even cause the system to fail to boot. Therefore, if you don’t need this screen, it is recommended to remove or comment out this line in config.txt.
3): If using the CSI/DISP 1 interface, change "dsi0" to "dsi1" in the config.txt, and short-circuit the SCL and SDA jumpers next to the core board.
4.7 CSI test
The camera used for testing here is the OV5647, and the port is CSI/DISP 0. Once the OS is running, open the terminal and execute the following commands:
sudo nano /boot/firmware/config.txt
Insert the following lines at the end of the file:
dtoverlay=ov5647,cam0
Save and restart the OS, then you can use the OV5647 camera.
Execute the following command in the terminal:
ls /dev/video*
You will then see the video0 device listed.
Execute libcamera-hello --camera 0
in the terminal to open the corresponding camera for preview.
If a photo is required, please eexcute:
libcamera-jpeg -o test.jpg
The photos are saved in the /home/mcuzone
directory (i.e., the user's home directory). The photo effects are as follows:
If using the CSI/DISP 1 interface, change "cam0" to "cam1" in the config.txt, and short-circuit the SCL and SDA jumpers next to the core board.
4.8 Button test
CM5_NAS expansion board comes with a button that functions as a power switch. When the device is on, pressing the button once will bring up the shutdown menu:
Press the button again to power off immediately.
Power on by pressing the button once while in the shutdown state (requires power connection).
Note: The power button function requires system-level support. While Raspberry Pi OS and Ubuntu enable it by default, the current OpenWrt version lacks this feature.
4.9 HDMI test
The HDMI interface of the CM5_NAS expansion board supports 4K output, and the display effect is as shown below:
4K resolution (3840 × 2160)
Compared to standard 1080p resolution (1920×1080)
Note: HDMI 4K output is related to cable quality and display compatibility, please refer to actual results.
4.10 Compatibility testing of SSD with HAILO 8L AI module
▶ After our testing, both the Raspberry Pi OS versions 2024-07-04-raspios-bookworm-arm64.img.xz and 2025-05-13-raspios-bookworm-arm64.img.xz can be installed and used with the AI module without issues. Moreover, when installing on 2025-05-13-raspios-bookworm-arm64.img.xz, no firmware configuration is required.
When installing on the 2024-11-19-raspios-bookworm-arm64.img.xz, an error occurs when executing the command hailortcli fw-control identify
, and the AI module cannot be recognized. So we consider this version unusable.
The specific operating steps for HAILO 8L AI can be found here.
▶ The OS can boot from either the TF card or the eMMC, and a single HAILO 8L AI module can be inserted into any of the three SSD ports for normal operation.
▶ Any two SSD ports, one connected to the HAILO 8L AI module and the other to an SSD (used solely for data storage). After booting the OS, the SSD is functional, but the HAILO AI module cannot be used, with the following error:
▶ Any two SSD ports: one is connected to the HAILO 8L AI module, and the other to an SSD (used as the OS boot drive). The OS boots normally from the SSD, but the HAILO AI module cannot be used, reporting the same error as above.
Summary: In the current OS version, the AI module and NVMe SSD cannot be used simultaneously. (Tested in June 2025)
V. Work with OpenWrt
The version of the OpenWrt we tested with is: openwrt-bcm27xx-bcm2712-rpi-5-squashfs-sysupgrade-linux-6.6.90-USBlan-20250514.img.gz。
Powered by 12V DC. The expansion board can be configured as follows: use the 2.5G Ethernet as LAN and the Gigabit Ethernet as WAN, while enabling the NAS function. This maximizes the high bandwidth of the 2.5G port for file transfers within the local network.
▶In our OpenWrt , the USB OTG interface has been configured as a USB network adapter. When the USB 2.0-C port is connected to a PC, the expansion board will be recognized as a USB network adapter in Windows 11, Linux, and macOS:
Note: The USB network card currently does not have a complete driver for Windows 10, and customers need to research and install the driver themselves.
If your computer runs Windows 11, Linux, or macOS, it can be configured with 1*WAN (Gigabit Ethernet) and 2*LAN (a 2.5G Ethernet port and a USB network adapter).
5.1 Preparation
The OpenWrt uses the Gigabit Ethernet on the expansion board as a LAN. Connect the Gigabit Ethernet to the PC's network port. After the OS boots up, go to Windows Settings, find Network & Internet, and open the connected network under Ethernet to view the default gateway IP address. It is the address for the OpenWrt's configuration page. As shown in the figure, the tested address in this article is 192.168.198.1.
Then open a web browser, enter 192.168.198.1 to access the OpenWrt. The default username is root
, and the default password is password
.
5.2 Set up network interface
We configure the Gigabit Ethernet as WAN and the 2.5G Ethernet as LAN. In the OpenWrt , eth0 is Gigabit Ethernet, and eth1 is 2.5G Ethernet .
Click "Network - Interfaces - Devices", then click "Configure..." next to "br-lan".
Set the "Bridge Port" in "Regular Device Options" to "usb0" for "eth1", then click "Save".
Then click "Save" and "Interface," and return to the previous page (do not click "Save & Apply" at this time, as it may cause communication interruption):
Click "Add New Interface":
Set the "Name" to "WAN" (customizable), select "DHCP client" for "Protocol", choose "eth0" for "Device", then click the "Create Interface" button.
In the "Firewall Settings", select the WAN and then click the "SAVE" button:
Save and return to the previous page, then click "Save and Apply".
The network interface setup is complete. Due to changes in the LAN port, the OpenWrt page will keep displaying "Waiting for configuration to be applied." Please wait about one and a half minutes, then power off the expansion board, connect the 2.5G Ethernet to your computer, connect the Gigabit Ethernet to the upstream router, and boot the OS.
5.3 Test 2.5G Ethernet
The IP address of the expansion board is 192.168.198.1, and the IP address of the PC is found to be 192.168.198.239. We use the iperf3 speed test software to measure the network speed between the PC and the expansion board.
Click "Services - Terminal" to log in to the OpenWrt terminal. The username is root, and the password is the OpenWrt's "router password" (default: no password).
The OpenWrt comes with the iperf3 software. The speed test between the expansion board and the PC using iperf3 yielded the following results:
Client mode is around 2.35Gbps:
Server mode is around 1.77Gbps:
Note: The bandwidth test results of the 2.5G Ethernet may vary depending on network conditions and testing methods. The actual speed may differ, and this test is for reference only.
5.4 SSD test
5.4.1 SSD recognition and mounting
Insert three SSDs into the three SSD slots of the expansion board simultaneously, then boot the OS. After logging into the OpenWrt terminal, execute lspci
and lsblk
, and the output will be displayed as follows:
The three SSDs have been successfully recognized, but they are not mounted.
Click "System - Mount Points", check the boxes next to "Automatically mount unconfigured Swap partitions" and "Automatically mount unconfigured disk partitions", then click "Save & Apply".
Wait a moment, and you will see in the "Mounted File Systems" that all three SSD drives have been successfully mounted.
Execute the lsblk
command in the terminal again, and you can also see that the SSDs are successfully mounted:
5.4.2 Configure and use network sharing
Click "Services - Network Sharing", then click the "Add" button under "Shared Directories".
Fill in the relevant parameters, then click "Save & Apply" (if multiple shared directories are needed, they can be added multiple times):
After completing the setup, on the PC connected to the expansion board (using Windows 11 as an example), enter \\192.168.198.1
in the File Explorer (the address is that of the expansion board and may vary depending on the actual situation). Then, you will be able to see the shared directory.
Drag any file from the SSD to the PC desktop to test the SSD read speed, which is approximately 165MB/s.
Drag any file from the PC desktop to the SSD to test the SSD write speed, which is approximately 208MB/s.
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. You can download it in:
https://www.raspberrypi.com/software/operating-systems/
The version of Raspberry Pi OS which we use is 2025-05-13-raspios-bookworm-armhf-lite.img.xz
Please flash the system image to the TF card or eMMC. For our demonstration, we will use SSH via a wired network. Use the Raspberry Pi Imager to flash the image and enable the SSH function in the preset configuration during the writing process.
6.2 Install OpenMediaVault
Connect both the 2.5G Ethernet and the computer to the same upstream router. After the OS boots, log in using the preset username and password.
Execute ifconfig
, and you can see that the 2.5G network port has correctly obtained an IP.
The IP here is 192.168.8.79, then update the system 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 1: 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.
Note 2: After the installation is complete, connect to the network via the 2.5G port. If you need to keep the IP address unchanged after each reboot, you can fix the MAC address of the port. For specific operations, please refer to here.
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:
Double-click this server, then enter the username and password set above to open the shared folder.
Test file read and write under Gigabit network:
Write:
Read:
Test file read and write under 2.5G network:
Write:
Read:
6.5 Multi-SSD concurrent usage test
We will test the detection status of an SSD in different slots and when multiple SSDs are used 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
Test1: Slot M1+Slot M2:
Both SSDs are detectable.
Test2: Slot M1+Slot M3:
Both SSDs are detectable.
Test3: Slot M2+Slot M3:
Both SSDs are detectable.
6.5.3 Three SSDs test
Insert all three SSDs into the slots.
All three SSDs are detectable.
Contact Us
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