JetPack 5.1 with Jetson Linux 35.2.1 Released

We are very pleased to announce that JetPack 5.1 is now released!

JetPack 5.1 is a production release with added support for Jetson Orin NX 16GB production module. It also supports Jetson AGX Orin 32GB, Jetson AGX Orin Developer Kit, Jetson AGX Xavier series, Jetson Xavier NX series as well as Jetson AGX Xavier Developer Kit and Jetson Xavier NX Developer Kit.

JetPack 5.1 includes Jetson Linux 35.2.1 with new security and OTA features as well as enhancements for Multimedia, Camera and Display. Below are the top highlights for JetPack 5.1. Please refer to JetPack 5.1 page for full lists of features:

  • Adds support for Jetson Orin NX 16GB production module
  • Security
  • Over The Air Updates:
    • Image Based OTA tools with A/B support to upgrade Jetson AGX Xavier or Jetson Xavier NX modules running JetPack 4.x releases
    • Image Based OTA tools to upgrade Jetson Orin modules will be released with the next release
  • Display
    • Fixes for HDMI 2.0 and DP compliance
  • Camera
    • Support for AR1335 YUV camera
    • Enhanced support for simultaneous V4l2 and Argus
    • New Argus Demosaic (argus_demosaicOutput sample) to output RGB supported on Orin
    • New Argus RAW reprocessing (syncStereoRawReprocess sample) to read Bayer raw images from file & provide reprocessed YUV output to file
    • Updated Argus SyncSensorCalibrationData extension with enhanced EEPROM Calibration data to support Camera Module Serial Number, and IMU Noise Parameters
  • MultiMedia
    • TAQ( Temporal Adaptive Quantization) support is extended to H264 encoder

JetPack 5.1 Components:

  • Jetson Linux 35.2.1
  • CUDA 11.4.19
  • TensorRT 8.5.2
  • cuDNN 8.6.0
  • VPI 2.2
  • OpenCV 4.5.4
  • Vulkan 1.3
  • Nsight Systems 2022.5
  • Nsight Graphics 2022.6
  • Nsight DLD/Compute 2022.2

To upgrade from previous JetPack 5 Releases:

To upgrade from previous JetPack 5 releases, first edit /etc/apt/sources.list.d/nvidia-l4t-apt-source.list to point to the 35.2 repo (just change the version to r35.2 in both lines). Next, use the following commands, then physically reboot the system:

sudo apt update

sudo apt dist-upgrade

sudo apt install --fix-broken -o Dpkg::Options::="--force-overwrite"

If you encounter an error, please use the following 3 commands and re-attempt the upgrade (do not reboot the device after running below command and before re-attempting the upgrade)

sudo parted /dev/mmcblk0 -s rm 4

sudo parted /dev/mmcblk0 -s resizepart 3 67.9MB

sudo parted /dev/mmcblk0 mkpart -s A_reserved_on_user 67.9MB 101MB

Please select “Ignore” when prompted and “ext2” as the file system type.

Resources:

Note: Some of the links in Jetson Linux 35.2.1 page in Downloads section do not follow the normal convention. For example: https://developer.nvidia.com/downloads/r35releasev21-sources-ubuntufocal-l4taarch64srctbz2

Instead of

https://developer.nvidia.com/downloads/r35_release_v2.1/sources/ubuntu_focal-l4t_aarch64_src.tbz2

This is due to an issue in our posting tool and we plan to fix it within a week so that our links can follow the convention as before.

1 Like

I have a Xavier NX developer kit that was freshly flashed with 5.0.2 (with the NVME SSD for the root filesystem).

If I do an apt-get update and apt-get dist-upgrade, things break:

