Trouble booting on eMMC module for Odoird UX4

I have several Odroids already running with SD cards.

I am flashing a eMMC module by hard kernel. (the same manufacturer) with Balena Etcher.
The exact same img as an sd card.

However I get this error before boot:
`U-Boot 2017.05-15377-gedb23d4 (Aug 24 2017 - 07:09:51 -0300) for ODROID-XU4

CPU: Exynos5422 @ 800 MHz
Model: Odroid XU4 based on EXYNOS5422
Board: Odroid XU4 based on EXYNOS5422
Type: xu4
MMC Device 0 (eMMC): 14.6 GiB
Info eMMC rst_n_func status = enabled
Card did not respond to voltage select!
mmc_init: -95, time 11
*** Warning - bad CRC, using default environment

In: serial
Out: serial
Err: serial
Net: No ethernet found.
Press quickly ‘Enter’ twice to stop autoboot: 0
reading boot.ini
** Unable to read file boot.ini **
cfgload: no boot.ini or empty file
mmc block read, dev 0, addr 0x40008000, blk start 2047, blk cnt 16384
Bad Linux ARM zImage magic!`

This post here seems to a bit of an answer:

Please refer to this table here.
The offset for the u-boot environment depends on the u-boot version. The difference between µSD and eMMC is one sector.
The third parameter in `/etc/fw_env.config´ defines the block size. Please try


/dev/mmcblk0 0x99C00 0x4000 0x100



/dev/mmcblk0 0xFBC00 0x4000 0x100

according to your u-boot version.

Where is /etc/fw_env.config can I implement this chance?

Can Balena?

For details I enabled support access to a device with a serial uart connection to the affected device:

I don’t know how to create a serial connection in linux but feel free to use the main container to mess around in if you need to apt install something.

That should let you see what I can see.


Hi Thomas,

This is known issue:

I added your interest in this feature and also pinged the repo maintainers to see if we have more information available at this time.


Hey @taclog just to let you know the above issue has now been resolved and so should be making its way into a release soon.

Thanks @chrisys

Trying to build it myself to test it now. Do you know what the release cycle is like for this kind of update?

Usually for a new device type release, it will need to go through a testing phase. Currently it looks like the 2.38.3+rev2 version is on staging, so you might be able to test against that if you don’t want to build yourself. I think the testing should happen over the next few days, so with any luck it will be in production by the end of the week or early next.

Hey @shaunmulligan,

I just tried to dig around to find any reference to 2.38.2+rev2.

I found this cool colorful little page.

Where can I find the staging version to download?
My build is nearly finished. Am I correct in assuming I can just replace the config.json and it will get added to one of my applications?


Hey @taclog yeah that colorful page is awesome :slight_smile: the staging version can be found at . But you will need to create a separate account there. That is our testing instance, so what I would do is get the image from staging and then as you said, replace the config.json with the one from your production app. Then it will automatically join that app when booted.

Hey @shaunmulligan,

I wish I had better news, I got the image, confirmed it is v2.38.3+rev2 and flashed it. The Odoird still does not boot. :frowning:

I am connecting the uart interface to confirm we are seeing the same error messages.


Greetings future people.
After working with the great people at Balena for a good amount of time. We got this working!

There are some instructions required that I haven’t seem Balena post anywhere yet so I will let them do that.

However, please note. We have had a mixed bag of success. The official hard kernel emmc modules fail to flash correctly and become corrupted about 50 percent of the time. I am talking about these ones.

We have had 100 percent success with these ones.

Good luck to anyone who goes down this path!