Hello kengreen,
Ensure you flashcp’ed the usual latest culprits to the sbc first.
wget https://github.com/starfive-tech/VisionFive2/releases/download/VF2_v3.6.1/u-boot-spl.bin.normal.out
wget https://github.com/starfive-tech/VisionFive2/releases/download/VF2_v3.6.1/visionfive2_fw_payload.img
apt-get install mtd-utils
cat /proc/mtd
flashcp -v u-boot-spl.bin.normal.out /dev/mtd0
sync
flashcp -v visionfive2_fw_payload.img /dev/mtd1
sync
Ensure the SBC’s boot dip switches are at their default manufacturer settings.
Do a manufacturer wipe of the nvme to ensure it truly is wiped. It helps ensure a smooth running of the new img on a used nvme. Ensure no mountpoints are mounted on that nvme beforehand.
Dd the img to the nvme from any intel linux box. Ensure no mountpoints are mounted on that nvme beforehand.
Use gparted on the nvme to 1) fix the table (click yes) and 2) resize the last(root) partition to take up all the remaining capacity of the drive (right-click “btrfs root” and click “resize”).
I’m assuming you are root:
umount /run/media/cissy/root
wipefs --all /dev/sda
dd bs=4M conv=fsync if=./starfive-jh7110-VF2-515-3.8.2-nvme-minimal-desktop-wayland.img of=/dev/sda
gparted /dev/sda
Finally, install the nvme on the SBC and take out your sdcard. Power up, it should just magically boot to the nvme. The default boot order is to boot from the sdcard, if it’s not there then try the nvme if it’s there.