Mender integration for Yocto on iMX8M Plus Humming Board

I am using Hummingboard Pulse evaluation board + IMX8MP SOM with Yocto Kirkstone.

I couldn’t find any existing solidrun board integrations on meta-mender-community , except for cubox-i. However produced mender cubox image doesn’t boot on humming board. I use .sdimg image format.

Is there any tutorial about mender integration for Solidrun iMX8 or specific settings I should tweak?

There is no specific public repository for integrating mender with our BSP. That being said we are based off of NXP’s BSP so any integration done for a similar board should directly carry over to our hardware. If you have specific questions feel free to ask them here and I will try to answer them as quickly as possible.

I managed to integrate mender client into my build, but there are still problems with OS update.

bblayers.conf

BBLAYERS ?= " \
    ${TOPDIR}/../meta-clang \
    ${TOPDIR}/../meta-freescale \
    ${TOPDIR}/../meta-freescale-3rdparty \
    ${TOPDIR}/../meta-freescale-distro \
    ${TOPDIR}/../meta-imx/meta-bsp \
    ${TOPDIR}/../meta-imx/meta-ml \
    ${TOPDIR}/../meta-imx/meta-sdk \
    ${TOPDIR}/../meta-iot-cloud \
    ${TOPDIR}/../meta-mender-identity \
    ${TOPDIR}/../meta-mender/meta-mender-core \
    ${TOPDIR}/../meta-nellie \
    ${TOPDIR}/../meta-openembedded/meta-filesystems \
    ${TOPDIR}/../meta-openembedded/meta-gnome \
    ${TOPDIR}/../meta-openembedded/meta-multimedia \
    ${TOPDIR}/../meta-openembedded/meta-networking \
    ${TOPDIR}/../meta-openembedded/meta-oe \
    ${TOPDIR}/../meta-openembedded/meta-python \
    ${TOPDIR}/../meta-qt6 \
    ${TOPDIR}/../meta-solidrun-arm-imx8 \
    ${TOPDIR}/../meta-timesys \
    ${TOPDIR}/../meta-virtualization \
    ${TOPDIR}/../meta-vps-lite-unit \
    ${TOPDIR}/../poky/meta \
    ${TOPDIR}/../poky/meta-poky"
BBPATH ?= "${TOPDIR}"
BBFILES ??= ""

local.conf

INHERIT += "mender-full"
MENDER_FEATURES_ENABLE:append = " mender-image-sd mender-partuuid"
MENDER_FEATURES_DISABLE:append = " mender-image-uefi mender-growfs-data"
MENDER_SERVER_URL = "https://eu.hosted.mender.io"
MENDER_TENANT_TOKEN = "***hidden***"
MENDER_ARTIFACT_NAME = "release-6"
DISTRO_FEATURES:append = " systemd"
VIRTUAL-RUNTIME_init_manager = "systemd"
DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"
VIRTUAL-RUNTIME_initscripts = ""
MENDER_STORAGE_TOTAL_SIZE_MB = "7456"
MENDER_BOOT_PART_SIZE_MB = "64"
MENDER_IMAGE_BOOTLOADER_FILE = "imx-boot"
MENDER_IMAGE_BOOTLOADER_BOOTSECTOR_OFFSET = "64"
IMAGE_FSTYPES:remove = "tar.gz ext4 wic.gz wic.bmap multiubi mender.bmap"
MENDER_STORAGE_DEVICE = ""
MENDER_BOOT_PART = "09501fb1-01"
MENDER_DATA_PART = "09501fb1-04"
MENDER_ROOTFS_PART_A = "09501fb1-02"
MENDER_ROOTFS_PART_B = "09501fb1-03"

I can update single files via Mender Hub, but not OS update, which requires switching partitions.
On Mender Hub, I get the following error:

Blockquote
2023-09-11 12:06:08 +0000 UTC info: Running Mender client version: 3.5.1
2023-09-11 12:06:09 +0000 UTC info: State transition: update-fetch [Download_Enter] → update-store [Download_Enter]
2023-09-11 12:06:09 +0000 UTC info: No public key was provided for authenticating the artifact
2023-09-11 12:06:09 +0000 UTC error: Artifact install failed: Payload: can not install Payload: nellie-dev-image-imx8mpsolidrun.ext4: Active root partition matches neither RootfsPartA nor RootfsPartB.
2023-09-11 12:06:09 +0000 UTC info: State transition: update-store [Download_Enter] → cleanup [Error]
2023-09-11 12:06:09 +0000 UTC info: State transition: cleanup [Error] → update-status-report [none]
Blockquote

My guess is the bootloader has to be modified to enable this functionality. Can I get some directions where to look at?

I am working on updated instructions and patches for our BSP. It will be out this week.