Hi all.
Regarding Petitboot that comes pre-installed in the Odroid M1's SPI. I 100% understand that the current image does not support Petitboot. I understand it is a work in progress. Is the intention though, to have the final production image support
Petitboot?
My understanding (and am happy to be corrected) is that without petitboot, booting from SATA/NVMe, without any other storage devices attached, isn't possible (u-boot limitation?).
I've been stuffing about and I have been able to get the current WIP build copied to NVMe SSD and booting from petitboot (with one outstanding limitation). At a high level:
Copy the "Armbian_22.11.0-trunk_Odroidm1_kinetic_edge_6.1.0-rc1.img.xz" to a USB stick. Not DD/Etcher/whatever. Just copied to the USB stick
It might be possible to download the image directly within the petitboot shell but the bundled busybox wget command doesn't support https.
Boot the M1 into petitboot with the above USB stick plugged in.
Extract and DD the image onto the NVMe block device
The USB stick will likely already be mounted in /usr/var/petitboot/mnt/dev/sda1/, so...
xz -d -c /usr/var/petitboot/mnt/dev/sda1/Armbian_22.11.0-trunk_Odroidm1_kinetic_edge_6.1.0-rc1.img.xz | dd of=/dev/nvme0n1 bs=4k
Tamper with the installed image a little before attempting to boot it:
mkdir /mnt/nvme0n1p1
mount /dev/nvme0n1p1 /mnt/nvme0n1p1
rm /mnt/nvme0n1p1/boot/boot.scr (this file existing seems to the petitboot parser segfault)
rm /mnt/nvme0n1p1/boot/boot.ini (for good measure)
Create a petitboot kboot.conf file with suitable settings:
echo "Armbian=/boot/Image initrd=/boot/uInitrd dtb=/boot/dtb/rockchip/rk3568-odroid-m1.dtb root=/dev/disk/by-label/armbi_root rootwait rootfstype=ext4 consoleblank=0 loglevel=5 splash=verbose earlycon console=ttyS2,1500000" >/mnt/nvme0n1p1/etc/kboot.conf
Reboot
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger
The main limitation with the above, which might be entirely because I'm only a few hours into learning about petitboot, is that using the above method still requires manual intervention at boot time. The above will add Armbian into the petitboot menu but it won't boot it automatically. You need to select it with the arrows and hit enter to start it booting. I'm going to post some questions on the Odroid forum and hopefully get this final quirk resolved.
Cheers
Shaun