7 7
Burkhard Kneiseler

Odroid XU4 - Ubuntu Xenial doesn't run on eMMC

Recommended Posts

Dear all,

 

thanks for the work of you, to provide us with the Armbian Images for our arm-based boards.

 

BUt i've a small issue, starting the last Image for Odroid XU4. If I write the Image to a SD-Card and start the XU4, all Things run well. When I write the Image to my eMMC-Card (original Hardkernel, 64GB), the XU4 doesn't start.

 

Normally, it's not such a big Problem, but there is a massive speedup, using eMMC with XU4.

 

How can I get Armbian startet, installed on an eMMC?

 

Many thanks for your Support,

 

Burkhard

Share this post


Link to post
Share on other sites

Can you perhaps provide serial console boot log? Unfortunately I don't have any eMMC for XU4 around.

 

Are you trying to boot mainline kernel 4.x ?

Share this post


Link to post
Share on other sites

Hi,

 

I've tried Legacy 3.10.104 (Debian Jessie & Ubuntu)  and also mainline 4.9.7 Ubuntu). 

Tried to start with connected HDMI-Monitor and mouse/keyboard. Not via SSH or something else. If I put the eMMC in, the screen doesn't show anything. Nothing happens with the XU4.

With SD-card, anything runs well.

 

Older Images are running from eMMC without any problems.

Share this post


Link to post
Share on other sites

As far as I know on XU4 eMMC u-boot is stored in the boot partition and default environment requires FAT partition to boot from. So it needs to be handled by nand-sata-install: other update u-boot in the hidden boot partition or use FAT boot partition when installing on eMMC.

Share this post


Link to post
Share on other sites

HI,

 

thanks for that Info. I'm wondering, because Jessie-Image: Armbian_5.14_Odroidxu4_Debian_jessie_3.10.102 is running perfectly on my eMMC, without any modifications. The problems are completely new since Version: Armbian_5.25_Odroidxu4_Debian_jessie_default_3.10.104.

 

What are the differences between these two versions?

Share this post


Link to post
Share on other sites

Hi,

 

okay, so far, it's clear. But am I wrong: If I write the Armbian Image to an eMMC, there I found a FAT boot-partition. If that cannot run on XU4 with eMMC, how to install the nand-sata-install?

 

I looked at the Github from Igor Pecnovik for the nand-sata-install.sh. But at the moment, this is a closed book to me.  :wacko:

 

I've forgott to say, I'm really a newbie on working with Linux and Odroids  :(. What I want, a running Armbian with installed OMV 3.0.xx. BEfore, I used a RasPi 3, but I want to have the extras of USB3 and GB-Lan. For That reason, at the moment, there is only an Odroid XU4.

Share this post


Link to post
Share on other sites

nand-sata-install script is present on the system. Just open a terminal and type. You have to boot from SD card and have eMMC present. Unfortunately this scenario is untested by me so I don't know it it 100% works. It should.

Share this post


Link to post
Share on other sites

okay, so far, it's clear. But am I wrong: If I write the Armbian Image to an eMMC, there I found a FAT boot-partition. If that cannot run on XU4 with eMMC, how to install the nand-sata-install?

I don't have this board, but judging by the Hardkernel Wiki Odroid with eMMC can still boot from SD and boot priority should be selectable with a special switch. So the idea is - boot from SD and use nand-sata-install to write the system to the eMMC. Unfortunately this double partition scenario is not currently implemented (other Odroid board like C0, C1, C2 don't need this) so currently your easy options are running the system from SD or using nand-sata-install to start from SD but have the system on the eMMC. Or just use an older release.

Share this post


Link to post
Share on other sites

I guess this is the reason why my XU4 stopped working suddenly (using legacy kernel). Have been running it for long time with no problems, but after updating the kernel yesterday my XU4 server does not boot anymore. Also using original 64GB eMMC from Hardkernel.

 

Board lights up the red led and fan starts spinning, but the display port does not give any output (HDMI).

Share this post


Link to post
Share on other sites

