OTA update from JetPack 6.2.0 to 6.2.1 fail

I have an issue with the OTA update from JetPack 6.2.0 to JetPack 6.2.1 (no problems with OTA when I updated from the previous version to 6.2.0).

Here are the details:

  1. I’m using the Orin Nano Dev kit burned from scratch with JetPack 6.2.0
  2. Prepared the OTA package with the command: ROOTFS_AB=1 ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh --external-device nvme0n1 -S 24GiB jetson-orin-nano-devkit R36-4
  3. Apply OTA package on the board

Got this error:

Verifying image /ota_work/external_device/images-R36-ToT/recovery.img with sha1 chksum file /tmp/sha1sum.tmp
Sha1 checksum for /ota_work/external_device/images-R36-ToT/recovery.img (857187d315cfa8e2f208da4b60ad7b510bbddc52) matches
update_specified_partitions_alt recovery /ota_work/external_device/images-R36-ToT/recovery.img /tmp/sha1sum.tmp
Start checking update state.
Dump recovery of 63647744 into /tmp/recovery_image.tmp.
Reading 63647744 bytes from /dev/nvme0n1p12: 1KB block=62156 remainder=0 offset=63647744
Dump recovery_alt of 63647744 into /tmp/recovery_alt_image.tmp.
Reading 63647744 bytes from /dev/nvme0n1p9: 1KB block=62156 remainder=0 offset=63647744
Dump whole recovery_alt partition into /tmp/recovery_alt_part.tmp.
Verifying image /tmp/recovery_image.tmp with sha1 chksum file /tmp/sha1sum.tmp
Sha1 checksum for /tmp/recovery_image.tmp (e02728313ffaf2e3b5be8b9d9c79962f3df42a23 != 857187d315cfa8e2f208da4b60ad7b510bbddc52) does not match
recovery does not contain the image to be updated.
Verifying image /tmp/recovery_alt_image.tmp with sha1 chksum file /tmp/sha1sum.tmp
Sha1 checksum for /tmp/recovery_alt_image.tmp (f7df597da8405e7d2a93d44387f4f5bf028d5307 != 857187d315cfa8e2f208da4b60ad7b510bbddc52) does not match
recovery_alt does not contain the image to be updated.

*** Please note that this reply is generated by LLM automatically ***

Based on the provided context, I’ll try to help you troubleshoot the issue with the OTA update from JetPack 620 to JetPack 621 on your Jetson Orin Nano Dev kit.

Firstly, it’s great that you didn’t encounter any issues with the OTA update from the previous version to 620. However, since you’re experiencing problems with the update from 620 to 621, let’s investigate possible causes.

  1. Check the OTA update logs: Look for any error messages or warnings in the OTA update logs. This might give you a hint about what’s going wrong. You can find the logs in the /var/log/ota directory.
  2. Verify the current software version: Ensure that your Jetson Orin Nano is running the correct software version. Check the /etc/nv_tegra_release directory to confirm that you’re running JetPack 620.
  3. Check for any pending updates: Run the sudo apt update and sudo apt full-upgrade commands to ensure that your system is up-to-date and that there are no pending updates.
  4. Verify the OTA update package: Make sure that the OTA update package is correct and not corrupted. You can try re-downloading the package or checking its integrity using the sha256sum command.
  5. Check for any conflicts with other packages: It’s possible that another package is conflicting with the OTA update. Try removing any recently installed packages or dependencies that might be causing the issue.
  6. Try a manual update: If the OTA update is failing, you can try updating manually using the sudo apt install command. This might help you identify if the issue is specific to the OTA update process.
  7. Check the NVIDIA forums and documentation: Look for any known issues or documentation related to the OTA update from JetPack 620 to JetPack 621 on the NVIDIA forums and documentation.

Comparing your issue with others in the provided context:

  • There are several other issues related to OTA updates on the Jetson Orin Nano, such as “OTA Update causing unbootable state” and “Problem generating OTA payload for 5.1.2->5.1.3 update”. However, these issues seem to be related to different software versions and might not be directly applicable to your situation.
  • The “Issue that OTA works on some Jetsons but not others” thread might be relevant, as it discusses issues with OTA updates on different Jetson devices. However, the specific cause and solution are not clear in this thread.

