Flashing Embedded Linux to Apalis iMX8

Hi,

I want to boot Linux Console Image on Apalis iMX8 + Ixora board.
- Apalis iMX8 (3.0b2 | 2019-08-30 | 100.49 MB)

Because my board doesn’t have LCD, It seems that I can’t use Easy Installer.
Is there a way to boot it from SD card of X10 or flash it to eMMC by using SD card?
iMX6 and iMX7 has a guide for legacy flashing but not for iMX8.
- Flashing Embedded Linux to iMX6 Modules
- Flashing Embedded Linux to iMX7 Modules

Thanks,
Steve

You could use an HDMI screen together with a USB keyboard or mouse. Another option may be to use RDP via either Ethernet or USB RNDIS. Alternatively, just decompress your desired image onto an SD card or USB memory stick, set the autoinstall flag and plug it in.

The legacy stuff is really exactly that, legacy. And we don’t plan to ever bring any of it back.

I used HDMI, but I can see any thing in the screen when I turn on the device. Does it mean Easy Installer is not pre-installed?
So I’ve tried to load Easy Installer from USB OTG. and successfully load it with recovery-linux.sh from iMX recovery mode.
Then I still can’t see Easy Installer in the screen.
What else should I try to do?

You may just have hit the following known issue:

if so, the situation is hard to understand. Why doesn’t Toradex patch Easy Installer?

For the moment, there is a workaround for the issue. In the next release, we will try to fix the issue.

It looks like the workaround doesn’t work on ixora board.

**=> setenv teziargs initcall_blacklist=imx_pcie_init
=> fastboot 0**
Detect USB boot. Will enter fastboot mode!
Starting download of 1835 bytes

downloading of 1835 bytes finished
Detect USB boot. Will enter fastboot mode!
Starting download of 102464 bytes

downloading of 102464 bytes finished
Detect USB boot. Will enter fastboot mode!
Starting download of 44184456 bytes
..........................................................................
..........................................................................
..........................................................................
..........................................................................
.........................................
downloading of 44184456 bytes finished
## Executing script at 82e00000
Loading hdp firmware from 0x0000000082fe0000 offset 0x0000000000002000
Loading hdp firmware Complete
## Loading kernel from FIT Image at 83000000 ...
   Using 'config@1' configuration
   Trying 'kernel@1' kernel subimage
     Description:  Linux Kernel 4.14.126-2.0.3+g397564ae5691
     Type:         Kernel Image
     Compression:  gzip compressed
     Data Start:   0x830000f4
     Data Size:    6664628 Bytes = 6.4 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0x80280000
     Entry Point:  0x80280000
     Hash algo:    md5
     Hash value:   5c27b0dbbc7d36337af0e3e03763fcb8
   Verifying Hash Integrity ... md5+ OK
## Loading ramdisk from FIT Image at 83000000 ...
   Using 'config@1' configuration
   Trying 'ramdisk@1' ramdisk subimage
     Description:  SquashFS RAMdisk
     Type:         RAMDisk Image
     Compression:  uncompressed
     Data Start:   0x8365b394
     Data Size:    37412864 Bytes = 35.7 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0xa0000000
     Entry Point:  unavailable
     Hash algo:    md5
     Hash value:   9689ecac70a3de2d6f4ceb6113d89679
   Verifying Hash Integrity ... md5+ OK
   Loading ramdisk from 0x8365b394 to 0xa0000000
## Loading fdt from FIT Image at 83000000 ...
   Using 'config@1' configuration
   Trying 'fdt@1' fdt subimage
     Description:  Apalis iMX8 Device Tree
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x85a09470
     Data Size:    104914 Bytes = 102.5 KiB
     Architecture: AArch64
     Hash algo:    md5
     Hash value:   5eaadc70782f0094f0dd685ca9c418ff
   Verifying Hash Integrity ... md5+ OK
   Booting using the fdt blob at 0x85a09470
   Uncompressing Kernel Image ... OK
   Loading Device Tree to 00000000fd65e000, end 00000000fd67a9d1 ... OK
/dma-controller@5a1f0000, 73352
/dma-controller@591F0000, 74232
/dma-controller@591F0000, 74232
/dma-controller@599F0000, 75208

Starting kernel ...