I guess this is the reason why my XU4 stopped working suddenly (using legacy kernel). Have been running it for long time with no problems, but after updating the kernel yesterday my XU4 server does not boot anymore. Also using original 64GB eMMC from Hardkernel.

 

Board lights up the red led and fan starts spinning, but the display port does not give any output (HDMI).

I guess you also doesn't have serial console? We would really like to fix this, instead going back to older schema.

Share this post


Link to post
Share on other sites

I guess this is the reason why my XU4 stopped working suddenly (using legacy kernel). Have been running it for long time with no problems, but after updating the kernel yesterday my XU4 server does not boot anymore. Also using original 64GB eMMC from Hardkernel.

Those changes should not affect upgrades on existing images anyway.

Share this post


Link to post
Share on other sites

I confirm, there is a big issue with this update. I restarted my Odroid XU4 yesterday because it was asked to do so after logging on SSH. It isn't working anymore (no blinking blue led anymore).

I formatted everything on the eMMC card and installed the new ISO, but it doesn't boot.

Can you resolve this issue quickly because it is not very serious...

Share this post


Link to post
Share on other sites

Can you resolve this issue quickly because it is not very serious...

 

We can't start to resolve this:

 

- without any logs

or

- without possibility to reproduce and catch logs. I don't have eMMC card for XU4

Share this post


Link to post
Share on other sites

Hi there.

Now I have this issue too. Today I had upgraded my system on XU4 from 5.22 to 5.25 and it stopped working.

 

 

We can't start to resolve this:
 

- without any logs

or

- without possibility to reproduce and catch logs. I don't have eMMC card for XU4

 

 

I have usb-uart and  i can catch logs for you. Any help wanted!

Share this post


Link to post
Share on other sites


 

U-Boot 2012.07-00008-ge2d58a1-dirty (Aug 08 2014 - 20:57:19) for Exynos5422

 

CPU: Exynos5422 Rev0.1 [Samsung SOC on SMP Platform Base on ARM CortexA7]

APLL = 800MHz, KPLL = 800MHz

MPLL = 532MHz, BPLL = 825MHz

 

Board: XYREF5422

DRAM: 2 GiB

WARNING: Caches not enabled

 

TrustZone Enabled BSP

BL1 version: ÿ/áâ

VDD_KFC: 0x44

LDO19: 0xf2

 

Checking Boot Mode ... EMMC

MMC: S5P_MSHC0: 0, S5P_MSHC2: 1

MMC Device 0: 14.7 GiB

MMC Device 1: there are pending interrupts 0x00000001

14.8 GiB

MMC Device 2: MMC Device 2 not found

*** Warning - bad CRC, using default environment

 

In: serial

Out: serial

Err: serial

Net: No ethernet found.

Press 'Enter' or 'Space' to stop autoboot: 1 0

reading boot.ini

 

8528 bytes read

Loading boot.ini from FAT

Find boot.ini file from FAT/Ext4 Area!!

boot.ini command = setenv initrd_high "0xffffffff"

boot.ini command = setenv fdt_high "0xffffffff"

boot.ini command = setenv macaddr "00:1e:06:61:7a:55

boot.ini command = setenv bootrootfs "console=tty1 loglevel=1 root=/dev/mmcblk0p2 rootwait ro fsck.repair=yes"

boot.ini command = setenv bootcmd "fatload mmc 0:1 0x40008000 zImage; fatload mmc 0:1 0x44000000 dtb/exynos5422-odroidxu3.dtb; bootz 0x40008000 0x44000000"

boot.ini command = setenv vout "hdmi"

boot.ini command = setenv governor "performance"

boot.ini command = setenv HPD "true"

boot.ini command = setenv hdmi_tx_amp_lvl "31"

boot.ini command = setenv hdmi_tx_lvl_ch0 "3"

boot.ini command = setenv hdmi_tx_lvl_ch1 "3"

boot.ini command = setenv hdmi_tx_lvl_ch2 "3"

boot.ini command = setenv hdmi_tx_emp_lvl "6"

