Libre Computer Recommended eMMC Image Flashing Instructions

This is the recommended method of flashing the Libre Computer eMMC modules. This method offers the fastest flashing speed for eMMC modules and can be used to flash in bulk. Our distributors offer cost effective bulk eMMC flashing service as well so please reach out to them if you need that service.

Requirements

  • Proper Power Supply
  • eMMC module attached
  • MicroSD card
  • Display or UART connection
  • Network Connection or USB flash drive with image

Steps

  1. Flash a MicroSD card with any Linux image.
  2. Download or copy the image to your OS.
  3. Extract the image using xz -d IMAGE.xz.
  4. Use dd or Gnome Disk Utility to flash the eMMC. The eMMC should show up as /dev/mmcblk0. For dd, sudo dd if=IMAGE of=/dev/mmcblk0 bs=1M. Replace IMAGE with the name of the extracted file. You can also dd the compressed image directly via xz -cd IMAGE.xz | sudo dd of=/dev/mmcblk0 bs=1M. Replace IMAGE.xz with the path to the compressed image.

Bulk Flashing Hot-Plug eMMC Modules

eMMC modules can be hot-plugged to boards. After hot-plugging, you need to unbind and bind the eMMC so it detects the new module via the steps below:

  1. Unbind eMMC Module with libretech-wiring-tool
  2. Attach eMMC Module
  3. Bind eMMC Module with libretech-wiring-tool
  4. Flash Image using dd
  5. Unbind eMMC Moduel with libretech-wiring-tool
  6. Go back to step 2.
2 Likes

How to force Le Potato to boot from uSD instead of eMMC?

I have previously flashed raspbian 11 to eMMC and it has been working well from that for a long while. Now I am trying to get raspbian 12 onto eMMC, and I’ve written raspbian 12 to a uSD and inserted it, but the potato always boots up into raspbian 11 on the eMMC. :frowning:

Since right now I don’t care about saving data, I used Libre Computer AML-S905X-CC eMMC Flashing Steps from Linux with pyamlboot - #38 by Peter_Meigs advice to erase the eMMC boot block to force it to boot from uSD, like:

sudo dd if=/dev/zero of=/dev/mmcblk0 bs=1M count=1

But how do I boot from uSD if eMMC is also bootable? Can I force the potato to try uSD boot before eMMC boot? Or is there a boot selector that can be included by default in the eMMC image?

Le Potato does not have SPI flash for a bootloader so it has a fixed search sequence that is dumped onto UART. If you want to skip a certain device, remove the bootloader from the device via bs=512 seek=1 count=2047. This will wipe everything but the MBR table so you can maintain your data.

1 Like

Can the default bootloader be updated to prefer USB then uSD, and lastly eMMC?