Hi Mender community,
I’m working on integrating Mender OTA into a Toradex Apalis iMX8 board using the Yocto-based image tdx-reference-multimedia-image
(Toradex Yocto 5.7 / kirkstone). The image builds successfully and I can deploy it via the Mender server, but the update fails during installation with the following log:
info: Running Mender client version: 3.5.3
info: State transition: update-fetch [Download_Enter] → update-store [Download_Enter]
info: No public key was provided for authenticating the artifact
info: Output (stderr) from command “fw_printenv”: Cannot read environment, using default
info: Output (stderr) from command “fw_printenv”: Cannot read default environment from file
error: Artifact install failed: Payload: can not install Payload: Apalis-iMX8_Reference-Multimedia-Image.ext4: No match between boot and root partitions.: exit status 243
What I have configured:
Enable Mender features
MENDER_FEATURES_ENABLE:append = " mender-uboot mender-image mender-image-sd"
MENDER_FEATURES_DISABLE:append = " mender-grub mender-image-uefi"
Mender Artifact info
MENDER_ARTIFACT_NAME = “scooter-v1.0”
Mender and Toradex Tezi integration
INHERIT += “mender-toradex”
IMAGE_CLASSES += “image_type_mender_tezi”
IMAGE_FSTYPES:append = " mender_tezi"
IMAGE_FSTYPES:remove = " teziimg"
Remove files from boot partition that are loaded by Mender
from the root partitions; this allows the files to be updated OTA
#IMAGE_BOOT_FILES:remove:mender-uboot = “zImage ${KERNEL_DEVICETREE} overlays.txt overlays/*;overlays/”
MENDER_IMAGE_BOOTLOADER_BOOTSECTOR_OFFSET = “0”
DISTRO_FEATURES:append = " systemd"
VIRTUAL-RUNTIME_init_manager = “systemd”
DISTRO_FEATURES_BACKFILL_CONSIDERED = “sysvinit”
VIRTUAL-RUNTIME_initscripts = “”
Settings for apalis-imx8
MENDER_IMAGE_BOOTLOADER_BOOTSECTOR_OFFSET:apalis-imx8 = “0”
MENDER_BOOT_PART_SIZE_MB:apalis-imx8 = “64”
OFFSET_SPL_PAYLOAD:apalis-imx8 = “”
MENDER_STORAGE_DEVICE:apalis-imx8 = “/dev/mmcblk0”
MENDER_STORAGE_TOTAL_SIZE_MB:apalis-imx8 = “4096”
KERNEL_DEVICETREE:apalis-imx8 = “freescale/imx8qm-apalis-v1.1-ixora-v1.2.dtb”
MENDER_BOOT_PART = “${MENDER_STORAGE_DEVICE_BASE}1”
MENDER_DATA_PART = “${MENDER_STORAGE_DEVICE_BASE}4”
MENDER_ROOTFS_PART_A = “${MENDER_STORAGE_DEVICE_BASE}2”
MENDER_ROOTFS_PART_B = “${MENDER_STORAGE_DEVICE_BASE}3”
MENDER_UBOOT_AUTO_CONFIGURE = “1”
Append the Mender provided bootargs to tdxargs
the Toradex boot.scr will overwrite bootargs so we stash the context in tdxargs
MENDER_UBOOT_POST_SETUP_COMMANDS:append = " ; setenv tdxargs ${tdxargs} ${bootargs}; "
Make sure the Toradex boot script finds the overlays and overlays.txt file in
the /boot directory of the rootfs partition
MENDER_UBOOT_POST_SETUP_COMMANDS:append = " ; setenv overlays_file /boot/overlays.txt ; setenv overlays_prefix boot/overlays/ "
serveur
MENDER_SERVER_URL = “https://eu.hosted.mender.io”
MENDER_TENANT_TOKEN = “my-server-token”
MENDER_DEMO_HOST_IP_ADDRESS = “my-adress-ip”
bitbake -e confirms correct values:
MENDER_BOOT_PART="/dev/mmcblk0p1"
MENDER_ROOTFS_PART_A="/dev/mmcblk0p2"
MENDER_ROOTFS_PART_B="/dev/mmcblk0p3"
MENDER_DATA_PART="/dev/mmcblk0p4"
The problem:
When an OTA update is triggered, it downloads the artifact correctly.
But it fails during the installation step with this error:
Payload: can not install Payload: … No match between boot and root partitions.
Also, fw_printenv gives errors:
Cannot read environment, using default
Cannot read default environment from file
My goal:
Get artifact updates to apply correctly on the Apalis iMX8.
Ensure U-Boot is Mender-compatible and that fw_env.config is configured properly.
Resolve the “No match between boot and root partitions” error.
Any help or guidance would be greatly appreciated!