How to make a SD card with boot image of TEZI

The instructions here describe how to make a bootable SD card
Boot From an SD Card / USB Stick | Toradex Developer Center

Can anybody clarify at Step 3 on that page which TEZI image to download and how to unpack it onto the 2 partitions on my SD card. The link at Step 3 is to torizon-OS images not TEZI. In the TEZI downloads I do not see .bootfs.tar and .tar parts to extract separately to each partition.

  1. Download an image for the Toradex Easy Installer corresponding to your module and extract the kernel image (zImage) and the device trees (*.dtb) into the first partition, and the rootfs into the second. This example complies the Colibri iMX6, the procedure is similar for other Toradex SoMs.
$ sudo tar xf Reference-Minimal-Image-upstream-colibri-imx6.bootfs.tar.xz --no-same-owner -C /mnt/boot $ sudo tar xf Reference-Minimal-Image-upstream-colibri-imx6.tar.xz -C /mnt/rootfs

Why I want to do this is I am trying to change the image on my apalis imx8 using u-boot to first reload TEZI.
However uboot is not finding the USB storage device I have connected.
Possibly the non-standard image that I want to replace included a uboot version with drivers that are not fully compatible with the USB chipset?
It looks like the SD Card slot is working in uboot so I want to try that before removing the heatsink on the SoM to access the Recovery pins.
(The USB storage device does work correctly on another apalis board but that board has a more standard TorizonOS image)

Hi, I’m the Toradex AI Assistant.

I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.

Did you like my answer? :+1: :-1:


Hello! Thank you for your clear and detailed question.

You’re right to notice that the instructions sometimes reference .bootfs.tar and .tar archives, which are mostly used for legacy Yocto-based images but not for the Toradex Easy Installer (TEZI) utility itself. For modern Torizon OS or supported images, the process of preparing a bootable SD card for starting TEZI on the Apalis iMX8 is slightly different.

Which Image to Download

To run Toradex Easy Installer (TEZI) from SD card, you need the Easy Installer image itself, not a Torizon OS or Linux reference image. You can find the Easy Installer image for your module on the Toradex Easy Installer - Downloads page.

  • For Apalis iMX8, download the “Toradex Easy Installer” image appropriate for your module.

How to Prepare the SD Card

You do not need to manually extract .bootfs.tar and .tar files or split boot/rootfs. Instead, the Easy Installer image comes as a pre-built tar.xz archive intended to be unpacked directly to the root directory of a single FAT32-formatted SD card or USB stick.

Steps:

  1. Download the TEZI image (for example, tezi-image-apalis-imx8-*.tar.xz) from here.
  2. Format your SD card with FAT32.
  3. Extract the contents of the .tar.xz archive directly to the root of the SD card (not into a subfolder).
    sudo tar xf tezi-image-apalis-imx8-*.tar.xz -C /media/<your-sdcard-mount-point>
    
  4. Rename the boot script as needed (for some modules/U-Boots, you may need to rename boot-tezi.scr to boot.scr so U-Boot can find it).
  5. Insert the SD card into your Apalis board.
  6. Power on the device and interrupt U-Boot, then use the appropriate command to boot from SD (typically something like run bootcmd_mmc1 or selecting the right boot device as per your board’s U-Boot environment).

You do not need to create separate boot and rootfs partitions unless specifically instructed for legacy images. For TEZI, a single FAT32 partition is sufficient.

References:

Note on U-Boot SD Card Detection

Your approach makes sense: If USB is not available due to U-Boot limitations, using the SD card slot is the best alternative to load TEZI, especially before attempting recovery with the pads.

Let me know if you need help with the U-Boot commands for your board or if you need further clarification about the SD card prep!

Best regards,
Toradex AI Assistant.

That explained how to make the SD card bootable

However the boot process starts then fails

The failure point is the same as that I logged
USB stick not recognized reinstalling TEZI - Technical Support - Toradex Community

(The SD card boot works fine on an older apalis carrier board v1.1)

Perhaps there is a hardware problem on the carrier board v1.2?

Apalis iMX8 # run bootcmd_mmc1
switch to partitions #0, OK
mmc1 is current device
Scanning mmc 1:1...
Found U-Boot script /boot.scr
1834 bytes read in 12 ms (148.4 KiB/s)
## Executing script at 83100000
117 bytes read in 9 ms (12.7 KiB/s)
42958743 bytes read in 1871 ms (21.9 MiB/s)
Bootargs: quiet video=LVDS-1:d video=HDMI-A-1:640x480-16@60D initcall_blacklist=vpu_driver_init rootfstype=squashfs root=/dev/ram autoinstall
## Loading kernel from FIT Image at 8a000000 ...
   Using 'conf-freescale_imx8qm-apalis-v1.1-eval.dtb' configuration
   Trying 'kernel-1' kernel subimage
     Description:  Linux kernel
     Type:         Kernel Image
     Compression:  gzip compressed
     Data Start:   0x8a0000f4
     Data Size:    7740927 Bytes = 7.4 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0x96000000
     Entry Point:  0x96000000
     Hash algo:    sha256
     Hash value:   a0cd44cfd64480c66c3639a01cbe893325bcf0d37f55f6998d5060aa317fc2ef
   Verifying Hash Integrity ... sha256+ OK
