Environment:
-
Device: Jetson Orin NX (devkit)
-
Storage: NVMe (128GB)
-
Base JetPack: 5.1.2
-
Target JetPack: 6.2
-
Rootfs A/B enabled (
ROOTFS_AB=1)
Flash Command (JetPack 5.1.2)
sudo ROOTFS_AB=1 ./tools/kernel_flash/l4t_initrd_flash.sh \
--sparse \
--external-device nvme0n1p1 \
-c tools/kernel_flash/flash_l4t_nvme_rootfs_ab.xml \
-p "-c bootloader/t186ref/cfg/flash_t234_qspi.xml" \
--network usb0 \
jetson-orin-nano-devkit \
internal
OTA Payload Generation
5.1.2 → 5.1.3
sudo ROOTFS_AB=1 ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh \
--external-device nvme0n1 \
jetson-orin-nano-devkit \
R35-4
5.1.3 → 6.2
sudo ROOTFS_AB=1 ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh \
--external-device nvme0n1 \
jetson-orin-nano-devkit \
R35-5
Issue Summary
OTA to JetPack 6.2 behaves inconsistently depending on which slot is targeted, even though both slots originate from the same 5.1.2 flash.
Case 1 (Fails)
-
Flash 5.1.2 → boot Slot A
-
OTA → 5.1.3 → updates Slot B → boot Slot B
-
OTA → 6.2 → updates Slot A
Result:
OTA reports success but:
-
Target partition has no filesystem (
lsblk -f) -
Device enters reboot loop
Case 2 (Succeeds)
-
Flash 5.1.2 → boot Slot A
-
Manually switch to Slot B:
$ sudo nvbootctrl set-active-boot-slot 1
$ reboot
3. OTA → 5.1.3 → updates Slot A → boot Slot A
4. OTA → 6.2 → updates Slot B
Result:
-
OTA completes successfully
-
Device boots into JetPack 6.2
Additional Observation
If both slots are first updated to JetPack 5.1.3, OTA to 6.2 works reliably regardless of which slot is targeted.
This suggests that once both slots have gone through a 5.1.3 OTA cycle, they reach a consistent state (in terms of partition layout, filesystem initialization, and slot metadata), eliminating the failure seen when one slot remains in its original 5.1.2 flash state.
Question
Why does OTA update to 6.2 fail when targeting slot A (on 5.1.2) from slot B (on 5.1.3) but succeed when targeting Slot B (on 5.1.2) from slot A (on 5.1.3), even though both were originally identical?
Does this suggests OTA success depends on slot state (activation/initialization history), not just JetPack version.
Any official guidance on correct A/B slot handling for JetPack 6.x OTA would be helpful.