0003 MPS2280D(Dual SSD Expansion Board)

来自Mcuzone Wiki

Keywords

Raspberry Pi 5, PCIe Expansion, boot on SSD, NAS, speed test, OpenMediaVault, OMV

Ⅰ、Introduction

After updating the Raspberry Pi firmware to May 2024, the RPi5 supports booting the system from an SSD via a PCIe switch chip. This article will demonstrate how to change the settings to enable booting from an SSD by using our MPS2280D expansion board. Moreover, the MPS2280D supports dual SSDs, making it suitable for creating large-capacity storage applications with the Raspberry Pi 5. You can connect existing storage devices (NVMe protocol-supported SSD, including external portable hard drives and USB flash drives) to create secure backups of all important files accessible from anywhere in the world. This Network Attached Storage (NAS), allowing you to save files from computers and mobile devices to external hard drives through your home or office wireless network.

Ⅱ、Hardware Resources

2.1 Support for 2230/2242/2280 sized NVMe SSDs (only soldered with 2280 copper standoffs in default);

2.2. The hard drive can be used for storage expansion. Note: Only supports PCIe 1x Gen2.

2.3 The hard drive supports booting from SSD and requires updating the official Raspberry Pi firmware to a version later than 2024.5.13;

2.4 Reserve a power interface for the hard drive, 2.54mm-2P socket. If concerned about insufficient power supply, an auxiliary 5V power source can be externally connected via this interface. In practice, since the RPi5's PCIe is only 1x and only supports Gen2 mode after expansion, the power consumption will drop to 1/3 of the rated parameters. For instance, if the SSD is marked 3.3V 2.5A, the actual peak measured from the 5V side is only a little over 500mA. In our tests, the peak total current for two SSDs was 0.75A.

2.5 Slotting at the 40-pin position, it does not affect the Dupont line connection;

2.6 Board size: 86*56mm;

2.7 Immersion gold process, lead-free production, PCB board certified by UL and ROHS.

MPS2280D_09.jpg

MPS2280D_08.jpg

MPS2280D_10a.jpg

MPS2280D_11.jpg

Please connect the FPC cable according to the diagram. For the Raspberry Pi, position the metal side facing the center of the board, with the 5V silk screen close to the USB-C port. For the MPS2280D, position the metal side facing down, aligning the 5V silk screen on the FPC with the 5V silk screen on the board.

MPS2280D_80.jpg

Ⅲ、Demonstration of Using the Raspberry Pi OS

3.1 Using SSD as storage expansion

3.1.1 Download system

The Raspberry Pi OS used in this article is:2024-07-04-raspios-bookworm-armhf.img.xz,You can download it in:

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

3.1.2 Flash the system to TF card

Use Imager or balenaEtcher to flash the OS image in TF card.

MPS2280D_01.jpg

MPS2280D_02.jpg

3.1.3 Update Raspberry Pi Firmware and Kernel

Boot the Raspberry Pi OS from the TF card and entersudo rpi-updatein the terminal to update the latest firmware and kernel.

Note: Runningsudo rpi-updatemay take 3-10 minutes and might require an internet connection to foreign country(please prepare your own method).

MPS2280D_03.jpg

MPS2280D_04.jpg

After upgrading, enter sudo rpi-eeprom-config --edit in the terminal to edit the boot.conf file in the kernel. Add NVME_CONTROLLER=1 to the last line, save and exit. The BOOT_ORDER=0XF461 means the boot order is SD (TF) card, NVMe (SSD), and USB drive. Click here to go to the boot order settings instructions.After setting successfully, reboot the system. This way, SSD (including storage and boot) will be supported.

3.1.4 Enable SSD storage and boot

After upgrading, enter sudo rpi-eeprom-config --edit in the terminal to edit the boot.conf file in the kernel. Add NVME_CONTROLLER=1 to the last line, save and exit. The BOOT_ORDER=0XF461 means the boot order is SD (TF) card, NVMe (SSD), and USB drive. Click here to go to the boot order settings instructions.After setting successfully, reboot the system. This way, SSD (including storage and boot) will be supported.

