NVME not detected


#1

Hi !
I try to install a NVME SSD but my RockPi4 do not recognize it. I tried 3 differents NVME :

  • WD Black SSD PCIe 250 GB
  • Samsung evo 970 250 GB
  • XPG SX8200 Pro 512 GB

Without success. I have two other RK3399 SBC, a Rockpro64 and a Nano Pi PC T4 and all these three NVME SSD work flawlessly with these SBC.

I tried these OS

  • Armbian 4.20.13-rockchip64 #5.76.190228
    and
  • rockpi4b-ubuntu-bionic-minimal-20190104_2101-gpt

With the exact same result. No NVME SSD found.

The command lspci return nothing
I am unable to see my NVME with blkid and lsblk or fdisk -l
I tried to plug my NVME via the extension board and directly connected to the SBC with the exact same result.

Can someone give me extra ideas to try? Can my SBC be defective?

Thank you !


#2

@mike2002 You can connect ROCK Pi 4 directly to Samsung NVME SSD without using the adaptor board.


#3

Hello @Stephen,
I already tried to connect the nvme directly to the board (without adaptor board) with the same result.

Mike


#4

First, the nvme on rock pi 4 doesn’t support hotplug. If you plug directly, make sure the M.2 connector contact with ssd golden finger firmly.

Could you also post the dmesg after the system boots?


#5

Hi @jack !
First of all, thank you for your help !

There are a lot of evolutions, yesterday evening I re-did all my test case with my three NVME SSDs.

I competly removed the etension board and this is my result :

With armbian and no extension board, no NVME detected.
With armbian and the extension board, same situation NVME not detected.

With rockpi4b-ubuntu-bionic-minimal-20190104_2101-gpt without extension board
- WD Black : detected
- Samsung EVO 970 : detected
- XPG SX8200 Pro : Not detected

With rockpi4b-ubuntu-bionic-minimal-20190104_2101-gpt with extension board
- WD Black : detected
- Samsung EVO 970 : detected
- XPG SX8200 Pro : Not detected

So, the only NVME drive not detected is my XPG, ogiginally my WD Black was in my Nanopi PC T4, so I switched the XPG NVME drive with the WD BLACK to use this one with my Rockpi4.

But I am very sad because Armbian do not detect the NVME, I am a huge fan of Armbian, I really like this distribution.

So, to resume :

  • WD Black NVME SSD work ok
  • Samsung Evo 970 work ok
  • XPG SX8200 Pro do not work (but it work with Nanopi and Rockpro)
  • Armbian do not detect any of my NVME.

Thank you !


#6

Hi Mike,

I am running a rockpi4 A here with armbian. My Samsung 970evo arrived today. I plugged it directly to the rockpi, booted and was able to setup a partition on it.

I run the following version:

sudo uname -r

No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 9.8 (stretch)
Release: 9.8
Codename: stretch

sudo uname -r
4.4.154-rk3399rockpi4b

I will try the adaptor-board sometime later tonight.

I could not run further tests with data-transfers. I believe my power-supply is too weak to handle the NVME. Need to update that first.

I will keep the forum posted.

Carsten


#7

Hi @postfrog66 !
That’s a good news. I tried armbian 4.20.13-rockchip64 #5.76.190228 witout sucess, nvme not found and I tried Armbian_5.75_Rockpi-4b_Ubuntu_bionic_default_4.4.174.7z and this version do not boot or I do not wait enough.

I will test the release 4.4.154 immediatly when I will have time… :slight_smile:
Thank you !


#8

I tried it with the NVME-board, also works. But could not figure out a good way of mounting the NMVE-board and the heatsink.


#9

Hi @postfrog66 !
Thank you for your help, Armbian is now up and running. I moved the system on my NVME and now my Rockpi is really fast.

This is a picture of my Rockpi with the big heatsink and the extension board mounted. It is really not intuitive and not very cute too but all work really well.


#10

works nicely with the new power-supply.

Could not figure out the mechanics yet…


#11

I use a Samsung 970EVO witrh 500Gbytes and tested the performance today. I think it does not yet run at full speed:

sudo hdparm -Tt --direct /dev/nvme0n1

/dev/nvme0n1:
Timing O_DIRECT cached reads: 614 MB in 2.00 seconds = 306.61 MB/sec
Timing O_DIRECT disk reads: 920 MB in 3.00 seconds = 306.39 MB/sec

