How to create a image based OTA payload package for Jetpack 4.4?

Hello, I’m looking to create an OTA payload package that will update my existing Jetpack 4.4 system to have more SDK components enabled. I am trying to follow the directions found here:
Updating Jetson Linux with Image based OTA update

I tried to find the corresponding OTA tools package for 4.4 but found that the OTA tools only exist for jetpack 4.6.1.
someone looking for ota tools location

Could I possible use a newer ota tools package to create an image based OTA payload package?

I did try using the ota tools package for jetpack 4.6.1 but ran into some problems when I tried to execute step 12.

I run this command:

sudo ./tools/ota_tools/version_upgrade/build_base_recovery_image.sh jetson-agx-xavier-devkit R32-4 ${BASE_BSP}/ ${BASE_BSP}/rootfs ${TARGET_BSP}

And this is the results I get:

BOARDID=2888 FAB=400 BOARDSKU=0001 BOARDREV=D.0 FUSELEVEL=fuselevel_production /home/test/nvidia/nvidia_sdk/JetPack_4.4_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra//flash.sh --no-flash -Z jetson-agx-xavier-devkit mmcblk0p1
Board ID(2888) version(400) sku(0001) revision(D.0)

SUCCESS: get dtbfile name “”
Unpacking initrd …
23652 blocks
grep: /home/test/nvidia/nvidia_sdk/JetPack_4.4_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra//tools/ota_tools/version_upgrade/recovery_copy_binlist.txt: No such file or directory
/tmp/R32_3_4_recovery/initrd_tmp/lib /tmp/R32_3_4_recovery/initrd_tmp ~/nvidia/nvidia_sdk/JetPack_4.4_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra
sed: can’t read /tmp/R32_3_4_recovery/initrd_tmp/sbin/dhclient-script: No such file or directory

Could someone please help guide me?

Hi,

There is misunderstanding. Image based OTA update is supported since rel-32.6.1/jetpack4.6. Thus, there is no tool for previous release.

However, those old release can still be upgraded to new release with image based ota update by following the steps on document.

That is why we have below 3 kinds of BSP defined here.

BASE_BSP → Current release you are using.
ToT_BSP → The latest release.
TARGET_BSP → The one you want to upgrade to.

For example. if you want to upgrade from jp4.4 to jp4.6, then your BASE is jp4.4, target is jp4.6 and ToT is the latest release, which is jp4.6.1.

Hello Wayne, thank you for your very quick and concise answer! I only saw that OTA was available for 4.4 so I thought the image based OTA would be available as well. Thank you for the clarification.

So, If I have an board flashed with Jetpack 4.6 (or whatever is the latest jetpack), I could imaged based OTA payload package to upgrade whatever machines I have Jetpack 4.4 on. Would I still need to perform step 12?

Also, I see that someone asked for help in creating a clone based payload package. ota customized image clone they were advised to use this command line:
sudo ./l4t_generate_ota_package.sh -f user_rootfs.img -o user_rootfs_updater.sh <board_name> <bsp_version>

the user_rootfs_updater.sh is based upon nv_ota_rootfs_updater.sh

I have read the documentation and am not sure how to customize nv_ota_rootfs_updater.sh. the documentation seems to be only 1 paragraph:

The default rootfs updater’s usage is:
nv_ota_rootfs_updater.sh [-p ] [-d ]
Where:
• is the device node path of the rootfs partition, for example, /dev/mmcblk0p1.
• is the path of the OTA work directory, for example, /ota_work.
• is the path of the rootfs image, for example, /ota_work/system.img.
If you create a customized rootfs image, you must specify a rootfs updater that can process that image. The rootfs updater you specify must expect the same arguments and options as nv_ota_rootfs_updater.sh. Your update may use these arguments and options or not, depending on your specific needs.

Do you know where I could find more documentation on how to customize nv_ota_rootfs_updater.sh? Do I really need to customize it? Or can I just use it as is?

Thanks in advance for your advice!

Hi mercy.yuen,

For your case, you should run the command on your ${TARGET_BSP}.
example:

$ TARGET_BSP=/home/JetPack-4.6/Linux_for_Tegra/
$ ToT_BSP=/home/JetPack-4.6/Linux_for_Tegra/
$ BASE_BSP=/home/JetPack-4.4/Linux_for_Tegra/

Follow document steps and run below command on TARGET_BSP.
$ sudo ./tools/ota_tools/version_upgrade/build_base_recovery_image.sh jetson-agx-xavier-devkit R32-4 ${BASE_BSP}/ ${BASE_BSP}/rootfs ${TARGET_BSP}

The -f and -o are options, if you want update by default, you can ignore it.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.