boot.ini command = setenv hdmi_clk_amp_lvl "31"

boot.ini command = setenv hdmi_tx_res "0"

boot.ini command = setenv hdmi_phy_control "hdmi_tx_amp_lvl=${hdmi_tx_amp_lvl} hdmi_tx_lvl_ch0=${hdmi_tx_lvl_ch0} hdmi_tx_lvl_ch1=${hdmi_tx_lvl_ch1} hdmi_tx_lvl_ch2=${hdmi_tx_lvl_ch2} hdmi_tx_emp_lvl=${hdmi_tx_emp_lvl} hdmi_clk_amp_lvl=${hdmi_clk_amp_lvl} hdmi_tx_res=${hdmi_tx_res} HPD=${HPD} vout=${vout}"

boot.ini command = setenv bootargs "${bootrootfs} ${videoconfig} smsc95xx.macaddr=${macaddr} governor=${governor} ${hdmi_phy_control}"

boot.ini command = boot

reading zImage

 

3392720 bytes read

reading dtb/exynos5422-odroidxu3.dtb

 

52006 bytes read

 

Starting kernel ...

 

Share this post


Link to post
Share on other sites

Hi New here . 

 

I tried doing the nand-sata-install from the SD card to the emmc and can confirm that it is currently not working.No console cable to post my startup sorry.

Share this post


Link to post
Share on other sites

@Nerten

 

This does not look to be Armbian boot, at least no recent.

 

This is how it looks like on SD card:

 

 

 

U-Boot 2012.07 (Feb 06 2017 - 16:16:49) for Exynos5422

CPU: Exynos5422 Rev0.1 [Samsung SOC on SMP Platform Base on ARM CortexA7]
APLL = 800MHz, KPLL = 800MHz
MPLL = 532MHz, BPLL = 825MHz

Board: HardKernel ODROID
DRAM:  2 GiB
WARNING: Caches not enabled

TrustZone Enabled BSP
BL1 version: VDD_KFC: 0x44
LDO19: 0xf2

Checking Boot Mode ... SDMMC
MMC:   S5P_MSHC2: 0, S5P_MSHC0: 1
MMC Device 0: 29.8 GiB
MMC Device 1: [ERROR] response timeout error : 00000104 cmd 1
Card did not respond to voltage select!
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Press quickly 'Enter' twice to stop autoboot:  0 
there are pending interrupts 0x00000001