MPS2280D_05.jpg

MPS2280D_06.jpg

MPS2280D_07.jpg

3.1.5 After the system starts, we can see two SSDs in the File Manager of Raspberry Pi OS, as shown in the figure below:

MPS2280D_12.jpg

If you need to operate on the SSD, please click on any of the partitions. At this point, you will need to enter the system password. Once the verification is successful, you can operate on the SSD.

MPS2280D_13.jpg

At this point, returning to the desktop, you can see the shortcut icons for each partition of the two SSDs:

MPS2280D_14.jpg

By entering df in the terminal, you can see two SSDs, which we can use as storage devices.

MPS2280D_15.jpg

3.2 Using SSD as system boot

3.2.1 Flash Raspberry Pi OS to SSD, Click here to go to the burning method instructions.(Firmware of the Raspberry Pi needs to be updated to a version later than 2024.5.13. For the upgrade method, please refer to Section 3.1.3 of this document) Then remove the TF card, or set booting from NVMe (SSD) as the first option in the boot order settings.

3.2.2 After our testing, a single SSD inserted into any SSD slot can boot the system (the slot near the Mcuzone logo is Slot 03, and the slot away from the Mcuzone logo is Slot 04). If two slots have SSDs inserted and only one SSD has the system , the OS will boot from the SSD with the system. If both SSDs have the system, the OS will prioritize booting from Slot 04. The positions of the slots on the expansion board are shown in the diagram below.

MPS2280D_79.jpg

Specific information about two slots can be viewed by entering lspci in the terminal.

MPS2280D_16.jpg

Note: Kingston NV2 series SSD cannot boot directly from a pure PCIe SSD expansion board, but can boot from an expansion board with a PCIe switch chip.

Ⅳ、Demonstration of Using the Ubuntu OS

4.1 Using SSD as storage expansion

4.1.1 The Ubuntu OS used in this article is: ubuntu-24.04-preinstalled-desktop-arm64+raspi.img.xz. You can download it in:

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

4.1.2 Use Imager or balenaEtcher to flash the OS image in TF card. The operation method is the same as in the previous chapter on flashing the Raspberry Pi OS. (Ⅲ 3.1.2)

4.1.3 Boot the Ubuntu OS from the TF card. Since the previous chapter has already updated the Raspberry Pi kernel and enabled support for SSDs (including storage and boot), there is no need to repeat these steps here. If you have not done this before, please follow the steps in the previous chapter. (Ⅲ 3.1.3、3.1.4)

Note, on the Ubuntu OS, the command to update the Raspberry Pi firmware is sudo rpi-eeprom-update -a,, while the command to edit the boot.conf file is still sudo rpi-eeprom-config --edit.

MPS2280D_17.jpg

4.1.4 Shut down the system, insert two SSDs, then start the Ubuntu OS. We can see the two SSDs and their respective two partitions. Unlike the Raspberry Pi OS, we can operate the SSDs without enter the system password.

MPS2280D_18.jpg

MPS2280D_19.jpg

By entering df in the terminal, you can see two SSDs, which we can use as storage devices.

MPS2280D_20.jpg

4.2.Using SSD as system boot

4.2.1 Flash Ubuntu OS to SSD, Then remove the TF card, or set booting from NVMe (SSD) as the first option in the boot order settings.

4.2.2 After our testing, a single SSD inserted into any SSD slot can boot the system (the slot near the Mcuzone logo is Slot 03, and the slot away from the Mcuzone logo is Slot 04). If two slots have SSDs inserted and only one SSD has the system , the OS will boot from the SSD with the system. If both SSDs have the system, the OS will prioritize booting from Slot 04. The positions of the slots on the expansion board are shown in the diagram below. Specific information about two slots can be viewed by entering lspci in the terminal.

MPS2280D_21.jpg

Ⅴ、Operations such as partitioning on the SSD

5.1 Overview

This chapter uses Raspberry Pi OS as an example to introduce operations such as partitioning and mounting the SSD.