Setting up nvidia-l4t-bootloader (35.2.1-20230121191456) ...
3668-100---1--jetson-xavier-nx-devkit-qspi-
Info. Installing mtdblock.
Info. Active boot storage: nvme0n1
Info. Legacy mode: true
INFO. Dump nv_boot_control.conf:
TNSPEC 3668-200-0000-H.0-1-2-jetson-xavier-nx-devkit-qspi-
COMPATIBLE_SPEC 3668-100---1--jetson-xavier-nx-devkit-qspi-
TEGRA_LEGACY_UPDATE true
TEGRA_BOOT_STORAGE nvme0n1
TEGRA_EMMC_ONLY false
TEGRA_CHIPID 0x19
TEGRA_OTA_BOOT_DEVICE /dev/mtdblock0
TEGRA_OTA_GPT_DEVICE /dev/mtdblock0
Starting bootloader post-install procedure.
INFO. Installing mtdblock.
Starting legacy update procedure.
ERROR. Procedure for bl_only_payload update FAILED.
Cannot install package. Exiting...
dpkg: error processing package nvidia-l4t-bootloader (--configure):
 installed nvidia-l4t-bootloader package post-installation script subprocess returned error exit status 1

Tracing this back to the actual script that is failing:

/opt/ota_package# nv_update_engine -f bl_update_payload
Nvidia A/B-Redundancy Update tool Version 2.2
Start running: /usr/sbin/nv_bootloader_payload_updater --forced-bl-update /opt/ota_package/bl_update_payload
Start running: /opt/nvidia/l4t-bootloader-config/nv-l4t-bootloader-config.sh -c
3668-100---1--jetson-xavier-nx-devkit-qspi-
Got update payload: /opt/ota_package/bl_update_payload
Tegra User Block Device: /dev/disk/by-partlabel
Tegra Boot Block Device: /dev/mtdblock0
Tegra GPT Block Device: /dev/mtdblock0
HEADER: MAGIC NVIDIA__BLOB__V3
HEX_VALUE 16975394
BLOB_SIZE 48852384
HEADER_SIZE 48
NUMBER_OF_ELEMENTS 19
HEADER_TYPE 0
UNCOMP_SIZE 48852384
MB1_RATCHET_LV 0
MTS_RATCHET_LV 0
ROLLBACK_FUSE_LV 0
Device TN Spec: 3668-200-0000-H.0-1-2-jetson-xavier-nx-devkit-qspi-
Device Compatible Spec: 3668-100---1--jetson-xavier-nx-devkit-qspi-
Can't find matching TN Spec in OTA Blob!
GPT update failed. Status: 3
/usr/sbin/nv_bootloader_payload_updater --forced-bl-update Failed.
Forced bootloader update is failed

Is updating a Xavier NX dev kit suppossed to work? Can I still fix this without reflashing?

@KoenKepler out of the box, the APT upgrade mechanism we support is for the default devkit configuraiton, which is the case of Jetson Xavier NX developer kit is SDCard for storage. To upgrade with NVMe as root file system, it may require some additional steps. My colleagues should be able to help here.

I am having trouble with installing 5.1 as well. I have 5.0.2 backed up in a saved directory (calling it baseline_sdk_5.0.2) and can command line flash it (sudo ./flash.sh jetson-xavier-nx-devkit-emmc mmcblk0p1) without issue.

I deleted the Jetpack_5.0.2_… directory so to start clean for the 5.1 version. Using the SDK gui, I downloaded the 5.1 and flashed it both with the gui and cli command above. After flashing on the devkit, when I check the /etc/nv_tegra_release file, it still states 5.0.2 (R35 (release) version- 1.0).
It appears it is still flashing the 5.0.2 version. How can I force it to flash Jetpack 5.1?

My ultimate goal is to tar up the whole JetPack directory, move it other Ubuntu host PCs and flash via command without using the GUI (like I can do with my baseline 5.0.2).

Thanks!

Update:

We found an issue when installing JetPack using SDK Manager where Jetson Multimedia installation was not succesfull. We have fixed the issue.
If you had already tried JetPack 5.1 installation using SDK Manager, please uninstall JetPack 5.1 using the SDK Manager menu in the left-bottom in the SDK Manager main GUI. Then close and re-open the SDK Manager, download and install JetPack 5.1 again.

Also note that the nvidia-jetpack metapackage is now avaialable in the APT repo. If you want to install JetPack after installing Jetson Linux 35.2.1 using APT, then just follow the familiar commands:

sudo apt update
sudo apt install nvidia-jetpack

Hi,
We saw similar problem mostly on devices with external storage.
If you are flashing a Jetson device with external storage, please make sure it’s booted to the storage you flashed on after flashing.
Jetson devices would not automatic change the boot order after flashing, this needs to done manually as for now.

Update:

