Cannot add Mender to yocto intel-skylake-64 default image with installer

Trying to integrate mender into default configuration from:

I’m getting errors when it tries to build the wic for the installer:

ERROR: t22-image-1.0-r0 do_image_wic: ExecutionError(‘/home/kbyrd/yocto/build-T22/tmp/work/intel_skylake_64-poky-linux/t22-image/1.0/temp/run.do_image_wic.1970183’, 1, None, None)
ERROR: Logfile of failure stored in: /home/kbyrd/yocto/build-T22/tmp/work/intel_skylake_64-poky-linux/t22-image/1.0/temp/log.do_image_wic.1970183
Log data follows:
| DEBUG: Executing python function extend_recipe_sysroot
| NOTE: Direct dependencies are [‘/home/kbyrd/yocto/build-T22/../meta-intel/recipes-core/microcode/intel-microcode_20250512.bb:do_populate_sysroot’, ‘/home/kbyrd/yocto/build-T22/../poky/meta/recipes-bsp/grub/grub-efi_2.12.bb:do_populate_sysroot’,

lake_64-poky-linux/t22-image/1.0/pseudo/:g’ -e ‘s:FIXME_LOGFIFO:/home/kbyrd/yocto/build-T22/tmp/work/intel_skylake_64-poky-linux/t22-image/1.0/temp/fifo.1970183:g’
| DEBUG: Python function extend_recipe_sysroot finished
| DEBUG: Executing python function prepare_excluded_directories
| DEBUG: Python function prepare_excluded_directories finished
| DEBUG: Executing python function set_image_size
| DEBUG: 1935814.400000 = 1489088 * 1.300000
| DEBUG: 76718080.000000 = max(1935814.400000, 76718080)[76718080.000000] + 0
| DEBUG: 76718080.000000 = int(76718080.000000)
| DEBUG: 76718080 = aligned(76718080)
| DEBUG: returning 76718080
| DEBUG: Python function set_image_size finished
| DEBUG: Executing shell function do_image_wic
| INFO: Creating image(s)…
|
| ERROR: _exec_cmd: install -m 0644 -D /home/kbyrd/yocto/build-T22/tmp/work/intel_skylake_64-poky-linux/t22-image/1.0/deploy-t22-image-image-complete/t22-image-intel-skylake-64.rootfs.ext4 /home/kbyrd/yocto/build-T22/tmp/work/intel_skylake_64-poky-linux/t22-image/1.0/tmp-wic/boot.2/rootfs.img returned ‘1’ instead of 0
| output: install: cannot stat ‘/home/kbyrd/yocto/build-T22/tmp/work/intel_skylake_64-poky-linux/t22-image/1.0/deploy-t22-image-image-complete/t22-image-intel-skylake-64.rootfs.ext4’: No such file or directory
|
| WARNING: exit code 1 from a shell command.
ERROR: Task (/home/kbyrd/yocto/build-T22/../meta-custom-T22/recipes-core/images/t22-image.bb:do_image_wic) failed with exit code ‘1’
NOTE: Tasks Summary: Attempted 6368 tasks of which 6360 didn’t need to be rerun and 1 failed.

Summary: 1 task failed:
/home/kbyrd/yocto/build-T22/../meta-custom-T22/recipes-core/images/t22-image.bb:do_image_wic
log: /home/kbyrd/yocto/build-T22/tmp/work/intel_skylake_64-poky-linux/t22-image/1.0/temp/log.do_image_wic.1970183
Summary: There was 1 ERROR message, returning a non-zero exit code.

Hi @hackenstein,

I guess you are referring to the last paragraph of the linked wiki article specifically. Yeah, that one will clash with the way the integration is handled in meta-mender.

The reason, in a nutshell, is that you usually build the image, as it’s meant to go onto target storage. That’s true for the vast majority of cases, and hence the meta-mender approach follows this style too. The installer image though does build a rootfs for the target device, and then (a somewhat dirty trick) glues it behind an initramfs which is meant to run the installer script. As this is not clean and scalable approach, the initramfs construction makes assumptions about the image to be installed, which do not apply when installing a Mender-enabled image.

Installer builds for Mender images on x86 have been done already, I know at least of @annalenamarx and @moto-timo mentioning such things. Maybe those can point to some publicly visible incarnations?

Otherwise, a real good approach would be to go multiconfig, build the target image and then inject it into a subsequent installer build. But on the other hand, that’s not super trivial then.

Greetz,
Josef

It’s crucial to differentiate between the installer and the image, that’s the hardest part with that. A proper multiconfig approach helps best. The installer may uses an initramfs while my images do not. If not using an installer at all (e.g. booting from an usb drive), Mender works nice with different Intel architectures. May this should be the first goal to make shure things are properly sorted.

@annalenamarx @TheYoctoJester Thanks for your feedback. I’ve removed the intel installer and have successfully built and booted core-image-minimal with configurations from “Operating System updates: Yocto Project.” But now, I’m trying to set it up as a standalone system and I don’t see mender or mender-client on it. Does mender-update apply in this situation?

Thanks,

Keith