M.2 NVMe Intel 1TB 660P Not reconized on Ubuntu Server


Here is a link to the item purchased:

No /dev/nvme* device is created when booted. I tried directly connected to the board and also through the riser device.

While looking at dmesg I see these errors:

[    3.875231] rockchip-pcie f8000000.pcie: PCIe link training gen1 timeout!
[    3.890425] rockchip-pcie: probe of f8000000.pcie failed with error -110

Any insight into why this m.2 nvme SSD wouldn’t be visible would be helpful.



HP SSD EX950 2TB not working
NVME not detected

Also found someone was using the Intel 660p on a NanoPC T4. Looks to be using Armbian? Maybe I’ll give the Armbian WIP for the Rockpi4 a try over the weekend to see if their support is any better.


Tried the Armbian nightly image and I also built an Armbian dev image. Different logs but same results with no /dev/nvme* device being populated. A line from the dmesg from the Armbian images:

rockchip-pcie: probe of f8000000.pcie failed with error -22

I also put this nvme drive into a PC, no issues. After initializing the drive w/ a GPT partition and some testing, I tried reloading rockpi4b-ubuntu-bionic-minimal-20190104_2101-gpt.img and firing up the nvme directly attached and via the extension board. Still doesn’t initialize the drive. This is a quality SSD with a native nvme SMI controller (SM2263). These QLC drives would be a good combination with these devices. Some what of a shame… Seems from the messages I find on other Rockchip boards with PCI-E support, they are flaky as well. Poor PCI-e implementation?


Hi, diginet

I am sorry for your bad experience. What’s your board’s serial number? The label on the plastic board. Also, are you using the m.2 extend board or directly to the m.2 connector on rock pi 4?


Hi Jack,

Not all is bad. I had good luck setting up Rancher’s new k3s, though these 1TB NVMe drives was a large part of my project for these boards. I’ve only tried the NVMe drive in two of my three boards I purchased. The serial numbers of these boards are RADXA1903-B0668 and RAXDA1903-B0658. I tried the m.2 extend board as well as directly connecting to the m.2 connector on both boards I previously mentioned. I’m really interested in getting this NVMe model going on these boards. I’m open to helping your support diagnose the issue by providing any logs, trying new images, etc…





The board should be pretty new and it should be no problem. We haven’t actually tested this model 660P but it should also fine since it’s tested on other rk3399 platform. Do you have any other NVMe SSD to test?

I don’t have any clue why it’s not working. Do you have multimeter? If you have, you can measure if the NVMe power is on by measuring the following pad 1 or pad 2. What’s the voltage here?



Voltage measured where highlighted:

Pad 1 to GND = 3.29v
Pad 2 to GND = 3.29v

I have a Samsung 500G 970 EVO Plus coming tomorrow to test. I’ll let you know how that goes.



The voltage is okay. Please test the 970 evo, we have tested 960 evo, it’s working very well. The speed is the fastest on ROCK Pi 4 among all the NVMe we tested.



Received the Samsung 970 EVO Plus 500G Today. Works just fine directly attached or in the m.2 Extension board. So I guess the board just doesn’t like the Intel 660P for whatever reason. I did notice that the Samsung had a tighter connection in the m.2 socket than the Intel 660P for what it’s worth.



I got this M2 NVME drive working.
It won’t detect same as in original post. But after few minutes and restart its detected.
I even got gen2 working gaining speeds over 600MB/s in hdparm. (using modfied script: KingSpec 128GB M.2 NVMe not found Debian+Ubuntu )
NVME not detected


That’s interesting, I’m guessing something wrong with the initial link training/handshake process. There have been quite a few updates around this in newer kernels. I tried Armbian’s latest build but didn’t realize until I got those Samsungs I referenced above, NVME isn’t working in their beta images for the RockPi4.


Posting here because I’m in the same situation… Intel 660p not being detected. If anyone figures out a reliable method, please do post it!