"Synchronous Abort" handler, esr 0x02000000
elr: 0000000001070000 lr : 0000000080021ab8 (reloc)
elr: 0000000080ee0000 lr : 00000000ffe91ab8
x0 : 00000000fd65e000 x1 : 0000000000000000
x2 : 0000000000000000 x3 : 0000000000000000
x4 : 0000000080280000 x5 : 0000000000000001
x6 : 0000000000000008 x7 : 0000000000000000
x8 : 00000000fd67f400 x9 : 0000000000000002
x10: 000000000a200023 x11: 0000000000000002
x12: 0000000000000002 x13: 00000000fd68ddbe
x14: 00000000fd67f47c x15: 00000000ffe911e8
x16: 0000000000000004 x17: 00000000fd67a9d2
x18: 00000000fd68dda8 x19: 00000000fff25fb0
x20: 0000000000000000 x21: 0000000000000400
x22: 000000000000071f x23: 00000000ffe91ae0
x24: 0000000000000001 x25: 00000000fd6be588
x26: 00000000fff171b8 x27: 0000000080280000
x28: 00000000830000f4 x29: 00000000fd67f540

Resetting CPU ...

resetting ...

Hi @steve.jang

I tried this on my side and it works well on Ixora.

Could you try to reset the U-Boot Environment before setting the teziargs?

Thanks and best regards,
Jaski

No. It’s not working in my board.
Where can I download old release of Easy Installer?
Someone said that 2.0b2 can boot without PCIe error.

Ok. You can download the version 2.0b2 from here.

Best regards,
Jaski

Hello, It’s for imx6. is it same as imx8?

hi @steve.jang. Sorry for the wrong file. Here is the correct one.

Best regards,
Jaski

Is TEI-108 fixed in Toradex Easy Installer v2.0b4? ie another solution would be to upgrade TEI via recovery mode?

Is TEI-108 fixed in Toradex Easy Installer v2.0b4?

Yes, as can be seen from the release notes:

ie another solution would be to upgrade TEI via recovery mode?

Yes, or just extract it to the root of a micro SD card and have it distroboot from there.

I have successfully used the recovery mode to load Apalis-iMX8_ToradexEasyInstaller_2.0b4-20191231, but am still not getting video out through the HDMI port. I’ve verified the monitor and cable are functional.

I was able to connect to the serial console output and it looks like there may be an issue with the HDMI.

Starting kernel ...

[    0.301787] clk: couldn't set hdmi_lis_ipg_clk clk rate to 100000000 (-22), current rate: 84857142
[    0.416335] dmi: Firmware registration failed.
[    0.506350] imx6q-pcie 5f000000.pcie: pcie_ext clock source missing or invalid
[    0.508908] imx6q-pcie 5f010000.pcie: pcie_ext clock source missing or invalid
[    0.554473] Can't support > 32 bit dma.
[    0.635785] i.mx8-hdp 56268000.hdmi: invalid resource

Full TEZI_2.0b4 serial output

The console output made it look as if TEZI had fully booted, so I attempted connections via RDP. These did not succeed.

fettersa:~$ xfreerdp /cert-ignore /sec:tls /v:10.30.48.63
unable to connect to 10.30.48.63:3389
Error: protocol security negotiation or connection failure
fettersa:~$ xfreerdp --version
This is FreeRDP version 1.1.0-beta1

I believe my only remaining option for installing Linux is to use distroboot via SD card?

Please note that with version 2.0b4 we switched back to using VNC rather than RDP:

Please note that this VNC integration is still not 100% stable and worst case you may have to try launching the Toradex Easy Installer 2-3 times.

Please note that you may also auto-install an image which would not require any display and/or input device being connected:

Just updating for resolution.

I was unable to get VNC working with TEZI 2.0b4 after several launches of TEZI.

I decided to attempt an auto-install, but I wanted to test it out first. Since TEZI 2.0b4 was booting fine via recovery mode, I used that. Unfortunately, the board would no longer boot into TEZI after this. Failure_log

I then used recovery mode to load 2.0b2. On a whim, I tried RDP with 2.0b2 and was able to connect. I then installed the Linux Console Image 3.0b3 for iMX8 and it booted successfully.

Looks like something from the U-Boot environment got hosed. This should be fixed in an upcoming Toradex Easy Installer 2.0b5 which always discards it.