Jetson Xavier NX SD Card Image is now avaialble at the JetPack page https://developer.nvidia.com/embedded/jetpack

Most of the containers for JetPack 5.1 are also up on NGC, except Tensorflow, Pytorch and ML container.

I indeed ran into the error upgrading from 35.1 to 35.2, I am booting / running a Xavier NX from NVMe. These are my block devices (lsblk):

NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0          7:0    0    16M  1 loop 
mtdblock0     31:0    0    32M  0 disk 
zram0        251:0    0 570,6M  0 disk [SWAP]
zram1        251:1    0 570,6M  0 disk [SWAP]
zram2        251:2    0 570,6M  0 disk [SWAP]
zram3        251:3    0 570,6M  0 disk [SWAP]
zram4        251:4    0 570,6M  0 disk [SWAP]
zram5        251:5    0 570,6M  0 disk [SWAP]
nvme0n1      259:0    0   477G  0 disk 
├─nvme0n1p1  259:1    0 476,4G  0 part /
├─nvme0n1p2  259:2    0    64M  0 part 
├─nvme0n1p3  259:3    0    64M  0 part 
├─nvme0n1p4  259:4    0   448K  0 part 
├─nvme0n1p5  259:5    0   448K  0 part 
├─nvme0n1p6  259:6    0    80M  0 part 
├─nvme0n1p7  259:7    0   512K  0 part 
├─nvme0n1p8  259:8    0   300M  0 part 
├─nvme0n1p9  259:9    0    64M  0 part /opt/nvidia/esp
└─nvme0n1p10 259:10   0    18K  0 part

Do I need to apply the parted commands to nvme0n1?

Thx.

I upgraded to jetpack 5.2 with problems (NVME) but have now succesfully installed the above. Your nvme parts are identicle to mine. To get around my problems I had which was dpkg errors I used this trick. (Works for xavier NX)
Solution : dpkg: error processing package nvidia-l4t-bootloader --configure) - Jetson & Embedded Systems / Jetson Nano - NVIDIA Developer Forums I dont know if this helps.
I have never been able to upgrade sucessfully first time on any of the upgrades without using SDKManager but this time I managed without.

1 Like

Thank you, the linked solution did the trick for my xavier nx (temp /var/lib/dpkg/info clean and restore)! Glad that I didn’t have to use SDKManager again!!

1 Like

The ML containers for JetPack 5.1 have been published on NGC here:

nvcr.io/nvidia/l4t-ml:r35.2.1-py3
nvcr.io/nvidia/l4t-pytorch:r35.2.1-pth2.0-py3
nvcr.io/nvidia/l4t-tensorflow:r35.2.1-tf2.11-py3

Hello!
I, too, am somewhat confused in the abundance of information about transferring the JetPack OS to an external SSD drive.

OS information:

professorx@x-mansion:~$ sudo apt show nvidia-jetpack -a
[sudo] password for professorx:
Package: nvidia-jetpack
Version: 5.1-b147
Priority: Standard
Section: metapackages
Maintainer: NVIDIA Corporation
Installed-Size: 199 kB
Depends: nvidia-jetpack-runtime (= 5.1-b147), nvidia-jetpack-dev (= 5.1-b147)
Homepage: http://developer.nvidia.com/jetson
Download-Size: 29.3 kB
APT-Sources: https://repo.download.nvidia.com/jetson/common r35.2/main arm64 Packages
Description: NVIDIA Jetpack Meta Package

professorx@x-mansion:~$ cat /etc/nv_tegra_release

R35 (release), REVISION: 2.1, GCID: 32413640, BOARD: t186ref, EABI: aarch64, DATE: Tue Jan 24 23:38:33 UTC 2023

professorx@x-mansion:~$

Memory card: MicroSD Card EVO Plus 32GB For Camera & Video | Samsung SG

I found this project:

p.s. Gaze and emotion detectors from the “deepstream_tao_apps” project:

are unstable (the main code works from an SD-HC memory card, see the hyperlink above) - usually with unacceptably long and unpredictable lags. Apparently the reason is the speed of reading / writing.

p.s. p.s. Actually, my question is - is it possible to transfer JetPack 5.1 firmware to NVMe SSD?
I’m afraid of the possible harm to the Jetson in case of a failure in the process of transferring the OS to the SSD.

