BPI-M4: m.2 extension board with nvme ssd

M.2 A/E key to M.2 M key extension board

Samsung 970 EVO plus 256GB nvme SSD

1 Like

Thank you for this post!

Is it possible to copy image and boot from the drive?

i think itā€™s impossible, uboot is 2015.7 and not support nvme

Which image enables Nvme?

I have the adapter and Western Digital PC SN520 NVMe SSD.

Using 2020-05-18 Ubuntu 18.04 Mate M4 desktop image from BPI (Kernel 4.9.119-BPI-M4-Kernel)

Lspci lists the controller ie: Sandisk

But I am not seeing anything with lsblk.

Thanks.

@gavan1 Hi! please did you find the way to use the M.2 disk? if that is the case please which image did you use?

@August please can you give more info? did you do something with the kernel?

Regards

Fran

@August @fgonza1971 Itā€™s been awhile but Iā€™ve gotten back in with the BPI-M4 (rtd1395).

I thought have had this board reading my nvm driveā€¦ But it looks like I am asking the same question as before.

Lspci can detect my nvme drive brand. But doesnā€™t show ā€œkernel driver in use: nvmeā€ line like your output.

I have the same adapter as in your picture. Is there a step to do or should the driver be loaded automatically?

root@bpi-iot-ros-ai:~# lspci -v 01:00.0 Non-Volatile memory controller: Sandisk Corp Device 5004 ( rev 01) (prog-if 02 [NVM Express]) Subsystem: Sandisk Corp Device 5004 Flags: fast devsel Memory at 98064000 (64-bit, non-prefetchable) [disabled] [ size=16K] Capabilities: [80] Power Management version 3 Capabilities: [90] MSI: Enable- Count=1/32 Maskable- 64bit + Capabilities: [b0] MSI-X: Enable- Count=17 Masked- Capabilities: [c0] Express Endpoint, MSI 00 Capabilities: [100] Advanced Error Reporting Capabilities: [150] Device Serial Number 00-00-00-00-00-00 -00-00 Capabilities: [1b8] Latency Tolerance Reporting Capabilities: [300] #19 Capabilities: [900] L1 PM Substates

Also ā€œmodprobe nvmeā€ shows module not found in kernel.

Can you confirm what image you are using in that picture?

Thanks

Thx for your response @gavan1 mine is not seeing the drive so maybe its the adapter mayde the NVME disk, I donā€™t know but as usual I never get working de BPi first time :wink: so again a lot of patience I put my two cents that the culprit its the adaptarā€¦ the NVME disk its not Sandisk as yours doc I donā€™t know if exist a limitation with the internal chipset of the disk but I need the extra space because a Kubernetes things I wanna do.

Again thx @gavan1 have a great day.

Regards

Fran

@fgonza1971 Iā€™m still waiting on @August to reply and confirm which image he is using ( or what steps he used to add vie support) I doubt it is any of the images posted onlineā€¦ as modprobe nvme gives me a kernel not found on ALL images released to customers.

@sinovoip can you confirm the situation of the nvme driver in the currently released images?

Thank you.

Because, technically you can use a M to E key adapter and get an nvme drive to work as @August did.

The problem it seems that the images related to the public donā€™t have the nvme driver in the kernel image.

nvme supported on Feb 25, 2021, but bananapi wiki latest image published on May 18, 2020, you must build the source code and update the kernel image and modules.

Hope @August answer @gavan1 iā€™ve been compiling the kernel with the docker image with no luck I added the modules nvme and AHCi, SATA support, etc. Maybe @August could tell which modules are needed.

Regards

Fran

just compiled the BPI-M4-bsp and installed the bsp files to SD image according to the README.md, no additional modules loaded after bootup.

@August thank you very much for the clarification! I wonā€™t be able to compile from source.

Could you share the image you compiled? I would really appreciate that and so would @fgonza1971. If itā€™s easier I also have a Baidu net cloudā€¦

Thank you for getting back to me.

extract the bsp files to your sdcard image boot and root partitions.

link: ē™¾åŗ¦ē½‘ē›˜ čÆ·č¾“å…„ęå–ē 
code: z83m

@August :pray:. Got NVME working now!.

@fgonza1971 let me know if you need any more helpā€¦ FYI you will need that same nvme adapter as in the post and and you need and actual NVME drive not an SSD with M.2 form.

M.2 SSD drives look very similar to NVME but they run off SATA interface which is not what that adapter uses.

You just just need to overwrite the file shared by August and into the BPI-BOOT and BPI-ROOT and reboot.

I had to mount my boot partition as is was not visible (since my boot partition is in the emmc, I am not using an SD card)

Thx 4 the advice @gavan1 but I canā€™t download the fileā€¦ I use Xubuntuā€¦ canā€™t download itā€¦ Iā€™ve never used Baidu before

Now for my budget its a noā€¦ Bpi 110$ plus adapter 30$ plus m.2 nvm SSD 30$ equals 180$ totalā€¦

Now the new adapter from Amazon costs 15$ plus shipment a new m.2 drive another 30$ maybe 80$ total plus 180$ = 260$ plus my timeā€¦ too much time trying different thingsā€¦ maybe Iā€™ll use the Bpi for network services or use a hammer with itā€¦

Nope! the Bpi adventure has cost too much ā€¦ too much money wasted for a Kubernetes thing that Iā€™m running right now in old PCā€¦ I could have bought an eBay mini PC or maybe a newer used mini PC from a local dealerā€¦ Iā€™ve fond memories using an old Rpi model B+ sold it 5 years ago ā€¦ and I tough that could use the Bpi to experiment ā€¦ my bad obviously!

Iā€™ll use the m.2 SSD drive for the new home lab server.

The Bpi way for now its closedā€¦ I wonā€™t invest more money and time with it!

Thx @August @gavan1 for the info and time, bad docs and OS images without full hardware support ā€¦ maybe @August you could update the wiki saying the images go without m.2 support and state a warning against m.2 SSD drive type.

Regards

Fran

Lacking / incomplete / outdated documentation is the reality with Banana Pi and most SBC manufacturers.

The goal is not for you to use the product productivelyā€¦ itā€™s simply to purchase it. I ā€˜ve learn the hard way and am now very very selective, I doubt I will be purchasing any product from BPI, RADXA or any of the other manufacturers apart from Raspberry Pi.

But since I purchased the BPI-M4 before I learned the reality of SBC product ā€œsupportā€, I want to be able to use the board to its full capabilities.

This board and the RADXA rock 3a has an m.2 on my Rock 3A I have the Google coral TPU which I helped RADXA make documentation for on the 3a.

In any case I do have a short nvme which works well. And I also work with clusters in the edge.

The BPI-M4 with nvme enabled does let you leverage additional docker performance as you can set docker volume to it.

Same goes for k8s performance.

Itā€™s just a little better than a Pi3.

Iā€™ll share my setup with the board once Iā€™ve finished selected the OLED lcd for this one.