TL;DR; don’t but the Rock Pi 4 a/b/c if you plan on using it with ANY samsung evo. You will quite likely not get it working at all.
I’ve been trying for months to get this damn board to work properly.
After installing the normal debian images provided by you guys on an eMMC, the process of updating the bootloader is just stupidly broken.
There are a load of issues with the script with the wiki not helping one bit in making it any easier to understand. Information seems to be scattered everywhere and i fully realize that my post is going to help in making it just a little worse still.
First, the wiki page: https://wiki.radxa.com/Rockpi4/install/NVME
It’s about as bad as you can get it.
If you follow everything to the letter, it fails on:
wget -O - apt.radxa.com/$DISTRO/public.key | sudo apt-key add -
becaue, after getting your debian, you don’t have wget yet.
So you first need to do
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install -y wget
Next: these steps are completely redundant (the update already takes care of them)
$ sudo apt-get install -y rockchip-fstab $ sudo apt-get install -y rockchip-overlay $ sudo apt-get install -y rockpi4-dtbo
Then you get sudo apt-get install -y rockpi4c-rk-u-boot-latest
Where the real trouble starts.
This install is “supposedly” executing 2 steps.
Step 1 is never executed. Never!
Because it is commented out in /usr/local/sbin/rockpi4c_upgrade_bootloader.sh
Why? Really, why?
So half of the script is already dead on arrival.
Perhaps step 2 works?
Nope. It’s professionally wrecked like hell.
It should backup your boot but instead backs up your whole drive on the drive itself because of this:
MNT_DEV=$(findmnt / -n -o SOURCE)
That command evaluates to my “/” partition and finds /dev/mmcblk1p2.
That is the whole eMMC device.
The script then goes on to “happily” dd (disk dump) the whole drive on the drive itself and obviously fails because it runs out of space.
Now i manually modified the script to just use /dev/mtd0. That made the flashing work, my SPI now has the “latest” u-boot version (it claims to have U-Boot 2017.09-2699-gf18abd08ab (May 24 2021 - 01:11:42 +0000), Build: jenkins-linux-build-release-590 on the serial console, yes i connected a serial console to debug).
So, with my hopes up, flashed an EVO 960 500GB NVMe to hopefully finally get the darn device to boot.
Just to end up with:
1: kernel-4.4.154-112-rockchip-gfdb18c8bab17 Retrieving file: /initrd.img-4.4.154-112-rockchip-gfdb18c8bab17 reading /initrd.img-4.4.154-112-rockchip-gfdb18c8bab17 Error reading cluster ** Unable to read file /initrd.img-4.4.154-112-rockchip-gfdb18c8bab17 ** Skipping kernel-4.4.154-112-rockchip-gfdb18c8bab17 for failure retrieving initrd SCRIPT FAILED: continuing... ** fs_devread read error - block Failed to mount ext2 filesystem... ** Unrecognized filesystem type ** ** fs_devread read error - block Failed to mount ext2 filesystem... ** Unrecognized filesystem type ** ** fs_devread read error - block Failed to mount ext2 filesystem... ** Unrecognized filesystem type ** MMC: no card present mmc_init: -123, time 0 Card did not respond to voltage select! mmc_init: -95, time 26
After a lot more digging i finally found out why.
The EVO 960 is not supported, neither is the 970.
Which i found out from this topic: SPI + NVMe booting(beta)
Along with the FAQ that happily states EVO NVMe’s are working. Just not these two.
It would be an understatement to say that i’m mad at this point.
Now i tried a couple different EVO’s (960, 970 both in 500GB and 1TB versions) and none seems to work. Pathetic, Radxa. Really pathetic! And the way you describe it on your site makes one think that it works. There are u-boot versions (armbian and mainline) that do seem to work. I haven’t tried them as it likely (assumption) cripples other features.
Radxa, please make an u-Boot that WORKS with these drives! It has been done before so what’s holding you back?
I’m totally done with this SBC. I regret buying it. The annoying thing is that i could’ve never known this because Radxa is stupendously bad at telling it’s potential user that it’s not going to work in certain common cases (the Samsung NVMe’s are very common). My EVO 960 is still, to this day, not on the FAQ.
A waste, i really like the hardware.