With the latest delivery of Colibri IMX6DL 1.1A modules Toradex Easy Installer stopped working

We are following the Flash a New Image Using Toradex Easy Installer instructions to flash one of our custom images, but it fails with the latest delivery of Colibri IMX6DL 1.1A modules. The error is:

Error executing wrap-up script

This script is meant to be run on a Apalis/Colibri iMX6. Aborting…

The image has not been written completely. Please restart the process, otherwise you might end up in a non-bootable system.

We repeated the same procedure with the same image but an older Colibri IMX6DL 1.1A module from our stock and it completed successfully.

We noticed that the [EDIT: old new] modules are not recognized by the Toradex Easy Installer:

Module Version UNKNOWN

Here the same for the module from our stock:

Module Version Colibri iMX6 DualLite 512MB

Here is photo of both modules. The failing module is on the left, the working module on the right:

Here are the differences in the labeling:

Failing module:

  • CTXR2513
  • CHINA YMXRCTE
  • PN 00791100
  • SN 12898070

Working module:

  • XAC1836
  • TAIW KJACXE
  • 10595083

Toradex Easy Installer Version is 2.0b7 (20210415).

Hi, I’m the Toradex AI Assistant.

I might make mistakes or occasionally get you wrong. Our support team will step in if needed.


Based on your description, you’re experiencing an issue with new Colibri iMX6DL modules that have different Product IDs (PID4s) compared to your older modules. The failing module has PN 00791100, which corresponds to the new product configurations without Windows EC licenses(1).

Root Cause

Your custom image was created before the new product configurations were introduced and doesn’t include the new PID4s in its compatibility list(1). The error occurs because the wrapup.sh script in your image doesn’t recognize the new Product ID “0079”(1).

Solution

You need to update two files in your custom image:

1. Update image.json

In your image’s image.json file, add the new PID4s to the supported_product_ids list(1):

"supported_product_ids": [  
        "0015",  
        "0017",  
        "0079",  
        "0080"  
    ],  

(1)

2. Update wrapup.sh

In your wrapup.sh script, add the new Product IDs to the validation case statement(1):

# Do a basic validation that we do this on one of our Modules  
case $PRODUCT_ID in  
0027|0028|0029|0035|0082|0083|0084|0085) ;;  
0014|0015|0016|0017|0077|0078|0079|0080) ;;  
*) error_exit "This script is meant to be run on a Apalis/Colibri iMX6. Aborting...";  
esac  

(1)

Product Configuration Mapping

According to the documentation, your failing module (PN 00791100) is the new Colibri iMX6DL 512MB without Windows EC license, which corresponds to the previous 00151100 version with Windows EC(1).

Alternative Approach

If you prefer not to modify your image, you could update to a newer BSP release that already includes support for these new product configurations(1). However, the manual fix described above should resolve your immediate issue.

After making these changes to your custom image, it should install successfully on both old and new Colibri iMX6DL modules(1).

**


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

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

@ToradexAI How often do those PID4s change? How will we know in future which PID4s to include in the supported_product_ids list?

Based on the available documentation, here’s what we know about PID4 changes and how to stay informed:

PID4 Change Frequency

PID4s don’t change frequently, but they do get updated for specific reasons. The recent introduction of new product configurations without Windows EC licenses is a notable example due to Microsoft’s End of Life (EOL) date for Windows Embedded Compact of 31 May 2028(1).

How PID4s Are Structured

The PID4 (first 4 digits of the 8-digit Product Number) identifies the Product Configuration, which describes key properties like Product Group and RAM capacity(2). When hardware changes occur, new PID4s may be introduced through Product Change Notifications (PCNs)(2).

Staying Informed About New PID4s

1. Product Change Notifications (PCNs)

Toradex issues PCNs whenever new products are released to replace older versions(2). These notifications document any changes that might affect compatibility.

2. Hardware Product Pages

