Hi,
I’m running Zynthian on a Pi4. I was using an SD card extender to be able to reach the card easily from my custom made housing. The extender however was giving issues (r/w errors). Since a beta bootloader has been released for the Pi4 that allows direct USB (SSD) boot I decided to give it a try.
On my Zynthian system, I followed the standard instructions on how to update the bootloader.
However, instead of copying the SD card, I burned a new Zynthian image on a usb stick (will be replaced by SSD), and overwrote ELF/DAT files as per instructions. If you want to burn/write the image to a USB SSD device on Windows, you first may need to create a partition on the SSD and perform a quick format so a drive letter is assigned and the drive will become accessible in order to allow the image to be written.
If you place the USB device in your PI now (without sd card inserted) the system will boot initially, but get stuck… this is due to an incorrect referal to the root file system on the SD card that does not exist anymore.
You can initially fix this (right after burning while the USB device is still in the host and before intial boot on the pi) by modifying cmdline.txt in the /boot directory, change current “root=/dev/mmcblk0p2” assignment to “root=/dev/sda2”, this will set the rootfs to point to the usb device.
Next step is to update the Zynthian cmdline.txt files that zynthian uses as template on a config change.
After starting the system with the USB drive inserted and SD card removed, also make the above modification in
/home/pi/zynthian-sys/boot/cmdline.txt
/home/pi/build/zynthian-sys/boot/cmdline.txt
(not sure if both files need to be changed)
IMPORTANT NOTE : You will need to redo the rename steps each time you updated Zynthian, before you reboot (so both the /boot/cmdline.txt and the two under /home/pi…) ; Just in case if you mess up here, simply redo all the cmdline.txt changes. In order to change the /boot/cmdline.txt you will offcourse temporary have to attach the USB device to another host computer.
Now you can configure Zynthian to match your hardware.
A final step is to expand the file system, raspi-config is setup to change the size of an SD card, so we need to do the following trick : “sed -E ‘s/mmcblk0p?/sda/’ /usr/bin/raspi-config | sudo bash” (credit the internet). Make sure to follow the hint to reboot the system directly after the file system is expanded.
After this you are good to go… so far no issues here…
For the real die hards… you can also update the bootloader settings, to first boot from USB and then from the SD card. This will allow to keep the SD inserted and to run different software by simply inserting a USB bootable device. It should also enable you to recover when the SD would get corrupted. (I had some issues with config.txt becoming corrupted on configuration changes, even with SD card directly inserted into the Pi).