Le Potato - Boot from SSD

Following the guide at GitHub - libre-computer-project/libretech-flash-tool to create a bootable SSD.

Should the bootloader be flashed to a microSD card and then OS image to SSD?
Or just the OS image to SSD suffice?

Also trying to flash the OS image is not working.

sudo ./lft.sh distro-flash Raspbian 11 2022-09-22-raspbian-bullseylite aml-s905x-cc sda

DISTRO_list: DISTRO RELEASE VARIANT raspbian 11 2022-09-22-raspbian-bullseylite is not available.

DISTRO_flash: DISTRO server could not be reached.

sudo ./lft.sh distro-flash Raspbian 11 62fc93e815dd7b3994597e6b44dee53e9698a5fc4930d2f7c9d28c22a92ae951 aml-s905x-cc sda

DISTRO_list: DISTRO RELEASE VARIANT BOARD raspbian 11 62fc93e815dd7b3994597e6b44dee53e9698a5fc4930d2f7c9d28c22a92ae951 aml-s905x-cc is not available.

DISTRO_flash: DISTRO server could not be reached.

Please help.

Distro-flash is not completed yet. Use bl- flash for the sd card.

Thanks. I tried this (bl- flash to SD card and Raspbian-Lite OS image installed to SSD using Raspberry Pi Imager) and bootloader is showing an error about GUID Partition Table Header Signature is wrong error. How do i correct this?

It is probably due to an old GPT header on the disk. You need to wipe the old GPT partition table before flashing the SSD and MicroSD card. Will add this to libretech-flash-tool in the future.

Used gdisk to create a new GPT header on the MicroSD card. Then flashed the bootloader which corrupted the GPT table as reported by gdisk. Le Potato won’t boot with this card. Seems like this utility is not ready for use yet.

This utility just flashes the bootloader. It doesn’t modify partition tables. You need to create a new MBR table and not a GPT table. GPT tables sit at both the beginning and end of the disk. When the bootloader goes to read the tables, both protective MBR and the GPT header at the end of the disk conflict with the bootloader data. This is not an issue with the tool but rather how it is being used.

Got it. I have now flashed the bootloader to the MBR only MicroSD card. How about the SSD with the OS image? Should it be also MBR only?

It’s not that you absolutely need MBR, it’s that the partition table must be consistent or it will error out.

The MicroSD card has to be MBR because the bootloader starts at sector 1 (512B) and MBR starts at sector 0. This must not have a partial backup GPT partition table at the end of the disk or it will cause u-boot to error out as invalid disk (to prevent damage to data).

The SSD can be GPT or MBR as there’s no bootloader on it or rather the bootloader is not read from it. But it must be either MBR or GPT. Our images are MBR based so if it finds a partial backup GPT partition table while the beginning of the disk is a MBR partition table, it will also error out.

I understand it now. Flashed the SSD with the Raspbian Lite OS image using Raspberry PI Imager using MBR partition only. Now Le Potato starts the boot loader but it does not find the OS on the SSD (connected to the bottom USB port next to the ethernet port). So it keeps looping. Any idea as to what i am doing wrong?

Need the exact message. What is looping?

Some SSD might go over the power limit of standard USB Type A (2.5W). Le Potato can supply 5W on any port and a maximum of 5W per USB stack. Might need a powered hub for the SSD.

Here is a screenshot. The SSD is a m.2 intel drive in an external USB enclosure. The Le Potato is powered by a 18w power supply. HDMI port is connected to a portable monitor with its own power as well.

0 Storage Device(s) found. The USB SSD never enumerated probably because it doesn’t have enough power.