Hello,
I am testing OTA updates that we want to deploy to a few hundred Jetson but I am running into issues that some of the Jetsons fail to update for some reason. All the jetsons are identical Jetson Orin AGX, I have confirmed this by reading out eeprom on devices that work and those that don’t.
I initially thought maybe it was to do with UEFI firmware version as the OTA is for a jetpack 5.1.2 → 5.1.5 migration meaning UEFI 4.x->6.x but this doesn’t seem to be the issue as it works for some of the jetsons.
I have some logs of the Jetson on which it worked (serial output so userspace command line + post-reboot install) and from one where it didn’t (ssh userspace log + separate serial log post reboot).
I have not been able to distinguish anything noticeable between the logs. The Jetson’s that don’t work seem to be unable to reboot to the part of the OTA process that looks like
They then seem to attempt to boot three times and land in recovery once that fails. As far as I can tell the systems are identical and I cannot explain why some fail and some do not.
This is the log of the working Jetson
999_worked_serial3.log (246.0 KB)
And this is the logs of a non-working Jetson
357_userspace_not_working.log (10.6 KB)
357_didn_work_serial.log (75.7 KB)
The rootfs is slightly modified but nothing major, just some debians for userspace utilities and the command used to generate the OTA is
cd "/workspace/target_bsp/5.1.5/Linux_for_Tegra" && BASE_BSP=/workspace/base_bsp/5.1.2/Linux_for_Tegra TARGET_BSP=/workspace/target_bsp/5.1.5/Linux_for_Tegra ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh jetson-agx-orin-devkit R35-4
The only difference I have been able to find is that the Jetson’s that don’t seem to work have
sudo nvbootctrl dump-slots-info
[sudo] password for cartken:
Current version: 0.0.1
Capsule update status: 0
Current bootloader slot: A
Active bootloader slot: A
num_slots: 2
slot: 0, status: normal
slot: 1, status: normal
opposed to
sudo nvbootctrl dump-slots-info
[sudo] password for cartken:
Current version: 35.4.1
Capsule update status: 0
Current bootloader slot: A
Active bootloader slot: A
num_slots: 2
slot: 0, status: normal
slot: 1, status: normal
on the working ones. I tried a capsule update as per the documentation which seems to fail as I believe 4.x UEFI doesn’t support this, I also attempted to update the UEFI which worked but caused the Jetson to get stuck in a bootloop due to an incompatibility between the rootfs and the UEFI I believe. Ideally I am after a solution that does not involve flashing via USB as we have a large fleet of Jetsons that need updating and this would be a very costly solution if each requires human intervention.
Scripts for the bootloader and UEFI updates are here, in case you’re after the process used
update_bootloader.txt (6.4 KB)
update_uefi.txt (3.6 KB)
I am not really sure what else could help so please let me know what information could help.
Cheers!