The complete list of available PID4 combinations is maintained on the Revision History table of each product’s hardware page(2).

3. Documentation Updates

New PID4s are documented in articles like the Windows EC EOL update, which provides comprehensive mapping tables showing both old and new product configurations(1).

Recommended Approach

For future-proofing your images:

  1. Monitor Toradex communications for PCN announcements
  2. Check the hardware product pages regularly for your specific modules
  3. Consider using newer BSP releases that automatically include updated PID4 support(1)
  4. Implement flexible PID4 validation in your custom images that can accommodate new product configurations

The current set of new PID4s (0077-0085) was specifically introduced to address the Windows EC EOL situation(1), so similar large-scale changes would likely be communicated well in advance through official channels.

Best regards, Toradex AI Assistant.


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

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

@ToradexAI This is the content of our Toradex Easy Installer thumbdrive:

```
custom-image_staging_ToradexEasyInstaller_2.0b7-20210415-20251215194113/
├── SPL
├── boot-sdp.scr
├── boot.scr
├── image.json
├── morse_ok.sh
├── custom-image
│ ├── SPL
│ ├── image.json
│ ├── marketing.tar
│ ├── custom-image-colibri-imx6-mender.persistent.data.tar.xz
│ ├── custom-image-colibri-imx6-mender.tar.xz
│ ├── prepare.sh
│ ├── toradexlinux.png
│ ├── u-boot-initial-env-spl
│ ├── u-boot.img
│ └── wrapup.sh
├── recovery
│ ├── README
│ ├── imx_usb
│ ├── imx_usb.conf
│ ├── imx_usb.exe
│ ├── mx6_usb_rom.conf
│ ├── mx6_usb_sdp_spl.conf
│ ├── mx6_usb_sdp_uboot.conf
│ ├── mx6ull_usb_rom.conf
│ ├── mx6ull_usb_sdp_uboot.conf
│ ├── mx7_usb_rom.conf
│ └── mx7_usb_sdp_uboot.conf
├── recovery-linux.sh
├── recovery-windows.bat
├── tezi.itb
├── tezi.png
├── tezi_config.json
├── u-boot.img
└── wrapup.sh

3 directories, 33 files
```
As you can see, there are two image.json files:

  • image.json
  • custom-image/image.json

These are the supported_product_ids of our custom image image.json:

"supported_product_ids": [
    "0014",
    "0015",
    "0016",
    "0017",
    "0077",
    "0078",
    "0079",
    "0080"
],

These match the content of TORADEX_PRODUCT_IDS in meta-toradex-nxp/conf/machine/include/colibri-imx6.inc :

TORADEX_PRODUCT_IDS = “0014 0015 0016 0017 0077 0078 0079 0080”

The supported_product_idsof the top level image.jsonare:

"supported_product_ids": [
    "0014",
    "0015",
    "0016",
    "0017"
],

Where are those defined? We are still on Yocto Dunfell.

Top Level image.json Configuration

The top level image.json file you’re seeing is for the Toradex Easy Installer itself, not your custom image(1). According to the documentation, Toradex Easy Installer images have the isinstaller property set to true(2).

Looking at the example configuration from the documentation, the Easy Installer image.json contains:

{  
    "config_format": "4",  
    "autoinstall": false,  
    "name": "Toradex Easy Installer",  
    "description": "Toradex Easy Installer for verdin-imx8mp machine",  
    "version": "5.7.2+build.14",  
    "release_date": "2023-02-22",  
    "wrapup_script": "wrapup.sh",  
   "icon": "tezi.png",  
    "isinstaller": true,  
    "supported_product_ids": [  
        "0058",  
        "0061",  
        "0063",  
        "0064",  
        "0066"  
    ],  
    "blockdevs": [  
        {  
            "name": "emmc",  
            "partitions": [  
                {  
                    "partition_size_nominal": 128,  
                    "want_maximised": false,  
                    "content": {  
                        "label": "BOOT",  
                        "filesystem_type": "FAT",  
                        "mkfs_options": "",  
                        "filelist": [  
                            "tezi.itb",  
                            "boot-tezi.scr",  
                            "overlays.txt"  
                        ],  
                        "uncompressed_size": 44.980247497558594  
                    }  
                }  
            ]  
        },  
        {  
            "name": "emmc-boot0",  
            "erase": true,  
            "content": {  
                "filesystem_type": "raw",  
                "rawfiles": [  
                    {  
                        "filename": "imx-boot",  
                        "dd_options": "seek=0"  
                    }  
                ]  
            }  
        }  
    ]  
}  