Hey there. I have several Jetson NX DevKits (let’s say 3) to play with. My goal is to use the SDKManager on my AMDx64 Linux system to create the latest JetPack OS images on 64GB SD cards (as the only storage). I have experience doing this successfully with a Jetson AGX system, so I know what to do process-wise.

I’m having different issues on 2 of the systems:

  1. Flash was successful to JP 5.1 (Rev 1). System boots. But the Riva 2.10 Quickstart demos (mostly) won’t run. It seems to be random as to whether I can:

  2. Get the riva_init.sh to complete (often fails trying different strategies). I have it to the point where I am only trying to riva_init.sh the ASR en_US demos in config.sh. In this config riva_init.sh succeeds, but riva_start.sh no longer does (I’ve even done riva_clean.sh and then riva_init.sh). It did work when I first flashed it, but not sure why it has stopped. It appears that it’s running out of memory as the system freezes when the swap is consumed. Actually, when I first flashed this NX DevKit device, I had the ASR and NLP enabled. The streaming ASR demos worked fine (however nothing seemed to happen when I turned on the speaker identification, and based on my poking around the python examples, it didn’t appear to even use the CLI option). I also a number of the NLP based demos failed saying it couldn’t find the mdel (like riva-qa). But I am now so far away from attempting this on this NX DevKit. :-/

  3. On another NX DevKit, I can’t even get the same flashing of the OS to complete. It gets pretty far in the process, but eventually fails. I’ll have to look up the exact console message. It believe it had something to do with time. Ultimately it declares that the flash failed. I have retried and at least gotten a consistent result.

  4. I’m afraid to use the 3rd NX DevKit because I don’t want to turn it into a brick, like the second. :-/

Where I want to head is to have all 3 NX DevKit running offering different services, since one can’t run them all. I’m hoping to someday have Question Answering, en_US streaming ASR (w/ punctuation), and en_US TTS services operating so I can stich them together into an offline Question Answering capability demo (perhaps using speech2face on another workstation where that already runs fine).

Help!

I have successfully gotten just the TTS demos to work if I only turn on the TTS models on my NX DevKit. I had the ASR + NLP working initially, but they don’t want to run anymore. And I have never gotten the NMT working on the NX DevKit. I have gotten them to work on a Jetson Xavier AGX DevKit.

Hello,
Somewhat not a relevant question here but since I am using JetPack 5.1 with Jetson Linux 35.2.1 on my nvidia Jetson Orin development kit where I try to install TensorFlow Object Detection API for training a new model but it always complains about tf-models-officials & tensorflow-addons compatibility as below:

ERROR: Cannot install object-detection and object-detection==0.1 because these package versions have conflicting dependencies.

The conflict is caused by:
    tf-models-official 2.11.5 depends on tensorflow-addons
    tf-models-official 2.11.4 depends on tensorflow-addons
    tf-models-official 2.11.3 depends on tensorflow-addons
    tf-models-official 2.11.2 depends on tensorflow-addons
    tf-models-official 2.11.0 depends on tensorflow-addons
    object-detection 0.1 depends on sacrebleu<=2.2.0
    tf-models-official 2.10.1 depends on sacrebleu==2.2.0
    object-detection 0.1 depends on sacrebleu<=2.2.0
    tf-models-official 2.10.0 depends on sacrebleu==2.2.0
    tf-models-official 2.9.2 depends on tensorflow-addons
    tf-models-official 2.9.1 depends on tensorflow-addons
    tf-models-official 2.9.0 depends on tensorflow-addons
    tf-models-official 2.8.0 depends on tensorflow~=2.8.0
    tf-models-official 2.7.2 depends on tensorflow-text>=2.4.0
    tf-models-official 2.7.1 depends on tensorflow-text>=2.4.0
    tf-models-official 2.7.0 depends on tensorflow-addons
    tf-models-official 2.6.1 depends on tensorflow-addons
    tf-models-official 2.6.0 depends on tensorflow-addons
    tf-models-official 2.5.1 depends on tensorflow-addons

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

Upon research, I didn’t find any version for tf-models-officials / tensorflow-addons for arm64 processor. Is there something I am missing?
Regards,
Saqib