Installing nvidia-jetpack caused the system to upgrade to jp7.2.1

Hello , NVIDIA team

jetson T5000
Custom carrier board, compatible BSP system is jp7.2.0

sudo apt nvidia-jetpack

Installing nvidia-jetpack caused the system to automatically upgrade to jp7.2.1
The device tree and kernel have been completely replaced, causing many features to become unavailable.

I saw some people on the forum installing a specific version of JetPack

sudo apt install nvidia-jetpack=7.2-b187

It shows that it cannot be installed

nvidia@tegra-ubuntu:/etc/apt/sources.list.d$ sudo apt install nvidia-jetpack=7.2-b187
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 nvidia-jetpack : Depends: nvidia-jetpack-runtime (= 7.2-b187) but 7.2.1-b49 is to be installed
                  Depends: nvidia-jetpack-dev (= 7.2-b187) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
nvidia@tegra-ubuntu:/etc/apt/sources.list.d$

Installing nvidia-jetpack should not lead to a system upgrade.
hope this issue can be fixed.
Thanks!

Hi,

sudo apt install nvidia-jetpack installs the current packages from the configured r39.2 repository. This repository now provides JetPack 7.2.1 / L4T 39.2.1, so the installation can also update BSP packages such as the kernel and device tree. This is expected behavior.

Specifying only nvidia-jetpack=7.2-b187 does not pin all of its dependencies. The error shows that APT is still selecting the 7.2.1 runtime and development packages. We do not recommend mixing r39.2.0 and r39.2.1 packages.

Recommendation: For a custom carrier board, keep the custom kernel, device tree, and JetPack components on the same release. Please either port your custom BSP changes to r39.2.1 before installing the full nvidia-jetpack package, or restore and maintain a complete r39.2.0 image if you must remain on that release.

Please refer to Software Packages and the Update Mechanism for details.

Thanks.

I encountered the same issue. After flashing JP7.2, executing sudo apt install nvidia-jetpack installs 7.2.1 components, and the l4t version is upgraded to 7.2.1 as well.

Previously, this had never happened with JP4, JP5, or JP6.

My current workaround is to pin (lock) the versions under /etc/apt/preferences.d/ as shown below. However, I’m not sure whether this might cause other issues:

Package: nvidia-jetpack nvidia-jetpack-runtime nvidia-jetpack-dev nvidia-cuda nvidia-cuda-dev nvidia-cudnn nvidia-cudnn-dev nvidia-tensorrt nvidia-tensorrt-dev nvidia-opencv nvidia-opencv-dev nvidia-vpi nvidia-vpi-dev nvidia-cupva nvidia-container nvidia-nsight-systems
Pin: version 7.2-b187
Pin-Priority: 1001

Package: nvidia-l4t-*
Pin: version 39.2.0*
Pin-Priority: 1001

Package: nvidia-l4t-*
Pin: version 6.8.12-tegra-39.2.0*
Pin-Priority: 1001

Package: cuda-cudart-dev-13-2
Pin: version 13.2.75-1
Pin-Priority: 1001

Package: cuda-driver-dev-13-2
Pin: version 13.2.75-1
Pin-Priority: 1001

Package: cuda-toolkit-13-2
Pin: version 13.2.1-1
Pin-Priority: 1001

Package: libnvvpi4
Pin: version 4.1.3
Pin-Priority: 1001

Package: libopencv
Pin: version 4.8.0-3-g6ef37b4
Pin-Priority: 1001

Package: libopencv-dev
Pin: version 4.8.0-3-g6ef37b4
Pin-Priority: 1001

Package: libopencv-python
Pin: version 4.8.0-3-g6ef37b4
Pin-Priority: 1001

Package: libopencv-samples
Pin: version 4.8.0-3-g6ef37b4
Pin-Priority: 1001

Package: opencv-licenses
Pin: version 4.8.0-3-g6ef37b4
Pin-Priority: 1001

