Hello
I’m trying to get mender delta updates working on an intel keem bay embedded device with yocto dunfell
I was able to make a delta update (A → B), but if I try installing it on an active partition with firmware A, I get this error.
INFO[0000] Update module output: parse_metadata_file: decoder_arguments_count:0
INFO[0000] Update module output: running with decoder args: xdelta3 -9 -f
INFO[0000] Update module output: -d -s /dev/mmcblk1p8 streams/core-image-minimal-keembay.ext4.delta /dev/mmcblk1p5
INFO[0000] Update module output: xdelta3: target window checksum mismatch: XD3_INVALID_INPUT
INFO[0000] Update module output: xdelta3: normally this indicates that the source file is incorrect
INFO[0000] Update module output: xdelta3: please verify the source file with sha1sum or equivalent
INFO[0000] Update module output: Failed to apply the delta, err: 1
ERRO[0000] Download failed: Update module terminated abnormally: exit status 1
ERRO[0000] Update module terminated abnormally: exit status 1
But if I install firmware A on the inactive partition first, then apply the delta update, the delta update works.
INFO[0000] Update module output: parse_metadata_file: decoder_arguments_count:0
INFO[0000] Update module output: running with decoder args: xdelta3 -9 -f
INFO[0000] Update module output: -d -s /dev/mmcblk1p5 streams/core-image-minimal-keembay.ext4.delta /dev/mmcblk1p8 <--- note that the args reversed
Use -commit to update, or -rollback to roll back the update.
At least one payload requested a reboot of the device it updated.
But strangely, the update seems to get applied to the currently active partition, not the inactive one.
I am still investigating and gathering information on the above, but I would like clarification on the expected behavior:
- If I have firmware A installed on (active) partition mmcblk1p8, and a different firmware on (inactive) partition mmcblk1p5, then apply a delta update with
mender -install delta.mender
, should the install be successful? I would expect the firmware on partition mmcblk1p5 should not matter, but it seems to need to match the base firmware for the install to be successful. - If I successfully install the A->B update, is the update expected to be applied to partition mmcblk1p8 (active) or mmcblk1p5 (inactive)? I would expect it would install on mmcblk1p8 but I’m seeing it on mmcblk1p5.
Thank you