Software
One of the standout features of the Banana Pi BPI-R3 Mini is its support for multiple operating systems. The router can run on various systems such as Ubuntu, Debian, and OpenWrt, giving users more flexibility in terms of customization and configuration. This makes it an ideal choice for businesses and individuals who require a high degree of flexibility in their network setup.
Burning the OpenWrt image
When deciding where to store system software files and packages, there are two primary choices: an 8GB eMMC or a 128MB Nand flash. What sets the SinVoip team apart is their brilliant addition of a jumper switch that makes selecting your preferred option a breeze. In almost all cases, the eMMC option is the clear winner, thanks to its remarkable and generous storage capacity.
In order to complete the installation, you will first need to boot from the Nand and flash the image file using dd command from a USB stick, and lastly switch to eMMC. Our board came with the latest version of OpenWrt snapshot 21.02 pre-installed.
Installing an NVMe SSD
This is where things start to get trickier. The board comes with two M.2 interfaces. One is KEY B designed for 4/5G Module and the second is KEY M which is designed for storage mainly. The KEY B socket is slightly higher. The limited size of the board dimensions poses certain constraints on this design concept, which could potentially lead to heat issues, particularly when both sockets are being used simultaneously. The most practical solution we can consider is to install a heat isolation pad. This will act as a buffer between the two boards and effectively prevent them from overheating each other.
Assembling a Samsung SSD PM991a NVMe 512GB (M.2 2230).
(To get a closer look, click on the image)
Checking the M.2 NVMe SSD Performance
Once the NVMe is formatted to the ext4 file system and successfully mounted under the OpenWrt LuCI web interface, it will be appropriately identified as “nvme0n1” with available capacity of 473G.
Display details about block devices:
root@OpenWrt:/mnt# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mtdblock0 31:0 0 128M 0 disk
mtdblock1 31:1 0 1M 1 disk
mtdblock2 31:2 0 512K 0 disk
mtdblock3 31:3 0 2M 0 disk
mtdblock4 31:4 0 2M 0 disk
mtdblock5 31:5 0 4.5M 1 disk
mtdblock6 31:6 0 2M 0 disk
mtdblock7 31:7 0 2M 1 disk
mtdblock8 31:8 0 32M 0 disk
mtdblock9 31:9 0 1G 0 disk /rom
mtdblock10 31:10 0 980.3M 0 disk /overlay
mtdblock11 31:11 0 2G 0 disk
mtdblock12 31:12 0 4.2G 0 disk
mmcblk0 179:0 0 7.3G 0 disk
├─mmcblk0p1 179:1 0 17K 0 part
├─mmcblk0p2 179:2 0 512K 0 part
├─mmcblk0p3 179:3 0 2M 0 part
├─mmcblk0p4 179:4 0 2M 0 part
├─mmcblk0p5 179:5 0 32M 0 part
└─mmcblk0p6 179:6 0 256M 0 part
mmcblk0boot0 179:8 0 4M 1 disk
mmcblk0boot1 179:16 0 4M 1 disk
nvme0n1 259:0 0 476.9G 0 disk
├─nvme0n1p1 259:1 0 4M 0 part
├─nvme0n1p2 259:2 0 6M 0 part
├─nvme0n1p3 259:3 0 4M 0 part
├─nvme0n1p4 259:4 0 4M 0 part
├─nvme0n1p5 259:5 0 4M 0 part
├─nvme0n1p6 259:6 0 1M 0 part
├─nvme0n1p7 259:7 0 40M 0 part
├─nvme0n1p8 259:8 0 96M 0 part
├─nvme0n1p9 259:9 0 384M 0 part
├─nvme0n1p10 259:10 0 384M 0 part /mnt/nvme0n1p10
├─nvme0n1p11 259:11 0 16M 0 part /mnt/nvme0n1p11
├─nvme0n1p12 259:12 0 1M 0 part
├─nvme0n1p13 259:13 0 3G 0 part
└─nvme0n1p14 259:14 0 473G 0 part
Benchmarking NVMe Using hdparm
Read transfer rate test:
root@OpenWrt:/mnt/nvme0n1# hdparm -tT --direct /dev/nvme0n1
Timing O_DIRECT cached reads: 1222 MB in 2.00 seconds = 610.45 MB/sec
Timing O_DIRECT disk reads: 16 MB in 0.03 seconds = 479.72 MB/sec
Read transfer rate test: bypassing the hard drive’s buffer cache memory
root@OpenWrt:/mnt/nvme0n1# hdparm -t --direct /dev/nvme0n1
/dev/nvme0n1:
Timing O_DIRECT disk reads: 16 MB in 0.03 seconds = 481.96 MB/sec
5G外壳 ,希望能采纳