** Unable to use mmc 0:1 for fatload **
Loading file "/boot/boot.ini" from mmc device 0:1 xxa1
9509 bytes read
Loading boot.ini from ext4 0:1
Find boot.ini file from FAT/Ext4 Area!!
boot.ini command = setenv rootdev "/dev/mmcblk0p1"
boot.ini command = setenv initrd_high "0xffffffff"
boot.ini command = setenv fdt_high "0xffffffff"
boot.ini command = setenv macaddr "00:1e:06:61:7a:55
boot.ini command = setenv bootrootfs "console=tty1 loglevel=1 root=${rootdev} rootwait ro fsck.repair=yes"
boot.ini command = setenv vout "hdmi"
boot.ini command = setenv cecenable "false" # false or true
boot.ini command = setenv governor "performance"
boot.ini command = setenv HPD "true"
boot.ini command = setenv hdmi_tx_amp_lvl  "31"
boot.ini command = setenv hdmi_tx_lvl_ch0      "3"
boot.ini command = setenv hdmi_tx_lvl_ch1      "3"
boot.ini command = setenv hdmi_tx_lvl_ch2      "3"
boot.ini command = setenv hdmi_tx_emp_lvl      "6"
boot.ini command = setenv hdmi_clk_amp_lvl     "31"
boot.ini command = setenv hdmi_tx_res      "0"
boot.ini command = setenv hdmi_phy_control "hdmi_tx_amp_lvl=${hdmi_tx_amp_lvl} hdmi_tx_lvl_ch0=${hdmi_tx_lvl_ch0} hdmi_tx_lvl_ch1=${hdmi_tx_lvl_ch1} hdmi_tx_lvl_ch2=${hdmi_tx_lvl_ch2} hdmi_tx_emp_lvl=${hdmi_tx_emp_lvl} hdmi_clk_amp_lvl=${hdmi_clk_amp_lvl} hdmi_tx_res=${hdmi_tx_res} HPD=${HPD} vout=${vout}"
boot.ini command = ext4load mmc 0:1 0x40008000 /boot/zImage || fatload mmc 0:1 0x40008000 zImage || ext4load mmc 0:1 0x40008000 zImage
Loading file "/boot/zImage" from mmc device 0:1 xxa1
3392352 bytes read
boot.ini command = ext4load mmc 0:1 0x42000000 /boot/uInitrd || fatload mmc 0:1 0x42000000 uInitrd || ext4load mmc 0:1 0x42000000 uInitrd
Loading file "/boot/uInitrd" from mmc device 0:1 xxa1
6351654 bytes read
boot.ini command = ext4load mmc 0:1 0x44000000 /boot/dtb/exynos5422-odroidxu3.dtb || fatload mmc 0:1 0x44000000 dtb/exynos5422-odroidxu3.dtb || ext4load mmc 0:1 0x44000000 dtb/exynos5422-odroidxu3.dtb
Loading file "/boot/dtb/exynos5422-odroidxu3.dtb" from mmc device 0:1 xxa1
52006 bytes read
boot.ini command = fdt addr 0x44000000
boot.ini command = if test "${cecenable}" = "false"; then fdt rm /cec@101B0000; fi
boot.ini command = setenv bootargs "${bootrootfs} ${videoconfig} smsc95xx.macaddr=${macaddr} governor=${governor} ${hdmi_phy_control} ${extraargs}"
boot.ini command = bootz 0x40008000 0x42000000 0x44000000
## Loading init Ramdisk from Legacy Image at 42000000 ...
   Image Name:   uInitrd
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    6351590 Bytes = 6.1 MiB
   Load Address: 00000000
   Entry Point:  00000000
## Flattened Device Tree blob at 44000000
   Booting using the fdt blob at 0x44000000
   Using Device Tree in place at 44000000, end 4400fb25

Starting kernel ...

 

 

I need bootlog from any of those images:

 

https://www.armbian.com/odroid-xu4

 