carsten@rockpi4b:~$ sysbench --test=fileio --file-total-size=2G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run
sysbench 0.4.12: multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 1
Initializing random number generator from timer.

Extra file open flags: 0
128 files, 16Mb each
2Gb total file size
Block size 16Kb
Number of random requests for random IO: 0
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random r/w test
Threads started!
Time limit exceeded, exiting…
Done.

Operations performed: 297300 Read, 198200 Write, 634191 Other = 1129691 Total
Read 4.5364Gb Written 3.0243Gb Total transferred 7.5607Gb (25.807Mb/sec)
1651.66 Requests/sec executed

Test execution summary:
total time: 300.0009s
total number of events: 495500
total time taken by event execution: 31.3085
per-request statistics:
min: 0.01ms
avg: 0.06ms
max: 15.18ms
approx. 95 percentile: 0.18ms

Threads fairness:
events (avg/stddev): 495500.0000/0.00
execution time (avg/stddev): 31.3085/0.00


#12

Hi !
There are my results :

rockpi@rockpi4b:~$ sudo hdparm -Tt --direct /dev/nvme0n1
[sudo] password for rockpi:

/dev/nvme0n1:
 Timing O_DIRECT cached reads:   1020 MB in  2.00 seconds = 510.00 MB/sec
 Timing O_DIRECT disk reads: 1382 MB in  3.00 seconds = 460.60 MB/sec

But for me the best app to test the speed of my NVME is iozone (NVME = WD Black):

rockpi@rockpi4b:~$ sudo iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
        Iozone: Performance Test of File I/O
                Version $Revision: 3.429 $
                Compiled for 64 bit mode.
                Build: linux

        Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
                     Al Slater, Scott Rhine, Mike Wisner, Ken Goss
                     Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
                     Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
                     Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
                     Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
                     Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
                     Vangel Bojaxhi, Ben England, Vikentsi Lapa.

        Run began: Tue Mar 12 08:34:56 2019

        Include fsync in write timing
        O_DIRECT feature enabled
        Auto Mode
        File size set to 102400 kB
        Record Size 4 kB
        Record Size 16 kB
        Record Size 512 kB
        Record Size 1024 kB
        Record Size 16384 kB
        Command line used: iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
        Output is in kBytes/sec
        Time Resolution = 0.000001 seconds.
        Processor cache size set to 1024 kBytes.
        Processor cache line size set to 32 bytes.
        File stride size set to 17 * record size.
                                                              random    random     bkwd    record    stride
              kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
          102400       4    59325    84009    76919    77801    40893    79823
          102400      16   130702   227024   213902   216338   120339   226025
          102400     512   557596   590522   521821   522062   500256   576589
          102400    1024   629537   641508   583415   600946   550795   644552
          102400   16384   661427   694791   659492   659860   660166   681809

iozone test complete.

It’s a little bit slow compare to my NanopiPCT4 (XPG NVME) but the result can be compare to my RockPro64 (Samsung Evo 970 NVME).


#13

This is the result I got on my RockPro64 with my Samsung Evo 970 :

rock@rockpro64:~$ sudo iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
[sudo] password for rock:
Iozone: Performance Test of File I/O
Version $Revision: 3.429 $
Compiled for 64 bit mode.
Build: linux

    Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
                 Al Slater, Scott Rhine, Mike Wisner, Ken Goss
                 Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
                 Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
                 Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
                 Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
                 Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
                 Vangel Bojaxhi, Ben England, Vikentsi Lapa.

    Run began: Tue Mar 12 08:48:01 2019

    Include fsync in write timing
    O_DIRECT feature enabled
    Auto Mode
    File size set to 102400 kB
    Record Size 4 kB
    Record Size 16 kB
    Record Size 512 kB
    Record Size 1024 kB
    Record Size 16384 kB
    Command line used: iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
    Output is in kBytes/sec
    Time Resolution = 0.000001 seconds.
    Processor cache size set to 1024 kBytes.
    Processor cache line size set to 32 bytes.
    File stride size set to 17 * record size.
                                                          random    random     bkwd    record    stride
          kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
      102400       4    82368   117913   145635   146582    52602    84380
      102400      16   166460   238068   269713   271330   168286   235563
      102400     512   590845   619712   572332   572707   557272   621562
      102400    1024   616225   633981   578821   578426   572636   638544
      102400   16384   676638   695671   657252   657771   656296   695662

