OTA Update for NVMe failed on Jetson AGX Orin

Hi:
We are using Jetpack 6.1 + AGX Orin 64GB + Custom Board, and we are trying to OTA from Jetpack 6.1 to Jetpack 6.1.
However, after rebooting, the OTP process didn’t start as expected. Full serial log is attached:
serialLogs.txt (75.6 KB)

Steps:
We first flash the image to eMMC:

$ cd Linux_for_Tegra/
$ sudo ./flash.sh jetson-agx-orin-devkit internal

Download and extract the OTA tools from NV web, then build Image for NVMe:

$ cc Linux_for_Tegra/
$ export BASE_BSP=`pwd`
$ export TARGET_BSP=`pwd`
$ sudo -E ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh --external-device nvme0n1 jetson-agx-orin-devkit R36-4

→ Report OK.

Put OTA tools and package to AGX Orin, then run the scripts:

sudo ./nv_ota_start.sh ~/ota/ota_payload_package.tar.gz
sudo reboot

After reboot, the OTA process didn’t start as expected. From the serial log we captured, seems like the OTA packages are somehow corrupted:
serialLogs.txt (75.6 KB)

We also tried OTA on eMMC on the same BSP, and everything went well.

Please help.

Many Thanks.

hello jameskuo,

let me re-cap part of errors as following..

[    6.799550] Running nv_ota_update.sh
[    6.807485] ota_update_rootfs_in_recovery /dev/mmcblk0p1 /mnt/ota_work
[    6.808754] apply_files_for_base_recovery /mnt/ota_work
[    6.812582] _current_storage_device=/dev/mmcblk0p
[    6.813878] The rootfs image /mnt/ota_work/internal_device/system.img is not found
[    6.815094] Failed to run "ota_uph: datcanoot sefs_t tin_ermovery ina/del process grmcbp1  (-t/o1): Inappworrop
                                  riate ioctl [  for  6.81 de638vic4] eRea
d Oh: no TA job comaxntr reol in this ses hell(0 tim
es)
[    6h-5755.1#1] ERROR: Failed to run command and keep in recovery mode to waiting for check

you’ve flash the image to eMMC, i.e. sudo ./flash.sh jetson-agx-orin-devkit internal
however, you’ve created OTA payload for NVMe, i.e. --external-device nvme0n1
it’s the error due the incorrect storage types, which has the error logs of below reported.
The rootfs image /mnt/ota_work/internal_device/system.img is not found, whereas the rootfs image should came from external_device for your NVMe OTA use-case.

hence, please refer to developer guide, To Flash the Jetson Developer Kit Operating Software.
please give it a try to re-flash your target with.. Jetson AGX Orin Developer Kit (NVMe)
for instance,

$ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 \
  -c tools/kernel_flash/flash_l4t_t234_nvme.xml \
  --showlogs --network usb0 jetson-agx-orin-devkit external

after that,
please running l4t_generate_ota_package.sh again to create OTA payload for the external device, and sending the payload to have OTA process remotely.

Hi Jerry:
Thanks for the reply.
From the OTA tool scripts, seems that OTA from eMMC to NVMe is not possible.
Another note here is, generated NVMe packages right after generating eMMC does not functional. I removed the whole BSP before I generate NVMe OTA packages.
Hence, for anyone who have both eMMC and NVMe OTA reqirements, I suggest to prepare two folder - eMMC_Linux_for_Tegra and NVMe_Linux_for_Tegra, or might still lead to the error about mounting eMMC when OTA to NVMe drive.