To further troubleshoot the issue, you can try providing more details about the error messages or warnings you’re seeing during the OTA update process. Additionally, you can try running the sudo ota-update command with the --verbose flag to get more detailed output.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

Sorry, but LLM’s answer is not helpful in this case.

Hi Mr.Odmin,

OTA update from Jetpack 6.2.0(r36.4.3) to 6.2.1(r36.4.4) is an minor update. They are both R36-4.
You can simply refer to Updating to a New Point Release to perform the update on the devkit.

Hi KevinFFF,

Thanks for your reply, but I would like to pay your attention, I’m using A/B boot functionality, which requires initial flashing with ROOTFS_AB=1, and I’m generating the OTA package with ROOTFS_AB=1 too. So, if I try to switch back to update to the minor release via apt, I will get an issue with nvidia-* packages and an error message that I should use the A/B boot approach. I will get a broken package management system.

In addition, if you can see into sudo vi /etc/apt/sources.list.d/nvidia-l4t-apt-source.list

You can see:

deb ``https://repo.download.nvidia.com/jetson/common`` r36.4 main
deb ``https://repo.download.nvidia.com/jetson/t234`` r36.4 main
deb ``https://repo.download.nvidia.com/jetson/ffmpeg`` r36.4 main

Nothing to change here (6.2.0(r36.4.3) = 6.2.1(r36.4.4) on the repository point of view)

So, I expect to have working OTA update functionality on any JetPack releases.

Also, I want to bring to your attention a similar issue, but it was related to encryption. As you can see, I’m not using encryption, but the issue is the same.

Have you tried using JP6.2.1 to flash your board and confirm it can boot as expected?

Yes, they are both R36.4 so that you should be able to update them to the latest releases through sudo apt update and sudo apt upgrade.

From the log you shared, it seems the issue caused from the wrong checksum for recovery image.

Could you share the full log when you were generating the image-based OTA payload?

If this doesn’t work. Try using a SDK manager to boot it . SDK manager works fine . Because I too had the same problem

Yes, sure, I tested it via direct flashing, everything was fine, then I tried to update my Dev kit Orin Nano to simulate OTA rollout to the field devices, and faced this issue with OTA.

I talked about it in the previous post:

Let me show you what happened:

Preparing to unpack …/35-nvidia-l4t-core_36.4.4-20250616085344_arm64.deb …
WARNING: rootfs A/B is enabled, can not update using Debian OTA, quit.
dpkg: error processing archive /tmp/apt-dpkg-install-fyFlIL/35-nvidia-l4t-core_36.4.4-20250616085344_arm64.deb (–unpack):
new nvidia-l4t-core package pre-installation script subprocess returned error exit status 1
Errors were encountered while processing:
/tmp/apt-dpkg-install-fyFlIL/35-nvidia-l4t-core_36.4.4-20250616085344_arm64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Sure, attaching it.

ota_20251002-201120.log (5.8 KB)

It seems the log from your board when you run nv_ota_start.sh to trigger OTA update.

I would like to check the log when you run l4t_generate_ota_package.sh on host to generate OTA payload.

You are right, attaching output from l4t_generate_ota_package.sh

l4t_generate_ota_package.sh_output.txt (676.3 KB)

KevinFFF, did you have a chance to review log file and find any reasons?

Hi KevinFFF. My issue is still unresolved. What information or logs should I provide to help you in troubleshooting the issue?

Sorry for the late reply that I just come back from vacation.

Your logs of generating the OTA payload look good to me.

What’s the exact module you are using?
Please share the result of cat /etc/nv_boot_control.conf on your board.

Hi Kevin,

I’m using a standard NVIDIA Orin nano dev kit. Here is a cat /etc/nv_boot_control.conf

