Pi 5 and NVMe SSD

May 21, 2024 Last reply: 2 years ago 20 Replies

In February I mentioned getting an Argon NEO 5 NVMe case for my Pi 5.



It was slightly fiddly to put it all together, but not really outside expectations. Linux was able to see my SSD without any trouble.



However I have not been able to get the Pi to boot directly from the SSD. It can see there’s something there but can’t interpret it properly; the diagnostic output (copy-typed) is:



NVME on 0 Trying partition: 0 Unable to read partition as FAT type: 32 lba: 0 '' ' ' clusters 0 (0) Trying partition: 0 Unable to read partition as FAT type: 32 lba: 0 '' ' ' clusters 0 (0) NVME off Timeout 00000000 3c303020 00000000 00000000 nvme: error 8 Failed to open device: 'nvme'



(Why is there ASCII ‘ 00<’ in the timeout message?)



My solution was to boot from the SD card but to configure it (via cmdline.txt and /etc/fstab) to mount the root system from the SSD. This works (and it’s not like the performance & capacity of the firmware partition is very important) though there are now two points of failure.



My interpretation of all this is that the hardware is connecting the SSD perfectly well, and the Linux kernel talks to it correctly, but the boot loader is failing to communicate properly with the SSD.



Based on forum posts there are many compatibility issues between the Pi



5 and NVMe devices, so anyone planning to buy one should do their research first.

In my case the SSD is a Crucial CT1000P5SSD8; I had it left over from a decommissioned PC.


Indeed. Recent pi hardware and the new bookworm release have some rough edges. In this case it looks like it (the bootloader) cant find the FAT partition. Now that could be that it is making some unwarranted assumptions about where on the disk that actually is.

And the disk has it either elsewhere, or mapped internally to elsewhere.

I note that it is trying partition 0.. is that actually where the FAT volume resides?

I mean could it be simply a case of reformatting the NVME to put the FAT partition where the firmware 'expects' it to be.

I had similar issues doing all usb boot...but stumbed on a config that worked using my tame team of random monkeys....

Agreed.

It is, yes. It’s the same layout as the SD card.

The diagnostics (‘cluster 0 etc’) suggest that whatever it thinks it’s reading, it’s not getting the data that’s actually on the SSD.

Yeah. I assumed you had done all the obvious stuff.

No problems with wimpy power supplies? apparently pi's and ssds take a lot of current at boot time

It’s the official PSU.

If it’s a power issue then it has to persist for minutes while the firmware is trying to boot (BOOT_ORDER=0xf461, so it loops around candidate devices indefinitely if it can’t find anything suitable) but instantly stop as soon as it’s loaded the kernel from the boot partition on the SD card. Not impossible, I suppose, but even if I had the tools/inclination to rule it in or out, it wouldn’t change the (local) solution...

I bought a Pi5 without the official PSU, or even a Pi4 official PSU. It would run for a minute or two and then crash. Completely unusable. It is now fine with the official PSU. I hadn't realised my high wattage USB chargers achieved the high wattage by negotiating a higher voltage. A strategy which was unusable by the Pi. The Pi being non-standard irritates me.

You have a reasonable solution, so why not chill for a bit, see if a firmware release fixes it, in the fullness of time.

I did see some mention of the type of FAT causing problems, i.e. exFAT=bad.

Official *27W* power supply? At least that's what Argon recommends.

Did you configure your Pi to boot from the SSD? You didn't say anything about that. Argon seems to provide a couple of scripts to config a Pi for that. Which is a little scary but I assume those steps in their scripts are needed. Although the settings listed are just a few in eeprom config and config.txt.

I saw a list of tested SSDs somewhere, here's one:

formatting link
It lists Crucial P2, P3 and P3 Plus.

There is an entry in config.txt that 'tells' the pi that it has a high power power supply. Otherwise it has to do an appl-ish sort of negotiation with its PSU to see if it is.

No, I was talking about the USB standard. This is from memory, so take with a pinch of salt.

I have high wattage USB C chargers for mobiles, pads etc. They quote 20 or 25 watts. Given I wasn't using any USB power draining devices, I assumed this would be OK for the Pi 5.

However, it wasn't OK, Pi 5 crashed. When I looked at the USB small print, the charger achieved a high wattage by boosting the voltage from

5v to 20v, still using a relatively low amps. AIUI, this is USB standard.

However, the Pi requires 5v (maybe even 5.1v) and a high 5 amps. Which is totally non-standard and makes the Pi 5 USB PSU effectively bespoke. I suppose, but haven't tested, the Pi 5 PSU is also no good to fast charge your mobile.

Presumably there is some good cost justification, but I don't like it. The Orange Pi 5 is fine on a standard USB fast charger, but it is generally lower power than the Raspberry Pi 5.

5 Volts at 5 amps is within the USB power spec, albeit less commonly used.

For God's sake it's high power or high current. Saying high wattage makes you look ignorant. Like all the left pondians who say "it's negative 15 today" when they mean "minus 15".

But I is ignorant. I was posting for other ignorant people so they would not make the mistakes wot I made.

I was also wrong, on a number of items:

5 amp is USB standard, as Chris points out, although the rPi5 PSU seems to be unique in offering it.

The rPi5 charger does up the voltage for devices that expect it, still limited to 27w.

Also, like the rPi5 the orange Pi5 seems also to be just 5v, but it gets away with normal USB chargers.

Tomato Tomatoe.

High wattage *is* high power. Power is measured in watts.

High power covers all cases which is why it was emphasised we use that in the 2 years of motors and power distribution modules in my Electrical & Electronic Engineering degree. Or we used VA.

The terms wattage and ampage were never used in any of the books / teaching material I used at the time.

Yes.

(It’s directly referenced in one of my later posts, but you could work it out from the diagnostics, which show it attempting to boot from NVMe and failing.)

Something like this ought to work, though I've not tested it as I don't have a Raspberry Pi 5 (though I do have a OnePlus 7 Pro):

formatting link
"Warp Charge" is a low-voltage (5V), high-current charging scheme OnePlus has used on some of its phones. 6A (from a 30W charger) ought to be more than enough for anything that Raspberry Pi is currently shipping.

It would be unusual to come across a USB-PD power supply that did 5V 5A.

5A is a relatively recent addition to the USB-PD spec. Previously it stopped at 3A. My 45W Samsung USB-PD charger gets 45W by doing 15V 3A. My USB-PD laptop charger gets 60W by doing 20V 3A.

That rant makes you sound like a weirdo.

I have a 130W Dell USB-C PSU. It does USB-PD but strangely: it only supports 5V and 20V, both at 6.5A. So you can charge things that aren't Dell laptops, but slowly. Normally phones etc would switch up to 9, 12 or

15V to pull more power, but this doesn't have those rails. They continue to charge from 5V at whatever max current they're happy to take (2A, 3A?) - like a dumb USB-A wall charger.

I haven't tried it on a Pi5, but I expect it would work just fine.

Theo

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required