OTA for Jetson Orin NX

Hello,

I have a question about OTA for Jetson Orin NX:

How I can create OTA package for Orin NX?

What I see on help:

 ./l4t_generate_ota_package.sh
Usage: sudo ./l4t_generate_ota_package.sh [options] <target board> <bsp version>
        Where,
                <target board>: target board. Supported boards: jetson-agx-orin-devkit, jetson-agx-orin-devkit-industrial, jetson-orin-nano-devkit.
                <bsp version>: the version of the base BSP. Supported versions: R35-5, R35-6, R36-3, R36-4.
        options:
                -u <PKC key file>: PKC key used for odm fused board
                -v <SBK key file>: Secure Boot Key (SBK) key used for ODM fused board
                -i <enc rfs key file>: Key for disk encryption support
                -s      Skip generating system image.
                -b      Update bootloader only. Only valid if <bsp version> is R36.
                -r      Update rootfs only. Only valid if <bsp version> is R36.
                -o      Specify the script to update rootfs partition.
                -f      Specify the rootfs image to be written to rootfs partition.
                -p      Specify the options directly passed into flash.sh when generating images.
                --external-device <external device>: Specify the external device to be OTAed. Supported devices: nvme0n1.
                  This option is only valid for jetson-orin-nano-devkit.
                -S <size>: Specify the size of rootfs partition on external device. Only valid when --external-device option is set. KiB, MiB, GiB short hands are allowed
                  Ths size set through this option must be the same as the size of rootfs partition on the external device to be OTAed.
                -E <esp image>: Specify the image to update ESP.
                -T <ext num sectors>: Specify the number of the sectors of the external storage device.
                --rootfs-uuid <rootfs UUID>: Specify UUID for rootfs tp be updated through OTA
                --rootfs-b-uuid <rootfs B UUID>: Specify UUID for rootfs B on the device to be updated through OTA.
                --uda-uuid <uda UUID>: Specify UUID for UDA on the device to be updated through OTA.
                --uefi-keys <keys_conf>: Specify UEFI keys configuration file.
                --uefi-enc <UEFI_ENC_key>: Key file (0x19: 16-byte; 0x23: 32-byte) to encrypt UEFI payloads.

The parameter “target board“ not contain NX modules…

<target board>: target board. Supported boards: jetson-agx-orin-devkit, jetson-agx-orin-devkit-industrial, jetson-orin-nano-devkit.

Hello,

I have face a similar issue lately. In a true NV fashion, if you look into: tools/ota_tools/version_upgrade/ota_board_specs.conf

You will see there are orin nano variant that are in effect orin nx (check for the comment). In particular, a capsule update for the uefi bootloader would fail with target orin nx, but with orin nano is will generate a capsule that is fine for orin nx.

Hope this helps.

Hello @Mr.Odmin,

According to the NVIDIAs r36.4.4 DeveloperGuide for the NVIDIA Jetson Orin NX you will need to use the jetson-orin-nano-devkit board config.

best regards,
Andrew
Embedded Software Engineer at ProventusNova

hello Mr.Odmin,

please refer to Jetson Modules and Configurations.
Orin NX and Orin Nano they’re using the same flash configuration file, jetson-orin-nano-devkit.conf
if you take a closer look, Orin NX and Orin Nano they’re using the same board id (i.e. boardid=3767), but they’re having different board SKUs.
for instance, Orin NX board SKU = 0000 or 0001; Orin Nano board SKU = 0003, 0004, or 0005.

according to above,
you may use the same configuration file, jetson-orin-nano-devkit.conf to create OTA payload.
for instance,
$ sudo ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh jetson-orin-nano-devkit R36-4

it may create all Orin NX and Orin Nano payloads,
you may revise ota_board_specs if you would like to eliminate Orin Nano targets to speed-up the process.
for instance, $OUT/Linux_for_Tegra/tools/ota_tools/version_upgrade/ota_board_specs.conf