TNSPEC 3767-300-0005-K.2-1-1-jetson-orin-nano-devkit-
COMPATIBLE_SPEC 3767--0005--1--jetson-orin-nano-devkit-
TEGRA_BOOT_STORAGE nvme0n1
TEGRA_CHIPID 0x23
TEGRA_OTA_BOOT_DEVICE /dev/mtdblock0
TEGRA_OTA_GPT_DEVICE /dev/mtdblock0

It seems you are using Orin Nano devkit with Orin Nano SKU5 module.
Please also share the result of the following command on your board.

$ sudo i2cdump -f -y 0 0x50
$ cat /proc/cmdline
$ lsblk -o name,partlabel,uuid
$ ll /dev/disk/by-partlabel
$ journalctl --no-pager -u nv-l4t-bootloader-config
$ sudo efibootmgr

Please share the full log after you run nv_ota_start.sh on your board.

Hi Kevin,

The full OTA log was on this post

root@orin:/home/nvidia#  sudo i2cdump -f -y 0 0x50

No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 02 00 fe 00 00 00 00 00 00 00 00 ff 00 00 00 00    ?.?.............
10: 00 01 00 01 36 39 39 2d 31 33 37 36 37 2d 30 30    .?.?699-13767-00
20: 30 35 2d 33 30 30 20 4b 2e 32 00 00 00 00 00 00    05-300 K.2......
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
40: b0 48 00 00 22 c1 eb 2d b0 48 31 34 32 31 32 32    ?H.."??-?H142122
50: 33 30 36 30 35 36 39 00 00 00 00 00 00 00 00 00    3060569.........
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
90: 00 00 00 00 00 00 4e 56 43 42 00 ff 4d 31 00 00    ......NVCB..M1..
a0: 00 00 00 00 00 00 00 00 00 00 00 00 22 c1 eb 2d    ............"??-
b0: b0 48 01 00 00 00 00 00 00 00 00 00 00 00 00 00    ?H?.............
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ea    ...............?
root@orin:/home/nvidia# cat /proc/cmdline

