How to perform OS OTA delta updates to Jetson Xavier NX 5.1.1JetPack using Mender?

Not able to place Jetson Xavier NX in read-only rootfs.

Followed below steps to perform delta updates to Jetson Xavier NX 5.1.1 JetPack:

Board : Jetson Xavier NX emmc
JetPack Version: 5.1.1
OS_OTA status using mender: Success

  • Download mender-binary-delta to create delta-package using below commands on host_machine i.e. Ubuntu

  • Created Mender artifacts using below command for 5.1.1 JP which includes only Payload package.
    mender-artifact write module-image -T rootfs-image -n ${ARTIFACT_NAME} -t ${DEVICE_TYPE} -o ${OUTPUT_PATH} -f ${IMAGE}

  • Created 2 Mender artifacts to create delta package by comparing artifacts containing only the difference between the two artifacts.
    1. 5.1.1-1-rootfs-image-8.0.mender
    – Original(Successfully deployed)
    2. 5.1.1-0-rootfs-image-8.0.mender
    – Added few files(100MB) into rootfs filesystem as delta changes.

  • Executed the steps below to generate the delta artifact:
    # 5.1.1-1-rootfs-image-8.0.mender - release running on the device
    # 5.1.1-0-rootfs-image-8.0.mender - new release

    mender-binary-delta-generator -o delta.mender 5.1.1-1-rootfs-image-8.0.mender 5.1.1-0-rootfs-image-8.0.mender

  • I tried to place rootfs in read-only by updating /boot/extlinux/extlinux.conf file

  • Currently Slot B is active & Can you kindly provide more detailed information on which Slot I need to place read-only rootfs ?

    • I couldn’t place active rootfs in read-only. However I could place passive rootfs in read-only using below command.
      sudo mount -o remount,ro /dev/nvme0n1p1
  • However it didn’t work, can you help us here to perform delta updates in Jetson device.

I performed deployed using artifacts created in earlier stage. now I’m facing below issue:
Mender error logs:

Fetching Artifact headers failed: installer: failed to read Artifact: readHeaderV3: handleHeaderReads: Artifact Payload type ‘rootfs-image’ is not supported by this Mender Client. Ensure that the Mender Client is fully integrated and that the RootfsPartA/B configuration variables are set correctly in ‘mender.conf’.

Error seems to be because of the Artifact Payload type as 'rootfs-image' but we to create mender delta package need to have Artifact Payload type as 'rootfs-image.
Delta package creation isn’t working when Artifact Payload type as 'rootfs-image-jetson'.

Kindly provide you’re help here
Thank you

Hello @user_1,

Sadly the delta updates are not compatible with your configuration.

rootfs-image updates are exclusively with Operating Systems where we integrated Mender with the bootloader. For example, a yocto-based OS that has Mender layer included or a Debian/Ubuntu-based system that uses GRUB or u-boot. In the case of Jetson Linux (Ubuntu-based) from Nvidia, we created an Update Module that makes usage of the official Nvidia utilities (like nvbootctrl) to handle the swap from Active to Inactive slot, and some other utilities from Nvidia in order to copy the payload into the inactive slot.

Saying that, we are not talking about a real rootfs update at block-level but using the mechanism of copying its content as Nvidia designed their process in this way.

When you deploy delta updates by using the Mender way, the read-only active slot is copied to the inactive one, and then the deltas are applied. In this case, to have the active slot as read-only is a must.

So far what I can advise is to compress the payload of the mender artifact by any other technology and then tell Mender by using an Update Module how to uncompress this payload.

Hope this information helps, have a nice day!

Hi @lramirez ,

Thanks for providing us more details about delta updates.

Also thanks for the suggestion for compressing the mender artifact’s payload. Even we had the idea to execute OTA OS updates following payload compression.

Thanks & Regards
Arun Reddy