written on eMMC. Well, in worse case I'll need to get eMMC and see what's going on :(

Share this post


Link to post
Share on other sites

 

@Nerten

 

This does not look to be Armbian boot, at least no recent.

 

It's Armbian, had installed 5.14, upgraded to 5.17 -> 5.20 -> 5.22 -> 5.25.

Share this post


Link to post
Share on other sites

It's Armbian, had installed 5.14, upgraded to 5.17 -> 5.20 -> 5.22 -> 5.25.

 

Well, its nice to hear that it survive this much upgrade :) ... but we have a problem with recent build :( which is single EXT4 partition and we changed boot scripts, boot loader received one patch ... 

Share this post


Link to post
Share on other sites

Well, its nice to hear that it survive this much upgrade :) ... but we have a problem with recent build :( which is single EXT4 partition and we changed boot scripts, boot loader received one patch ... 

Boot scripts are not upgraded, so older images should not be affected.

 

boot.ini command = setenv bootrootfs "console=tty1 loglevel=1 root=/dev/mmcblk0p2 rootwait ro fsck.repair=yes"

I wonder if eMMC is not visible as /dev/mmcblk0 in some cases. Changing console output to serial also may help.

Share this post


Link to post
Share on other sites

Here is log from fresh-installed to emmc Armbian 5.25:

 

 



U-Boot 2012.07-00008-ge2d58a1-dirty (Aug 08 2014 - 20:57:19) for Exynos5422

CPU: Exynos5422 Rev0.1 [Samsung SOC on SMP Platform Base on ARM CortexA7]
APLL = 800MHz, KPLL = 800MHz
MPLL = 532MHz, BPLL = 825MHz

Board: XYREF5422
DRAM:  2 GiB
WARNING: Caches not enabled

TrustZone Enabled BSP
BL1 version: ÿ/áâ
VDD_KFC: 0x44
LDO19: 0xf2

Checking Boot Mode ... EMMC
MMC:   S5P_MSHC0: 0, S5P_MSHC2: 1
MMC Device 0: 14.7 GiB
MMC Device 1: [ERROR] response timeout error : 00000104 cmd 1
Card did not respond to voltage select!
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Press 'Enter' or 'Space' to stop autoboot:  1  0 

** Unable to use mmc 0:1 for fatload **
Loading file "/boot/boot.ini" from mmc device 0:1 xxa1
9509 bytes read
Loading boot.ini from ext4 0:1
Find boot.ini file from FAT/Ext4 Area!!
boot.ini command = setenv rootdev "/dev/mmcblk0p1"
boot.ini command = setenv initrd_high "0xffffffff"
boot.ini command = setenv fdt_high "0xffffffff"
boot.ini command = setenv macaddr "00:1e:06:61:7a:55
boot.ini command = setenv bootrootfs "console=tty1 loglevel=1 root=${rootdev} rootwait ro fsck.repair=yes"
boot.ini command = setenv vout "hdmi"
boot.ini command = setenv cecenable "false" # false or true
boot.ini command = setenv governor "performance"
boot.ini command = setenv HPD "true"
boot.ini command = setenv hdmi_tx_amp_lvl  "31"
boot.ini command = setenv hdmi_tx_lvl_ch0      "3"
boot.ini command = setenv hdmi_tx_lvl_ch1      "3"
boot.ini command = setenv hdmi_tx_lvl_ch2      "3"
boot.ini command = setenv hdmi_tx_emp_lvl      "6"
boot.ini command = setenv hdmi_clk_amp_lvl     "31"
boot.ini command = setenv hdmi_tx_res      "0"
boot.ini command = setenv hdmi_phy_control "hdmi_tx_amp_lvl=${hdmi_tx_amp_lvl} hdmi_tx_lvl_ch0=${hdmi_tx_lvl_ch0} hdmi_tx_lvl_ch1=${hdmi_tx_lvl_ch1} hdmi_tx_lvl_ch2=${hdmi_tx_lvl_ch2} hdmi_tx_emp_lvl=${hdmi_tx_emp_lvl} hdmi_clk_amp_lvl=${hdmi_clk_amp_lvl} hdmi_tx_res=${hdmi_tx_res} HPD=${HPD} vout=${vout}"
boot.ini command = ext4load mmc 0:1 0x40008000 /boot/zImage || fatload mmc 0:1 0x40008000 zImage || ext4load mmc 0:1 0x40008000 zImage
Loading file "/boot/zImage" from mmc device 0:1 xxa1
3392720 bytes read
boot.ini command = ext4load mmc 0:1 0x42000000 /boot/uInitrd || fatload mmc 0:1 0x42000000 uInitrd || ext4load mmc 0:1 0x42000000 uInitrd
Loading file "/boot/uInitrd" from mmc device 0:1 xxa1
6351073 bytes read
boot.ini command = ext4load mmc 0:1 0x44000000 /boot/dtb/exynos5422-odroidxu3.dtb || fatload mmc 0:1 0x44000000 dtb/exynos5422-odroidxu3.dtb || ext4load mmc 0:1 0x44000000 dtb/exynos5422-odroidxu3.dtb
Loading file "/boot/dtb/exynos5422-odroidxu3.dtb" from mmc device 0:1 xxa1
52006 bytes read
boot.ini command = fdt addr 0x44000000
boot.ini command = if test "${cecenable}" = "false"; then fdt rm /cec@101B0000; fi
boot.ini command = setenv bootargs "${bootrootfs} ${videoconfig} smsc95xx.macaddr=${macaddr} governor=${governor} ${hdmi_phy_control} ${extraargs}"
boot.ini command = bootz 0x40008000 0x42000000 0x44000000
## Loading init Ramdisk from Legacy Image at 42000000 ...
   Image Name:   uInitrd
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    6351009 Bytes = 6.1 MiB
   Load Address: 00000000
   Entry Point:  00000000
## Flattened Device Tree blob at 44000000
   Booting using the fdt blob at 0x44000000
   Using Device Tree in place at 44000000, end 4400fb25

Starting kernel ...

 

 

Share this post


Link to post
Share on other sites

Here is log for Armbian 5.25 with mainline kernel 4.9.7:

 

 



U-Boot 2012.07-00008-ge2d58a1-dirty (Aug 08 2014 - 20:57:19) for Exynos5422

CPU: Exynos5422 Rev0.1 [Samsung SOC on SMP Platform Base on ARM CortexA7]
APLL = 800MHz, KPLL = 800MHz
MPLL = 532MHz, BPLL = 825MHz

Board: XYREF5422
DRAM:  2 GiB
WARNING: Caches not enabled

TrustZone Enabled BSP
BL1 version: ÿ/áâ
VDD_KFC: 0x44
LDO19: 0xf2

Checking Boot Mode ... EMMC
MMC:   S5P_MSHC0: 0, S5P_MSHC2: 1
MMC Device 0: 14.7 GiB
MMC Device 1: [ERROR] response timeout error : 00000104 cmd 1
Card did not respond to voltage select!
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Press 'Enter' or 'Space' to stop autoboot:  1  0 

** Unable to use mmc 0:1 for fatload **
Loading file "/boot/boot.ini" from mmc device 0:1 xxa1
** File not found /boot/boot.ini
ext4load - load binary file from a Ext4 filesystem

Usage:
ext4load <interface> <dev[:part]> [addr] [filename] [bytes]
	  - load binary file 'filename' from 'dev' on 'interface'
		 to address 'addr' from ext4 filesystem
** Bad partition 2 **
ext4load - load binary file from a Ext4 filesystem

Usage:
ext4load <interface> <dev[:part]> [addr] [filename] [bytes]
	  - load binary file 'filename' from 'dev' on 'interface'
		 to address 'addr' from ext4 filesystem
>>> Load Boot Script from mmc 0:1 <<<

** Unable to use mmc 0:1 for fatload **
>>> Load Boot Script from mmc 0:2 <<<
** Partition 2 not valid on device 0 **

** Unable to use mmc 0:2 for fatload **
>>> Run Default Bootcmd <<<
reading kernel..device 0 Start 1263, Count 16384 
MMC read: dev # 0, block # 1263, count 16384 ... 16384 blocks read: OK
completed
reading RFS..device 0 Start 17647, Count 2048 
MMC read: dev # 0, block # 17647, count 2048 ... 2048 blocks read: OK
completed
Bad Linux ARM zImage magic!
Exynos5422 #  

 

 

Share this post


Link to post
Share on other sites
U-Boot 2012.07-00008-ge2d58a1-dirty (Aug 08 2014 - 20:57:19) for Exynos5422

If you wrote our image to eMMC (via SD card adapter), how is possible that you got this u-boot?

 

Our u-boot has such prompt:

U-Boot 2012.07 (Feb 06 2017 - 16:16:49) for Exynos5422

I will also get eMMC, but it will take some time ...

Share this post


Link to post
Share on other sites

 

If you wrote our image to eMMC (via SD card adapter), how is possible that you got this u-boot?

 

 

I don't know, maybe it because i burn this image through Etcher instead of dd?

Share this post


Link to post
Share on other sites
U-Boot 2012.07-00008-ge2d58a1-dirty (Aug 08 2014 - 20:57:19) for Exynos5422

If you wrote our image to eMMC (via SD card adapter), how is possible that you got this u-boot?

 

Our u-boot has such prompt:

U-Boot 2012.07 (Feb 06 2017 - 16:16:49) for Exynos5422

I will also get eMMC, but it will take some time ...

 

As I said previously - on eMMC u-boot is stored in the hidden boot partition, it comes flashed on the eMMC by default and can be updated only with a special software or from system running on the board.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
7 7