root=PARTUUID=d9b6af78-e101-4738-bcb1-f4cca3fd7280 rw rootwait rootfstype=ext4 mminit_loglevel=4 console=ttyTCU0,115200 firmware_class.path=/etc/firmware fbcon=map:0 nospectre_bhb video=efifb:off console=tty0 bl_prof_dataptr=2031616@0x271E10000 bl_prof_ro_ptr=65536@0x271E00000
root@orin:/home/nvidia# lsblk -o name,partlabel,uuid
NAME         PARTLABEL          UUID
loop0
loop1
loop2
loop3
loop4
loop5
loop6
loop7
loop8
zram0
zram1
zram2
zram3
zram4
zram5
nvme0n1
├─nvme0n1p1  APP                1ff1cd10-0656-40ba-a17d-c121bd068543
├─nvme0n1p2  APP_b              11fc37d0-d7a5-481a-95a1-630074eae432
├─nvme0n1p3  A_kernel
├─nvme0n1p4  A_kernel-dtb
├─nvme0n1p5  A_reserved_on_user
├─nvme0n1p6  B_kernel
├─nvme0n1p7  B_kernel-dtb
├─nvme0n1p8  B_reserved_on_user
├─nvme0n1p9  recovery_alt
├─nvme0n1p10 recovery-dtb
├─nvme0n1p11 esp                B737-1281
├─nvme0n1p12 recovery
├─nvme0n1p13 recovery-dtb_alt
├─nvme0n1p14 esp_alt
├─nvme0n1p15 UDA
└─nvme0n1p16 reserved
root@orin:/home/nvidia# ll /dev/disk/by-partlabel
total 0
drwxr-xr-x 2 root root 360 Jan  1  1970 ./
drwxr-xr-x 7 root root 140 Oct 14 18:00 ../
lrwxrwxrwx 1 root root  15 Nov 21  2023 A_kernel -> ../../nvme0n1p3
lrwxrwxrwx 1 root root  15 Nov 21  2023 A_kernel-dtb -> ../../nvme0n1p4
lrwxrwxrwx 1 root root  15 Nov 21  2023 APP -> ../../nvme0n1p1
lrwxrwxrwx 1 root root  15 Nov 21  2023 APP_b -> ../../nvme0n1p2
lrwxrwxrwx 1 root root  15 Nov 21  2023 A_reserved_on_user -> ../../nvme0n1p5
lrwxrwxrwx 1 root root  15 Nov 21  2023 B_kernel -> ../../nvme0n1p6
lrwxrwxrwx 1 root root  15 Nov 21  2023 B_kernel-dtb -> ../../nvme0n1p7
lrwxrwxrwx 1 root root  15 Nov 21  2023 B_reserved_on_user -> ../../nvme0n1p8
lrwxrwxrwx 1 root root  16 Jan  1  1970 esp -> ../../nvme0n1p11
lrwxrwxrwx 1 root root  16 Nov 21  2023 esp_alt -> ../../nvme0n1p14
lrwxrwxrwx 1 root root  16 Nov 21  2023 recovery -> ../../nvme0n1p12
lrwxrwxrwx 1 root root  15 Nov 21  2023 recovery_alt -> ../../nvme0n1p9
lrwxrwxrwx 1 root root  16 Nov 21  2023 recovery-dtb -> ../../nvme0n1p10
lrwxrwxrwx 1 root root  16 Nov 21  2023 recovery-dtb_alt -> ../../nvme0n1p13
lrwxrwxrwx 1 root root  16 Nov 21  2023 reserved -> ../../nvme0n1p16
lrwxrwxrwx 1 root root  16 Nov 21  2023 UDA -> ../../nvme0n1p15
root@orin:/home/nvidia# journalctl --no-pager -u nv-l4t-bootloader-config
Oct 14 18:00:35 orin systemd[1]: Starting Configure bootloader service...
Oct 14 18:00:35 orin nv-l4t-bootloader-config.sh[1012]: 3767--0005--1--jetson-orin-nano-devkit-
Oct 14 18:00:35 orin nv-l4t-bootloader-config.sh[1342]: TNSPEC 3767-300-0005-K.2-1-1-jetson-orin-nano-devkit-
Oct 14 18:00:35 orin nv-l4t-bootloader-config.sh[1342]: COMPATIBLE_SPEC 3767--0005--1--jetson-orin-nano-devkit-
Oct 14 18:00:35 orin nv-l4t-bootloader-config.sh[1342]: TEGRA_BOOT_STORAGE nvme0n1
Oct 14 18:00:35 orin nv-l4t-bootloader-config.sh[1342]: TEGRA_CHIPID 0x23
Oct 14 18:00:35 orin nv-l4t-bootloader-config.sh[1342]: TEGRA_OTA_BOOT_DEVICE /dev/mtdblock0
Oct 14 18:00:35 orin nv-l4t-bootloader-config.sh[1342]: TEGRA_OTA_GPT_DEVICE /dev/mtdblock0
Oct 14 18:00:35 orin nv-l4t-bootloader-config.sh[1012]: Info: Write TegraPlatformCompatSpec with 3767--0005--1--jetson-orin-nano-devkit-.
Oct 14 18:00:35 orin nv-l4t-bootloader-config.sh[1012]: Info: The esp is already mounted to /boot/efi.
Oct 14 18:00:35 orin nv-l4t-bootloader-config.sh[1012]: Info: System version(deb version): 2360323, BSP version(QSPI version): 2360323
Oct 14 18:00:35 orin nv-l4t-bootloader-config.sh[1012]: Info: Verifying bootloader and rootfs status.
Oct 14 18:00:35 orin nv-l4t-bootloader-config.sh[1374]: Info: variable BootChainFwStatus is not found.
Oct 14 18:00:36 orin systemd[1]: nv-l4t-bootloader-config.service: Deactivated successfully.
Oct 14 18:00:36 orin systemd[1]: Finished Configure bootloader service.
root@orin:/home/nvidia# sudo efibootmgr
BootCurrent: 0001
Timeout: 5 seconds
BootOrder: 0001,0004,0003,0002,0005,0000,0006,0007
Boot0000* Enter Setup
Boot0001* UEFI Micron MTFDKBA512TFH 222037F11B16 1
Boot0002* UEFI PXEv4 (MAC:48B02DEBC122)
Boot0003* UEFI PXEv6 (MAC:48B02DEBC122)
Boot0004* UEFI HTTPv4 (MAC:48B02DEBC122)
Boot0005* UEFI HTTPv6 (MAC:48B02DEBC122)
Boot0006* BootManagerMenuApp
Boot0007* UEFI Shell