(3)

Why Your Top Level image.json Has Limited PID4s

Since you’re using Toradex Easy Installer 2.0b7 (20210415) as shown in your original post, this version was released before the new PID4s (0077-0080) were introduced(4). The PCN document shows that the transition from V1.0A to V1.1A occurred in 2017, and the new product configurations without Windows EC licenses were introduced more recently(4).

Solution for Yocto Dunfell

For Yocto Dunfell, you’ll need to:

  1. Update your Easy Installer version to a newer release that supports the new PID4s
  2. Or manually update the top-level image.json to include the missing PID4s (0077-0080) in the supported_product_ids list(3)

The supported_product_ids property is mandatory and defines which Product IDs are compatible with that specific Easy Installer image(3).

Since your custom image already has the correct PID4s, the issue is that the Easy Installer itself doesn’t recognize the new modules, preventing it from even attempting to install your custom image.

Best regards, Toradex AI Assistant.


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

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

Hello @lmoellendorf,

The response from the Toradex AI here was generally correct.

Regarding the change of PID4, it is an exceptional change that was triggered by the EOL of WInCE and the EU CRA.
The hardware itself is still compatible and had no changes between the last version of the old PID4 with a WinCE License and the first version of the new PID4 without the license.
For more details, please check: WinEC Affected Modules EOL - Migration Guide | Toradex Developer Center

Best Regards,
Bruno

@ToradexAI

I opted for manually updating the top-level image.json to include the missing PID4s.

Because Colibri-iMX6_ToradexEasyInstaller_7.4.0+build.8 does not boot:

U-Boot 2020.07-5.7.6-devel+git.4baed786463e (Jan 24 2024 - 16:25:00 +0000)

CPU:   Freescale i.MX6DL rev1.4 996 MHz (running at 792 MHz)
CPU:   Commercial temperature grade (0C to 95C) at 48C
Reset cause: POR
DRAM:  512 MiB
PMIC:  device id: 0x10, revision id: 0x21, programmed
MMC:   FSL_SDHC: 1, FSL_SDHC: 0
Loading Environment from MMC... OK
In:    serial
Out:   serial
Err:   serial
Model: Toradex Colibri iMX6 DualLite 512MB V1.1Y, Serial# 11058078
Net:   eth0: ethernet@2188000
Hit any key to stop autoboot:  0
starting USB...
Bus usb@2184000: USB EHCI 1.00
Bus usb@2184200: USB EHCI 1.00
scanning bus usb@2184000 for devices... 1 USB Device(s) found
scanning bus usb@2184200 for devices... 2 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found

Device 0: Vendor: General  Rev: 5.00 Prod: UDisk
            Type: Removable Hard Disk
            Capacity: 3840.0 MB = 3.7 GB (7864320 x 512)
... is now current device
Scanning usb 0:1...
Found U-Boot script /boot.scr
2051 bytes read in 3 ms (667 KiB/s)
## Executing script at 17000000
82 bytes read in 2 ms (40 KiB/s)
33653167 bytes read in 1709 ms (18.8 MiB/s)
Bootargs: console=ttymxc0,115200 quiet video=DPI-1:640x480-16@60D video=HDMI-A-1:640x480-16@60D rootfstype=squashfs rool
## Loading kernel from FIT Image at 14420000 ...
Could not find configuration node
ERROR: can't get kernel image!
SCRIPT FAILED: continuing...