iozone test complete.


#14

Hi !
Ok, I did the little recipe writed here KingSpec 128GB M.2 NVMe not found Debian+Ubuntu

and now the speed of my NVME increase a lot !!

rockpi@rockpi4b:~$ sudo iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
[sudo] password for rockpi:
Iozone: Performance Test of File I/O
Version $Revision: 3.429 $
Compiled for 64 bit mode.
Build: linux

    Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
                 Al Slater, Scott Rhine, Mike Wisner, Ken Goss
                 Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
                 Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
                 Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
                 Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
                 Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
                 Vangel Bojaxhi, Ben England, Vikentsi Lapa.

    Run began: Tue Mar 12 15:10:40 2019

    Include fsync in write timing
    O_DIRECT feature enabled
    Auto Mode
    File size set to 102400 kB
    Record Size 4 kB
    Record Size 16 kB
    Record Size 512 kB
    Record Size 1024 kB
    Record Size 16384 kB
    Command line used: iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
    Output is in kBytes/sec
    Time Resolution = 0.000001 seconds.
    Processor cache size set to 1024 kBytes.
    Processor cache line size set to 32 bytes.
    File stride size set to 17 * record size.
                                                          random    random     bkwd    record    stride
          kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
      102400       4    60903   103967    79528    82953    41992    85719
      102400      16   142777   267881   247469   248952   123519   261772
      102400     512   781774   910028   769780   770132   725685   878638
      102400    1024   971169  1026856   920207   906010   788857  1059701
      102400   16384  1125377  1226484  1208797  1208035  1205309  1164655

iozone test complete.


#15

Hi,

I did the same, but my results only improved at bit:

before:
sudo hdparm -Tt --direct /dev/nvme0n1

/dev/nvme0n1:
Timing O_DIRECT cached reads: 614 MB in 2.00 seconds = 306.61 MB/sec
Timing O_DIRECT disk reads: 920 MB in 3.00 seconds = 306.39 MB/sec

after:
udo hdparm -Tt --direct /dev/nvme0n1

/dev/nvme0n1:
Timing O_DIRECT cached reads: 950 MB in 2.00 seconds = 474.42 MB/sec
Timing O_DIRECT disk reads: 1316 MB in 3.00 seconds = 438.23 MB/sec

How can I install iozone?

Carsten


#16

Hello !
To install iozone

sudo apt install iozone3


#17

Cool, thx. I did not spoit ist is iozone3

here are my results (option -I dis give me an error, so I did not use it):

root@rockpi4b:/tmp# iozone -e -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
Iozone: Performance Test of File I/O
Version $Revision: 3.429 $
Compiled for 64 bit mode.
Build: linux

Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
             Al Slater, Scott Rhine, Mike Wisner, Ken Goss
             Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
             Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
             Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
             Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
             Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
             Vangel Bojaxhi, Ben England, Vikentsi Lapa.

Run began: Wed Mar 13 12:59:10 2019

Include fsync in write timing
Auto Mode
File size set to 102400 kB
Record Size 4 kB
Record Size 16 kB
Record Size 512 kB
Record Size 1024 kB
Record Size 16384 kB
Command line used: iozone -e -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
Output is in kBytes/sec
Time Resolution = 0.000001 seconds.
Processor cache size set to 1024 kBytes.
Processor cache line size set to 32 bytes.
File stride size set to 17 * record size.
                                                          random    random     bkwd    record    stride                                    
          kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
      102400       4  1129045  1373941  1648500  1692926  1208573  1254668                                                          
      102400      16  1299375  1589864  1835551  1931747  1421671  1461232                                                          
      102400     512   985505  1355517  1283321  1452912  1359262  1572724                                                          
      102400    1024   977517  1402778  1265571  1337655  1282953  1455931                                                          
      102400   16384  1005955  1362626  1320420  1384915  1314086  1402176

#18

Hi Mike,

very good that you got that done. But what did you do in detail? I stand with a Samsung 960 nvme ssd facing the same problem?!?
Best thanks in advance !

Telekomiker


#19

Also tried to connect the nvme directly to the board with the same issue


#20

Which nvme ssd are you using? @Lafades