it’s possible that you post a photo of the RPi boot diagnostic screen with one of the NVMe connected, but without the SD card inserted ?
Do we have to install the script so that we can use the NVME? I would love to do it all myself. Would the Pimoroni approach also work here?
Everything is open here.
AFAIK sd card was inserted when I took the pic. Anyway I tried to boot up the RPi w/o card but it didn’t work.
The information on the diagnostic screen is very helpful in getting an idea of what the bootloader is trying to do. Have you already posted a photo of this screen and I missed it? I can’t find it here.
For example at this photo:
→ SD card not inserted (this forces the diagnostic screen)
→ Message: “NVMe off”, but a few lines before it looks as if the config.txt in the boot partition was read from NVMe! And it can be seen that the kernel was the bad guy and does not provide NVMe support or is not compatible to the used bootloader.
→ additional there is version information about the current bootloader and that a power supply with max current of 5000 mA was forced via config (no USB-PD detected/negotiated).
…
I ordered the same one, can you say me what you did?
Step by step?
You are my last hope.
If you can add me on Discord pls: oemig
I use my Pi to make my 20 year old TV a SmartTV so I use PiOS.
- Install PiOS on a SDcard using a pc
- Install the NVME in the Argon Case
- Connect the Ribboncable as shown in the post 59/60 above
- Put the SDcard into the Pi
- Close the Argon One case and tighten all the 4 screws
- Boot into PiOS, complete the setup and connect the pi to the internet
- Install the EEPROM Script and the Argon Control Script
- Reboot
- Use the PiOS Imager to format yor NVME to Fat 32
9.5 If you only want to use the NVME as a storage you’re done - Install PiOS or an other OS on your NVME using the Imager
- Shut down your Pi and remove the SDcard
- Startup your PI and your OS should boot from the NVME
This worked for me.
Hello, first of all thank you.
Unfortunately it didn’t work, I got the “Failed to open device: nvme” “error” message, but it kinda understood that I’ve installed a nvme.
Anyway, while using your method I was finally able to copy my entire Pi OS to the nvme via an nvme to USB docking station, before I couldn’t done it.
I got a nvme board from Argon, now I will ask if I can get the ribbon cable, I just realized the cable is bent in some places.
hey guys,
i have the following problem:
nvme: wd sn850x
i can see the nvme when boot from sd card and i can use sd card copier or imager from PI OS
i managed to even boot from the nvme but only when the sd card is present and still setup as before.
whatever else i tried i ended up in the “initramfs” not detecting the root partition of the nvme.
any advice would be great.
regards
@vir2k ,
As I described above, without the information from the boot diagnostics screen, it’s like looking into a crystal ball.
- What bootloader version are you currently using (please include the date - not the word “latest”)
- Contents of your bootloader configuration (EEPROM)
- Contents of config.txt
…
thank you for your quick reply, Harry.
I understand why you would need specifics so here they are:
mike@pi:~ $ sudo rpi-eeprom-update
BOOTLOADER: up to date
CURRENT: Fri 16 Feb 15:28:41 UTC 2024 (1708097321)
LATEST: Fri 16 Feb 15:28:41 UTC 2024 (1708097321)
RELEASE: default (/lib/firmware/raspberrypi/bootloader-2712/default)
Use raspi-config to change the release.
bootloader config:
[all]
PSU_MAX_CURRENT=5000
BOOT_UART=1
POWER_OFF_ON_HALT=0
BOOT_ORDER=0xf416
PCIE_PROBE=1
config.txt
mike@pi:~ $ cat /boot/firmware/config.txt
For more options and information see
http://rptl.io/configtxt
Some settings may impact device functionality. See link above for details
Uncomment some or all of these to enable the optional hardware interfaces
dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on
Enable audio (loads snd_bcm2835)
dtparam=audio=on
Additional overlays and parameters are documented
/boot/firmware/overlays/README
Automatically load overlays for detected cameras
camera_auto_detect=1
Automatically load overlays for detected DSI displays
display_auto_detect=1
Automatically load initramfs files, if found
auto_initramfs=1
Enable DRM VC4 V3D driver
dtoverlay=vc4-kms-v3d
max_framebuffers=2
Don’t have the firmware create an initial video= setting in cmdline.txt.
Use the kernel’s default instead.
disable_fw_kms_setup=1
Run in 64-bit mode
arm_64bit=1
Disable compensation for displays with overscan
disable_overscan=1
Run as fast as firmware / board allows
arm_boost=1
[cm4]
Enable host mode on the 2711 built-in XHCI USB controller.
This line should be removed if the legacy DWC2 controller is required
(e.g. for USB device mode) or if USB support is not required.
otg_mode=1
[all]
dtparam=uart0=on
dtparam=nvme
dtparam=pciex1_gen=2
max_usb_current=1
the config.txt is irrelevant if i remove the sd card isn’t it? altough i’ve manually copied to the nvme, including cmdline.txt and checked fstab to have the right PARTUUID.
again, things work with the sd card inserted (i believe it uses the configuration from the sd card to boot from the nvme). what i don’t get is why … because i transfer the same config to the nvme and it ends up in the initramfs with the PARTUUID not found.
Have you perhaps ticked the box so that a new UUID is created when duplicating to the NVMe? You can check with lsblk and, if not matches, correct the entries in your cmdline.txt to the correct partition ID.
lsblk -lf /dev/nvme0n1
Please keep in mind, that you have 2 boot partitions with cmdline.txt if the SD card is inserted. It’s better to check the current mount state before you edit the cmdline.txt file.
For example at the output of “lsblk” or “df -h”.
i’ve tried everything i could think of.
if i create new UUID during clone or i just use imager, i amend the cmdline and everything to match that UUID … end up in the initramfs
if i just clone the partitions, including the UUID, i have to run the argon1.sh script and set raspi-config to boot from sd first (the recommended option) but doing it this way it boots from the nvme:
mike@pi:~ $ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
mmcblk0 179:0 0 29G 0 disk
├─mmcblk0p1 179:1 0 512M 0 part
└─mmcblk0p2 179:2 0 28.5G 0 part
nvme0n1 259:0 0 1.8T 0 disk
├─nvme0n1p1 259:1 0 512M 0 part /boot/firmware
└─nvme0n1p2 259:2 0 1.8T 0 part /
mike@pi:~ $ blkid
/dev/nvme0n1p1: LABEL_FATBOOT=“bootfs” LABEL=“bootfs” UUID=“50C8-AEAE” BLOCK_SIZE=“512” TYPE=“vfat” PARTUUID=“d2b7e95a-01”
/dev/nvme0n1p2: LABEL=“rootfs” UUID=“fc7a1f9e-4967-4f41-a1f5-1b5927e6c5f9” BLOCK_SIZE=“4096” TYPE=“ext4” PARTUUID=“d2b7e95a-02”
/dev/mmcblk0p1: LABEL_FATBOOT=“bootfs” LABEL=“bootfs” UUID=“50C8-AEAE” BLOCK_SIZE=“512” TYPE=“vfat” PARTUUID=“d2b7e95a-01”
/dev/mmcblk0p2: LABEL=“rootfs” UUID=“fc7a1f9e-4967-4f41-a1f5-1b5927e6c5f9” BLOCK_SIZE=“4096” TYPE=“ext4” PARTUUID=“d2b7e95a-02”
mike@pi:~ $
if i remove the sd card at this point, guess what … initramfs.
The only difference is that it doesn’t state that the pcie link is down. See photo
any thoughts? Things have stopped making sense to me
One important thing is, that the kernel and the firmware at boot partition is up to date. But I think you have updated already before.
If you start from the SD card the kernel seems to get more time to detect the NVMe and mount it later during the boot process.
Do you have tried to extend the detection time? Add this to your cmdline.txt “rootdelay=10”
Another thing I would try, if this makes a different in your config.txt
dtparam=pciex1_gen=1
pciex1_no_l0s=on
Edit: Because I have seen that there were some changes in bootloader release notes regarding the boot partition size/clusters - perhaps the partition size of your root partition could possibly trigger the issue. In such case you can only play a bit with parted to resize or wait until it’s fixed with a future bootloader.
This works, but there’s one missing step that solved my issues with the V3 NVME base for the Pi5…update the main argon board firmware via USB-C (uf2 file), as well. The “cp” command would not get the job done, but “rsync” did. I was good to go booting from NVME without the SD card inserted, afterwards. Good luck.
Could you please wirte how to update the firmware and what you mean with the commands? For people who have the same issues.
Thank you.
For the Argon One V3 NVME case and base, I used a 500Gb WD Black SN770.
-
Before assembly, attach the main argon board to a PC using the internal USB-C configuration port (not the power port!!). The instructions state that you must “hold” the case power button while plugging in the cable. This puts the board into external storage mode. Once the boards memory has mounted, you can let go of the power button.
-
Open a terminal (after downloading the uf2 file from the URL on the last page of the instructions), use the rsync command to copy the file from the PC download directory to the mounted location of the Argon board. “Drag annd Drop” did not work for me on Win10. Expect the argon board to automagically eject on a successful copy. It’s the desired behavior.
Note: These 2 steps were missing from my setup. I also started with the WD Black 1Tb SN850X, but went with the SN770 “before” updating the Argon board firmware. It’s entirely possible that the SN850X works fine…but I’m waiting on another Argon V3 case to arrive. When It does, I’ll try the SN850X and post the result.
Could you please link the source from this instructions?
here’s the link @AbeO was refering to: Argon ONE V3 Case and M.2 NVMe-PCIe Case for RPi 5 MANUAL – Argon 40 Technologies Web Store
i can confirm that the printed instructions booklet is missing the firmware update bit.
i can also confirm that copy/paste of the .uf2 works on windows.
testing it out on the WD SN850X now.