5.2 Partitioning an SSD using GParted

5.2.1 Download the GParted. Open the Raspberry Pi OS terminal and enter the following command to install the GParted.

sudo apt install gparted

MPS2280D_77.jpg

5.2.2 Open the GParted and select the corresponding SSD.

The command to open GParted issudo gparted. After opening it, you'll see a GUI. In the upper right corner, select the SSD from the dropdown menu.

MPS2280D_23.jpg

MPS2280D_24.jpg

5.2.3 Before partitioning the SSD, you need to unmount the existing partition. Right-click on the partition and select "Unmount". After unmounting, right-click on the partition again and select "Delete" to remove the partition. There are two partitions on this SSD, perform the same steps for the other partition as well.

MPS2280D_25.jpg

MPS2280D_26.jpg

5.2.4 After completing the partition deletion, we select "Edit - Apply All Operations" from the menu to accept all the above operations. GParted is similar to DiskGenius in that it does not perform any real operations on the partitions until "Apply" is clicked.

MPS2280D_27.jpg

MPS2280D_28.jpg

MPS2280D_29.jpg

5.2.5 Right-click on the empty SSD and select "New" to create a new partition. We created two partitions in the exFAT format. The steps are shown below.

MPS2280D_30.jpg

MPS2280D_31.jpg

MPS2280D_32.jpg

MPS2280D_33.jpg

MPS2280D_34.jpg

MPS2280D_35.jpg

MPS2280D_36.jpg

Thus, we have completed the partitioning of the SSD.

5.3 Mount partition

5.3.1 Now, the SSD has been divided into two partitions. These partitions can be managed in Windows, but Linux is different. You need to mount the partitions before you operate on them. First, use the lsblk command to view the partition information. You will see the two new partitions named nvme0n1p1 and nvme0n1p2.

MPS2280D_37.jpg

Then we input the following commands in sequence to create the mount point:

sudo mkdir /ssd1

sudo mkdir /ssd2

5.3.2 To check the partition UUIDs, enter the command sudo blkid in the Raspberry Pi terminal. The UUIDs of the two SSD partitions are 769F-F2E1 and 77F0-F2E1, respectively. Record these two values.

MPS2280D_38.jpg

5.3.3 Enter the command sudo nano /etc/fstab in the Raspberry Pi terminal, and add the following two lines of code at the end of the file:

UUID=769F-F2E1 /ssd1 exfat defaults,umask=000,gid=1000 0 2

UUID=77F0-F2E1 /ssd2 exfat defaults,umask=000,gid=1000 0 2

MPS2280D_39.jpg

MPS2280D_40.jpg

After saving and exiting, restarting the system, enter lsblk in the Raspberry Pi terminal. You can see that nvme0n1p1 and nvme0n1p2 are mounted under ssd1 and ssd2.

MPS2280D_42.jpg

Now, we can see two directories: ssd1 and ssd2, at the root of the file directory, representing the two partitions on the SSD. We can perform operations on these two folders. We complete the mounting of the partitions now.

MPS2280D_41.jpg

Ⅵ、Application demonstration of NAS server

6.1 Choose the correct OS

To correctly install the NAS server, please select the 32-bit Lite version of the software platform (i.e., the 32-bit command-line version without GUI). Other versions will not be able to install OpenMediaVault properly. You can download it in:

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

The version of Raspberry Pi OS which we use is 2024-07-04-raspios-bookworm-armhf-lite.img.xz

6.2 Flashing the Raspberry Pi OS

Use Imager to flash the OS image.

MPS2280D_45.jpg

Since the system will come up with a command line interface, go to "Use OS customization" and click "Edit Settings" to set the login username and password. If you need to use WiFi, also set the WiFi parameters here. This will avoid the need to configure these settings in the command line interface, making it easier to use.

MPS2280D_46.jpg

MPS2280D_47.jpg

6.3 Install OpenMediaVault

6.3.1 After the system has been flashed, connect the network cable and start the system (if WiFi was set up previously, you can also use WiFi). Enter the username and password that were set during the flashing process to log into the system.