@ToradexAI

Please reply to my previous post.

Based on your issue with the newer Toradex Easy Installer version not booting, manually updating the top-level image.json is indeed the correct approach for your situation.

Root Cause of Boot Failure

The error you’re seeing with Colibri-iMX6_ToradexEasyInstaller_7.4.0+build.8 indicates a FIT (Flattened Image Tree) configuration issue. The kernel cannot find the proper configuration node in the FIT image(1).

Solution: Manual Update of Top-Level image.json

Since the newer Easy Installer version has compatibility issues with your specific module variant, updating your existing Easy Installer’s top-level image.json is the most practical solution. You need to add the new PID4s to the supported_product_ids array(2):

"supported_product_ids": [
    "0014",
    "0015", 
    "0016",
    "0017",
    "0077",
    "0078", 
    "0079",
    "0080"
],

(2)

Why This Approach Works

Your current Easy Installer version (2.0b7) is stable and functional on your hardware. The only issue is that it doesn’t recognize the new Product IDs introduced for modules without Windows EC licenses(2). By manually adding the new PID4s (0077-0080) to match what you already have in your custom image, you maintain compatibility while supporting the new module variants.

Hardware Compatibility Confirmation

As Bruno mentioned, the hardware between the old PID4s with Windows EC licenses and the new PID4s without licenses is identical(2). The new product configurations underwent no hardware changes compared to previous versions, so your existing Easy Installer should work perfectly once it recognizes the new Product IDs(2).

This manual approach avoids the boot issues you’re experiencing with the newer Easy Installer while providing the compatibility you need for both old and new module variants.

Best regards, Toradex AI Assistant.


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

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

@ToradexAI @bruno.tx

Updating image.json as explained above is not enough. You also have to update the list in wrapup.sh:

@@ -28,6 +28,7 @@
 case $PRODUCT_ID in
 0027|0028|0029|0035) ;;
 0014|0015|0016|0017) ;;
+0077|0078|0079|0080) ;;
 *) error_exit "This script is meant to be run on a Apalis/Colibri iMX6. Aborting...";
 esac

This has to be applied to the wrapup.sh of the image:

├── ...
├── your-image
│   ├── ...
│   └── wrapup.sh
...
1 Like

You’re absolutely correct! Thank you for providing this important clarification. Both files need to be updated for complete compatibility.

Complete Solution Summary

For full compatibility with new Product IDs (0077-0080), you need to update both files:

1. Update the Top-Level image.json

Add the new PID4s to the Easy Installer’s supported_product_ids(1):

"supported_product_ids": [
    "0014",
    "0015", 
    "0016",
    "0017",
    "0077",
    "0078", 
    "0079",
    "0080"
],

2. Update Your Custom Image’s wrapup.sh

As you correctly identified, the wrapup.sh script in your custom image directory also needs the new Product IDs added to the validation case statement(1):

# Do a basic validation that we do this on one of our Modules  
case $PRODUCT_ID in  
0027|0028|0029|0035|0082|0083|0084|0085) ;;  
0014|0015|0016|0017|0077|0078|0079|0080) ;;  
*) error_exit "This script is meant to be run on a Apalis/Colibri iMX6. Aborting...";  
esac  

Why Both Updates Are Required

  1. Top-level image.json: Controls whether the Easy Installer recognizes and displays your custom image as compatible with the new modules
  2. Custom image wrapup.sh: Prevents the “This script is meant to be run on a Apalis/Colibri iMX6. Aborting…” error during the actual installation process(1)

Without updating both files, you’ll encounter the exact error sequence you originally described - the image might appear installable, but the installation will fail during the wrap-up phase.

This complete solution ensures compatibility with both legacy modules (0014-0017) and new modules without Windows EC licenses (0077-0080)(1).

Best regards, Toradex AI Assistant.


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

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.