Libre Computer AML-S905X-CC eMMC Flashing Steps from Linux with pyamlboot

Hi,
thanks for the post and instructions.

i was able to get another raspberry pi and was able to get the device to be detected with the aux power

without power running lsusb doesnt show the amlogic gx chip
with aux power lsusb shows amlogic gx chip.
running the erase command i get:

sudo pyamlboot/run.sh aml-s905x-cc erase-emmc
Using GX Family boot parameters
ROM: 2.4 Stage: 0.0
Writing /usr/local/lib/python3.9/dist-packages/files/libretech-cc/u-boot.bin.usb.bl2 at 0xd9000000…
[DONE]
Writing /usr/local/lib/python3.9/dist-packages/files/usbbl2runpara_ddrinit.bin at 0xd900c000…
[DONE]
Running at 0xd9000000…
[DONE]
Waiting…
[DONE]
ROM: 2.2 Stage: 0.8
Running at 0xd900c000…
[DONE]
Waiting…
[DONE]
Writing /usr/local/lib/python3.9/dist-packages/files/libretech-cc/u-boot.bin.usb.bl2 at 0xd9000000…
[DONE]
Writing /usr/local/lib/python3.9/dist-packages/files/usbbl2runpara_runfipimg.bin at 0xd900c000…
[DONE]
Writing /usr/local/lib/python3.9/dist-packages/files/libretech-cc/u-boot.bin.usb.tpl at 0x200c000…
[DONE]
Writing scripts/libretech-cc-erase-emmc.scr at 0x8000000…
[DONE]
Running at 0xd900c000…
[DONE]

but when i run the other command “sudo pyamlboot/run.sh aml-s905x-cc ums-emmc”
It gives me some errors.

sudo pyamlboot/run.sh aml-s905x-cc ums-emmc
Using GX Family boot parameters
Traceback (most recent call last):
File “/home/naku/pyamlboot/./boot.py”, line 132, in
usb.load_uboot()
File “/home/naku/pyamlboot/./boot.py”, line 86, in load_uboot
self.init_ddr()
File “/home/naku/pyamlboot/./boot.py”, line 74, in init_ddr
self.soc_id()
File “/home/naku/pyamlboot/./boot.py”, line 54, in soc_id
s = self.dev.identify()
File “/home/naku/pyamlboot/pyamlboot/pyamlboot.py”, line 306, in identify
ret = self.dev.ctrl_transfer(bmRequestType = 0xc0,
File “/usr/local/lib/python3.9/dist-packages/usb/core.py”, line 1082, in ctrl_transfer
ret = self._ctx.backend.ctrl_transfer(
File “/usr/local/lib/python3.9/dist-packages/usb/backend/libusb1.py”, line 893, in ctrl_transfer
ret = _check(self.lib.libusb_control_transfer(
File “/usr/local/lib/python3.9/dist-packages/usb/backend/libusb1.py”, line 602, in _check
raise USBTimeoutError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBTimeoutError: [Errno 110] Operation timed out

can you please help me out?

You can’t run it one after the other. Unplug everything and just run ums-emmc rather than erase-emmc.

3 Likes

thank you for the reply. i will try that out.

and then i can just mount the image and copy n dump the files over to the emmc drive?

The eMMC will show up as a USB mass storage device. Then you can use Gnome Disk Imager or some other disk utility like dd to flash the eMMC directly.

1 Like

hey i wanted to let you know i got it running :slight_smile: and ran updates its running ubuntu!
there were some power issues but iu got them solved and finally after several attempts it showed up as usb device i was able to use that tool baobab the gnome disk imager.

Thank you for your support. I would like to help out in the forum if possible :slight_smile:

could we use other low resource linux distros? like linux mate or the ones for digital signage?

See the notes at the top about weston. Weston is a wayland compositor and uses the least resources and comes pre-installed on the server images. It is much faster and tear free compared to X11. Ubuntu 22.04 Weston Desktop Help

1 Like

I have a Le Potato and a 64gb emmc module on the way from Amazon, but I’m curious if a mac can mount the Le Potato correctly in order to flash it. If not I have a Raspberry Pi Zero that should do the trick, but I’m still curious.

Should be able to on a Mac as long as you have the right python libraries. If it doesn’t work, post the error.

Where are the instructions to flash the eMMC from a uSD-booted Le Potato (or any other Libre computer)?

As in: flash uSD, insert blank eMMC and uSD into SBC, boot, now how to flash image onto eMMC using booted SBC?

Once you boot into Linux, you can flash the eMMC like any block device. The eMMC gets detected as /dev/mmcblk0.

1 Like

This helped me as well. :slight_smile: Thank you so much!

Is it the intention to use the eMMC module as a replacement for the SD card?

See Difference between MicroSD cards and eMMC Modules

Maybe I didn’t clarify myself good enough, sorry for that. My real question is: can I flash, for instance, the Raspbian image on the eMMC board so that the Le Potato SBC can boot from the eMMC module instead of the SD card? Which would mean that I can fully get rid of an SD card to boot up the system?

You can flash Le Potato’s eMMC. You can use the above guide to flash the regular SD card image to the eMMC and it will work. The other way is to just flash to /dev/mmcblk0 when booted from MicroSD card. Either way works.

Hi…I followed the procedure above and was able to successfully erase the emmc partition but I cannot get the next step to proceed. I have fully disconnected the La Frite board and powered it on exactly as before but every time I try to run the ums-emmc command it gives me the device not found error. I even tried re-running the erase-emmc as before but it also gives the same device not found error.

Is there a step I am missing? I only received the board and emmc modules a couple of days ago

interestingly enough, I didn’t hold down the reset button when I plugged in the LF board to my Pi and I then was able to run it. Not sure what difference that ended up making by not holding down that reboot button but it was enough that it worked.

1 Like

If there is no software on any boot device and the USB A next to the IR sensor is plugged into a USB host device, the board will go into USB load mode automatically.

I just got a ALL-H3-cc and an emmc module 32GB when i tried above command and substitute the name with all-h3-cc and tell script not found if try with the aml-s905x-cc it of course says device not found. can you tell me what command i should useing to erase-emmc and ums-emmc on a ALL-H3-cc board>

Thanks