MPS2280D_43.jpg

6.3.2 After logging into the system, enter the following commands to update the system and header files:

sudo apt update

sudo apt upgrade

MPS2280D_44.jpg

Then enter the following command to install the OpenMediaVault:

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

chmod +x install

sudo ./install -n

MPS2280D_48.jpg

Note: Downloading OpenMediaVault software may require an internet connection to foreign country(please prepare your own method), and the installation process can take a long time. Please be patient.

6.4 Configuring OpenMediaVault for the NAS server

6.4.1 Use ifconfig to check the system IP of the Raspberry Pi. As shown, the IP of the Raspberry Pi used in this article is 192.168.8.102.

MPS2280D_69.jpg

In the same local network, open a browser on your PC and enter 192.168.8.102 to access OpenMediaVault. The default login name and password are "admin" and :openmediavault".

MPS2280D_49.jpg

6.4.2 Before configuring the NAS server, please ensure that the storage devices are correctly installed. Only after installation, you  can proceed with the next steps. Select "Storage", then click "Disk". At this point, all connected storage devices, including SD (TF) cards and SSD hard drives, should be displayed. If not, please carefully check if everything is properly inserted and restart the system.

MPS2280D_50.jpg

6.4.3 Click on "File System" under "Storage", then click on "Mount Existing File System" as shown in the image below. Select the currently installed storage device; in this article, we have chosen a 120GB SSD hard drive. For the partition format, we recommend choosing the EXT4 format.

MPS2280D_51.jpg

MPS2280D_52.jpg

After making your selection, click "Save". Once saved, click on 'Change' in the "Pending Configuration Changes" that appears next. This will complete the mounting settings.

MPS2280D_53.jpg

MPS2280D_54.jpg

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

6.4.4 Click on "Shared Folders" under "Storage", then click 'Create'.

MPS2280D_55.jpg

You can name the folder here, choose which drive it should be on, and grant permissions to users. By default, the permissions should be correct, but if you prefer different options for network preferences, you can adjust them. Save and apply the changes.

MPS2280D_56.jpg

MPS2280D_57.jpg

Multiple devices can be added here according to needs.

6.4.5 Next, we need to ensure that computers on the network can find the shared folder. Click on "Services', then "SMB/CIFS" and click "Settings". Select "Enabled" then save and apply the changes.

MPS2280D_58.jpg

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

MPS2280D_59.jpg

MPS2280D_60.jpg

MPS2280D_61.jpg

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

6.4.5 Finally, Click on "User - User" to set up a user for subsequent logins to the NAS server. If you do not wish to create a new user, you can use the default user (in this article, the default user is "adm"). If you do not know the default user's login password, you can edit the user to change the password.

Note: The default user refers to the login user of the Raspberry Pi OS (in this article, it is the "adm" user). If you change this password, you will need to use the new password the next time you log into the Raspberry Pi OS.

MPS2280D_62.jpg

MPS2280D_63.jpg

MPS2280D_70.jpg

MPS2280D_71.jpg

6.5 Test NAS server

6.5.1 Check "Network discovery and file sharing" is enabled. Go to the Ethernet settings, click on "Change advanced sharing options", and see if "Turn on network discovery" and "Turn on file and printer sharing" are enabled. If they are not, please enable them.

MPS2280D_74.jpg

MPS2280D_75.jpg

6.5.2 On the same local area network (LAN), click on "Network" and find the NAS server, which in this article is shown as "RASPBERRYPI". Double-click on this NAS server, then enter the username and password you set up earlier to open the shared folder.

MPS2280D_72.jpg

MPS2280D_73.jpg

MPS2280D_76.jpg

6.5.3 Next, we will test the NAS speed by copying a large file. Here are demonstrations of writing and reading, with speeds varying depending on the network conditions.

MPS2280D_67.jpg

MPS2280D_68.jpg

Note: Test speed is affected by various factors such as network conditions, hard drive quality, and the file storage situation on the hard drive. The above test results are for reference only and do not represent the final parameters of the actual product.

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-2024 Wildchip