Hi @Mr.Odmin,

It seems you hit the similar issue as Interrupted OTA update can cause retries to fail - Jetson & Embedded Systems / Jetson Orin Nano - NVIDIA Developer Forums, please apply that patch(cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/nvidia/original/4X/7/7/0/77079d57b0173020a3bed18bb32577b24e9ea751.txt) to check if it could help in your case.

Hi Kevin,

Thanks a lot, I will try it and return with feedback.

Hi Kevin,

I checked and returned with the results:

This, patch is helped me for 50%

Before applying OTA package, I did:

cd /update_tools/Linux_for_Tegra/tools/ota_tools/version_upgrade

patch -p0 <<'PATCH'
--- nv_ota_update_alt_part.func
+++ nv_ota_update_alt_part.func
@@ -248,8 +248,7 @@
     if [ "${is_part_new}" = "false" ] && [ "${is_part_alt_new}" = "true" ]; then
         current_state="S2"
     fi
-    if [ "${is_part_new}" = "true" ] && [ "${is_part_alt_erased}" = "false" ] \
-        && [ "${is_part_alt_new}" = "false" ]; then
+    if [ "${is_part_new}" = "true" ] && [ "${is_part_alt_erased}" = "false" ]; then
         current_state="S3"
     fi
     if [ "${is_part_new}" = "true" ] && [ "${is_part_alt_erased}" = "true" ]; then
PATCH

Try to apply the patch with our OTA guide, got a new error:

recovery-dtb_alt contains the image to be updated already.
Sha1sum of erased recovery-dtb: 6a521e1d2a632c26e53b83d2cc4b0edecfc1e68c
Create sha1sum of erased recovery-dtb to /ota_work/external_device/images-R36-ToT/tegra234-p3768-0000+p3767-0005-nv.dtb.rec.erased.sha1sum
Verifying image /tmp/recovery-dtb_alt_part.tmp with sha1 chksum file /ota_work/external_device/images-R36-ToT/tegra234-p3768-0000+p3767-0005-nv.dtb.rec.erased.sha1sum
Sha1 checksum for /tmp/recovery-dtb_alt_part.tmp (a7d55a527ae3ce141b08fd08a73bfd4c5a6a308f != 6a521e1d2a632c26e53b83d2cc4b0edecfc1e68c) does not match
recovery-dtb_alt needs to be erased
Current update state: err.
Enter error update state, exiting update process...
Failed to run "update_specified_partitions_alt recovery-dtb /ota_work/external_device/images-R36-ToT/tegra234-p3768-0000+p3767-0005-nv.dtb.rec /tmp/sha1sum.tmp "
Failed to run "install_partition_with_alt /ota_work/external_device/images-R36-ToT recovery-dtb"
Failed to run "update_misc_partitions /ota_work /ota_work/external_device/images-R36-ToT"

I applied another “fix“:

# Zeroizing recovery-dtb_alt!
# from log it should be: /dev/nvme0n1p13
sudo blkdiscard /dev/nvme0n1p13 || sudo dd if=/dev/zero of=/dev/nvme0n1p13 bs=1M status=progress conv=fsync

Apply the OTA package again and got SUCCESS!

After it, I applied the regular procedure with OTA package without any patches, and it working fine too, I repeated it 4 times, from A to B and from B to A, everything is working fine. Looks like we have and issue with initial flashing of JetPack…

Thanks for your update and share the experience.

You may add --erase-all during flash to prevent such issue.