Migrating From JetPack 5 to JetPack 6 Using OTA Update

From RidgeRun Developer Wiki



Previous: Migrating from JetPack 5 to JetPack 6/Debian Package Method Index Next: Migrating from JetPack 5 to JetPack 6/Upgrade Orin Nano without a Linux host






This guide outlines a method for updating the Jetson device's BSP using pre-built images. It covers major JetPack version jumps and minor updates within the same version.


This method allows to update the BSP on Jetson device by writing pre-generated images to its partitions. It is possible to update JetPack 5 to 6 using this method, as well as updating minor versions of JetPack 6.

Steps performed on the host machine

1. Set the BASE_BSP environment variable to point to the directory containing Linux_for_Tegra. This directory represents the base BSP version to be updated (e.g., r35.5.0).

export BASE_BSP=/path/to/Linux_for_Tegra/

2. Navigate to the directory containing the downloaded current BSP package (e.g., jetson_linux_r36.3.0_aarch64.tbz2), extract the contents of the package and apply its sample rootfs using the following command:

tar xpf jetson_linux_<release>_aarch64.tbz2
cd Linux_for_Tegra/rootfs/
sudo tar xpf ../../tegra_Linux_sample-root-filesystem_<release>_aarch64.tbz2
cd ..
sudo ./apply_binaries.sh

3. Set the TARGET_BSP environment variable to the complete path containing the Linux_for_Tegra directory for the current BSP release (e.g., r36.3.0). Replace /path/to/extracted/jetson_linux_<release>/ with the actual location.

export TARGET_BSP=/path/to/extracted/jetson_linux_<release>/Linux_for_Tegra/

4. Install the ota_tools_<release>_aarch64.tbz2 OTA tool package to ${TARGET_BSP}:

cd ${TARGET_BSP}/../
sudo tar xpf ota_tools_<rel>_aarch64.tbz2

5. Generate the OTA update payload package:

cd ${TARGET_BSP}
sudo -E ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh \
      [-s] [-b] [-r] [-u <PKC_key_file>] [-v <SBK_key_file>] [-o <rootfs_updater>] \
      [-f <rootfs_image>] [--external-device <external_device>] [-S <rootfs_size>] \
      <target_board> <bsp_version>
  • <PKC_key_file> is an optional PKC key file, and it must be the same as the file that was used to flash images to the target board.
  • <SBK_key_file> is an optional SBK key file, and it must be the same as the file that was used to flash images to the target board.
  • <rootfs_updater> specifies the script that will be be used to update the rootfs partition.
  • <rootfs_image> is the path of the rootfs image to be written to the rootfs partition.
  • <external_device> specifies the external device to be upgraded, and nvme0n1 is the supported device.
  • <rootfs_size> specifies the size of rootfs partition on external device. It is only valid when --external-device option is set. KiB, MiB, GiB short hands are allowed.
  • <target_board> is the appropriate configuration name from the options: jetson-agx-orin-devkit, jetson-agx-orin-devkit-industrial, jetson-orin-nano-devkit, jetson-orin-nano-devkit.
  • <bsp_version> is the base BSP version, in the form Rmm-n, where mm and n are the major and minor version numbers. For example, R35-5 specifies base BSP version 35.5.x.

Steps performed on the Jetson Device

1. Download the ota_tools_<release>_aarch64.tbz2 OTA tool package and the ota_payload_package.tar.gz OTA payload package to the target board.

2. Create a directory to hold files that were generated in the OTA update process.

3. Set the WORKDIR environment variable to the complete path for this directory.

4. Unpack ota_tools_<release>_aarch64.tbz2 into the ${WORKDIR} directory.

5. Create a /ota/ directory.

6. Place the ota_payload_package.tar.gz OTA payload package in the /ota/ directory.

7. Unpack the OTA payload package and prepare to start OTA:

cd ${WORKDIR}/Linux_for_Tegra/tools/ota_tools/version_upgrade
sudo ./nv_ota_start.sh /ota/ota_payload_package.tar.gz

8. If no error occurred in step 7, reboot the target board.



Previous: Migrating from JetPack 5 to JetPack 6/Debian Package Method Index Next: Migrating from JetPack 5 to JetPack 6/Upgrade Orin Nano without a Linux host