Questions about Image based OTA update

I am reading Image based OTA update and plan to try it on my Jetson AGX Xavier boards to update to latest 32.6.1.

Normally when I flash the board, I use
sudo ./ jetson-xavier mmcblk0p1
But the OTA doc suggests using target board name “jetson-agx-xavier-devkit” instead. Shall I use “jetson-xavier” (as I did in command) or “jetson-agx-xavier-devkit”?

My board currently runs 32.3.1, in the OTA command for bsp_version, shall I use R32-3 or R32-3-1?

payload creation failed. Not sure why output message mentions r32_3_4 even though I gave R32-3 and my actual board runs 32.3.1

sudo ./tools/ota_tools/version_upgrade/ jetson-agx-xavier-devkit R32-3

*** Sign and generate BUP… ***

t19x payload generation complete with 3 failure(s)

SUCCESS: cleaned up BUP tmp files prior to payload creation

FAILURE: no payload made for config “boardid=2888;fab=400;boardsku=0001;boardrev=D.0;fuselevel_s=1;chiprev=2;board=jetson-agx-xavier-devkit;rootdev=mmcblk0p1;signed_img_dir=images-R32-ToT”

FAILURE: no payload made for config “boardid=2888;fab=400;boardsku=0001;boardrev=E.0;fuselevel_s=1;chiprev=2;board=jetson-agx-xavier-devkit;rootdev=mmcblk0p1;signed_img_dir=images-R32-ToT”

FAILURE: no payload made for config “boardid=2888;fab=400;boardsku=0004;boardrev=;fuselevel_s=1;chiprev=2;board=jetson-agx-xavier-devkit;rootdev=mmcblk0p1;signed_img_dir=images-R32-ToT”

SUCCESS: cleaned up BUP tmp files after payload creation

Failed to run “/home/nvidia/workspace/xavier/Linux_for_Tegra/ -f /home/nvidia/workspace/xavier/Linux_for_Tegra/tools/ota_tools/version_upgrade/ota_board_specs.conf -e jetson_agx_xavier_devkit_ota_emmc_r32_3_4_spec -b jetson-agx-xavier-devkit t19x”

*** Sign and generate BUP… ***
Signing with zerosbk …
File “/home/nvidia/workspace/xavier/Linux_for_Tegra/bootloader/rollback/”, line 42
print ‘rollback info is parsed and saved in’, params.output
SyntaxError: Missing parentheses in call to ‘print’. Did you mean print(‘rollback info is parsed and saved in’, params.output)?

hello user100090,

you may modify the apt source configuration file, nvidia-l4t-apt-source.list to point to r32.6 release code-line.
for example,
deb r32.6 main
deb r32.6 main

after that, please execute the following commands to have OTA update.
$ sudo apt update
$ sudo apt dist-upgrade
$ sudo reboot

when the upgrade complete, you should also execute $ sudo apt install nvidia-jetpack for installing the JetPack components.

I understand the apt method, but am looking for the Image Based method which hopefully will give the option to enable A/B filesystem through re-partitioning. Are you suggesting the image based method won’t work for the board? does it only support devkit?

hello user100090,

the OTA update through Debian package is supported since r32.3.1. as you’re based-on r32.3.1; there’s no need to use image-based OTA .
see-also, TX2 4GB with R32.3.1 having issues with OTA version update - #6 by JerryChang

The Debian package update approach doesn’t support re-partition to enable rootfs A/B. I have the AGX Xavier board which Image based OTA should supports, though I am seeing errors as mentioned in this thread. The image base OTA is preferred to me because it can change partition layout that is needed for rootfs A/B.

Two questions:

  1. does Image based OTA update really support AGX Xavier board, or does it ONLY support the devkit?
  2. If the AGX Xavier board is supported, how to pass ROOTFS_AB=1 to the OTA image?

hello user100090,

you should moving to JetPack-4.6 then enabling the A/B root file system redundancy.
you’ll need to execute the flash command to create and flash the target board with rootfs redundancy, by adding ROOTFS_AB=1.
please check developer guide, [How to Create Redundant Root File Systems].

Sounds like rootfs A/B won’t help me now since I am on 4.3, and you can’t A/B between 4.3 and 4.6. It will help in the future.

Let’s park A/B for now, and focus on the original question regarding Image based OTA update. The online doc talks both APT based update and Image based update. Is image based ota update supported at all for 4.6 on AGX Xavier board?

If yes, we can focus on how to get it work and whether I did something wrong in above steps.
If no, we will just close this thread, and stick to using APT repo update or direct flash.