Package: opencv-samples-data
Pin: version 4.8.0-3-g6ef37b4
Pin-Priority: 1001

Package: pva-sdk-2.9-l4t
Pin: version 2.9.1
Pin-Priority: 1001

Package: python3.12-vpi4
Pin: version 4.1.3
Pin-Priority: 1001

Package: vpi4-dev
Pin: version 4.1.3
Pin-Priority: 1001

Package: vpi4-python-src
Pin: version 4.1.3
Pin-Priority: 1001

Package: vpi4-samples
Pin: version 4.1.3
Pin-Priority: 1001

Package: cuda-libraries-dev-13-2
Pin: version 13.2.1-1
Pin-Priority: 1001

Package: cuda-visual-tools-13-2
Pin: version 13.2.1-1
Pin-Priority: 1001

Package: cuda-tools-13-2
Pin: version 13.2.1-1
Pin-Priority: 1001

Hi wichiu,
Still the same issue as before:

Installing nvidia-jetpack must never trigger a system-wide upgrade unless the user explicitly initiates one. Treating all JetPack APT mirrors as a single, undifferentiated pool—without proper version isolation or management—is simply not acceptable. This is not a matter of preference or internal policy; it is a basic prerequisite for trustworthy software distribution.

JP 7.2.0 and JP 7.2.1 are distinct releases. They must be cleanly separated and properly versioned in the Index. Users should not have to worry that installing a single metapackage will silently pull in an entirely new OS revision.

This is standard practice. This is what the community expects from a vendor shipping production embedded systems.

Thanks.

Hi,

Thanks for sharing. Pin-Priority: 1001 can force package downgrades, and this pin list has not been validated by NVIDIA. We do not recommend it as a supported workaround.
We are confirming the intended nvidia-jetpack behavior with the package team to make sure won’t let you encounter this issue in the future.

Thanks.

Hi @meishujie,

Thanks for clarifying. We understand your concern.

We are confirming whether nvidia-jetpack on r39.2.0 should install only matching JetPack packages or update the complete BSP to r39.2.1. We will update the thread after confirmation.

Thanks.

Hi wichiu,
Have you reached a conclusion regarding this issue internally?
Please update us on the current situation.
Thanks.

你好 @wichiu

我们也遇到这个问题了,请问解决了吗

Hi all,

After confirming this internally, we found that the current behavior of sudo apt nvidia-jetpack is indeed to update the entire BSP. We’ll try to provide a separate script that updates only the packages, and we’ll post it here once it’s available.

Thanks.

This is a little bit of extra effort but it works.
https://docs.nvidia.com/jetson/archives/r39.2.1/DeveloperGuide/SD/Kernel/KernelCustomization.html

To prevent apt upgrade from unintentionally overriding your custom kernel, you need to rename the kernel and initramfs images, and then update extlinux.conf. You can do this either on the host or on the target.

  1. Rename the kernel and initramfs images to any names you prefer:
    …

Hi @whitesscott
Thank you for sharing.I know the method you mentioned. However, extlinux.conf only guarantees that dtb and Image can be replaced back, but ko cannot.
If the driver has many patches, manually replacing each modified .ko file is impractical.
Thanks.

Hi @meishujie,

The script is attached: install-jetpack-keep-bsp.sh

It installs the JetPack components while keeping the BSP at the version already on your
device, so the kernel, device tree and out-of-tree modules are not replaced.

sudo ./install-jetpack-keep-bsp.sh

On r39.2.0 it installs JetPack 7.2 and does not allow any package to move to 7.2.1. Add
--dry-run first if you want to see the plan without changing anything.

It leaves an apt preferences file in place so later apt install / apt upgrade runs do
not move the BSP either. When you do want to move to a newer L4T release, remove it first:

sudo ./install-jetpack-keep-bsp.sh --undo

install-jetpack-keep-bsp.sh (20.6 KB)

Thanks.

Hi @wichiu
It seems to be working now, we will update this if there are any new developments.
Thank you so much.