## Loading ramdisk from FIT Image at 8a000000 ...
   Using 'conf-freescale_imx8qm-apalis-v1.1-eval.dtb' configuration
   Trying 'ramdisk-1' ramdisk subimage
     Description:  tezi-initramfs
     Type:         RAMDisk Image
     Compression:  uncompressed
     Data Start:   0x8a949364
     Data Size:    33214464 Bytes = 31.7 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0xa0000000
     Entry Point:  unavailable
     Hash algo:    sha256
     Hash value:   139892036f28fd01c91af86b480b2f8684dfe600b81b250bdbdb5efb983db374
   Verifying Hash Integrity ... sha256+ OK
   Loading ramdisk from 0x8a949364 to 0xa0000000
## Loading fdt from FIT Image at 8a000000 ...
   Using 'conf-freescale_imx8qm-apalis-v1.1-eval.dtb' configuration
   Trying 'fdt-freescale_imx8qm-apalis-v1.1-eval.dtb' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x8a7e4ee0
     Data Size:    176904 Bytes = 172.8 KiB
     Architecture: AArch64
     Load Address: 0x87000000
     Hash algo:    sha256
     Hash value:   bdcc1f2da28c9de93fa8f00beef004aaa7739ccebb6538f720c3457105c2d909
   Verifying Hash Integrity ... sha256+ OK
   Loading fdt from 0x8a7e4ee0 to 0x87000000
## Loading fdt from FIT Image at 8a000000 ...
   Using 'conf-apalis-imx8_hdmi_overlay.dtbo' configuration
   Trying 'fdt-apalis-imx8_hdmi_overlay.dtbo' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x8a942a10
     Data Size:    2205 Bytes = 2.2 KiB
     Architecture: AArch64
     Load Address: 0x870f0000
     Hash algo:    sha256
     Hash value:   27494b5832931c90815246243ccb652a83cd02323ba42a9e462ab3f69d128a96
   Verifying Hash Integrity ... sha256+ OK
   Loading fdt from 0x8a942a10 to 0x870f0000
## Loading fdt from FIT Image at 8a000000 ...
   Using 'conf-apalis-imx8_spi1_spidev_overlay.dtbo' configuration
   Trying 'fdt-apalis-imx8_spi1_spidev_overlay.dtbo' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x8a948d38
     Data Size:    551 Bytes = 551 Bytes
     Architecture: AArch64
     Load Address: 0x870f0000
     Hash algo:    sha256
     Hash value:   c7227d70301c294cd83d6cc779016ca8f1ac5289cbb3a03fcbde223b7f0d7fe4
   Verifying Hash Integrity ... sha256+ OK
   Loading fdt from 0x8a948d38 to 0x870f0000
## Loading fdt from FIT Image at 8a000000 ...
   Using 'conf-apalis-imx8_spi2_spidev_overlay.dtbo' configuration
   Trying 'fdt-apalis-imx8_spi2_spidev_overlay.dtbo' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x8a949064
     Data Size:    551 Bytes = 551 Bytes
     Architecture: AArch64
     Load Address: 0x870f0000
     Hash algo:    sha256
     Hash value:   8a1c004369d8f1318cace660c7581c3016c2952099acc4864abc2da5f5ba535f
   Verifying Hash Integrity ... sha256+ OK
   Loading fdt from 0x8a949064 to 0x870f0000
   Booting using the fdt blob at 0x87000000
   Uncompressing Kernel Image
   Loading Ramdisk to fb6a1000, end fd64e000 ... OK
ERROR: Failed to allocate 0x2e34c bytes below 0xffe00000.
device tree - allocation error
FDT creation failed! hanging...### ERROR ### Please RESET the board ###

Hi @Gideon1!

Just to confirm, you are trying to use an SD card to boot an image (Yocto-based, for example) and not to boot the TEZI, correct? If that’s the case, it seems the Toradex AI may have misinterpreted your intent and assumed you were attempting to launch TEZI from the SD card.

Also, could you please share some details about your hardware? Specifically, the SoM and Carrier Board version. I would like to test it on our side to see if we can reproduce the error.

Best regards.

The hardware is Apalis:
imx8QM (v1.1E)
On Apalis v1.2A carrier board
I had previously used TEZI with an internet connection to download Acontis EC Master version 5. (dated 20210117 - so quite old)
Where I ran into the problems described above I was trying to revert to TEZI to then reload another version of Torizon OS.
My suspicion is that the Acontis v5.1.0 image has a problem with uboot on my hardware.
During other tests I have used the “unofficial” uboot method to reinstall TEZI - connect serial debug from host; hit a key during the power up to stop autoboot; run bootcmd_usb0. However with that Acontis image installed using uboot trying images on a usb stick or a SD card both failed to install. (The same sticks and cards worked fine under uboot on on other Toradex boards starting from other OS images).
My problem has been solved by
1/ using recovery mode (see my other post + notes on jumper settings to get recovery to work).
2/ Direct from Acontis I have received v6 (2024-06-19) of their EC Master image. That does support Uboot back to TEZI

Hi @Gideon1!

I understand it now, and I’m glad you were able to resolve the issue.

Also, I marked your answer as a solution and will consider this topic solved.

Best regards.