How do I automate installing Jetpack 5.1.2 on Jetson Linux r35.4.1 provided that I’m using flash.sh and a custom Kernel? Note that I prefer to flash the system with Jetpack, so if there are improvement suggestions to the following steps in my current requirements, I would be grateful.
I’ve created a Linux_for_Tegra directory using jetson_linux_r35.4.1_aarch64.tbz2
I’ve created a rootfs in the right place using tegra_linux_sample-root-filesystem_r35.4.1_aarch64.tbz2
I’ve followed the instructions to create my own Kernel Image, dtbs, and customized a package with kernel_supplements.tbz2
I’ve executed apply_binaries.sh and used --target-overlay to modify the /lib/modules in the rootfs
Our systems are flashed using the nvsdkmanager_flash.sh and they are successfully booted, with all of the above verified working.
There are several failures in this installation script, which I believe the source of the errors are related to the fact that Jetpack 5.1.2 is not installed.
sudo apt install nvidia-jetpack (error, nvidia-jetpack package not found)
In an effort to look for the correct repository that provides nvidia-jetpack, I flashed a system using SDK Manager and inspected its version of /etc/apt/sources.list.d/nvidia-l4t-apt-source.list
Which contains
deb https://repo.download.nvidia.com/jetson/common r35.4 main
deb https://repo.download.nvidia.com/jetson/t234 r35.4 main
But I don’t have the GPG signing key.
Err:2 https://repo.download.nvidia.com/jetson/t234 r35.4 InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 0D296FFB880FB004
Are you using the devkit or custom board for AGX Orin?
Have you also verified with JP5.1.3(R35.5.0)?
It seems you have to install SDK components in your case and the step should be similar as you shared.
Or you can just use SDK Manager to install SDK components only.
This is a devkit, today, but the goal in the future is to support a custom board. Can you please elaborate if that should change how I proceed?
Have you also verified with JP5.1.3(R35.5.0)?
No, I didn’t try using other versions of Jetpack, because the solution we’ve developed is for r35.4.1 – perhaps the minor version bump can be sustained without interruption, but the current Kernel compilation steps are using Jetson Linux r35.4.1 which despite the significant effort involved in creating it may turn out not to be a hard requirement. Is there something specific you think I should try so that I can get Jetpack 5.1.2 working? Is this the only version that works with r35.4.1? I don’t really know where to look to find the steps for Jetpack installation outside of using SDK Manager.
just use SDK Manager to install SDK components only.
I suppose I could plug in the Orin Devkit and ask the SDK Manager to install the Jetpack components alone. I was hoping to figure out the installation process outside of requiring the use of a Host machine running SDK Manager. I guess, once I get Jetpack installed, I can create an archive of the rootfs and use that to flash the devkit. The goal would be to flash our final custom product using a custom Kernel, dtbs, modules, and also have Jetpack Components already installed. Is there a way to customize the Kernel, dtbs, modules, etc. when using SDK Manager? I was under the impression that I need to use the flash.sh script (and family) to customize via kernel_supplements.tbz2 and the --target-overlay parameter of apply_binaries.sh.
It seems you have to install SDK components in your case
I don’t know if what I was saying before was clear about this, so let me explain. In the first case where I describe flashing an orin using my custom kernel and kernel_supplements.tbz2, I do not have the Jetpack SDK Components installed. As a workaround, I attempted to use the SDK Manager and install a different Orin, but this is not a path forward that will work for the requirement – I need to deploy a custom kernel, dtbs, modules, etc.
I have Jetpack 5.1.2 installed using the SDK Manager, but now I have a new concern about how to flash this rootfs onto additional Orins.
You mention devkit versus custom: Can you please elaborate if that should change how I proceed?
Is there a way to customize the Kernel, dtbs, modules, etc. when using SDK Manager?
Once I have an Orin flashed with my customizations, and it has Jetpack 5.1.2, what’s the best way to go about creating a rootfs that I can use to flash additional Orins so that my manufacturing process is as simple as possible?
Thanks for satisfying some of these extra concerns that were raised. I’d like to switch focus to the original question that is in the title of this thread, described in my original post.
I have attempted to find the instructions to install Jetpack 5.1.2, but the instructions included…
Have you also verified with JP5.1.3(R35.5.0)?
No, I didn’t try using other versions of Jetpack, because the solution we’ve developed is for r35.4.1
For installing the SDK Component, it should be the similar steps through sudo apt install nvidia-jetpack .
All of my attempts to configure apt on the Orin to install nvidia-jetpack have failed. I would still like to know how to get this to work. Jetpack 5.1.2 may be a hard requirement, but you’re asking me to attempt to use Jetpack 5.1.3? Are there further instructions? I have already tried the simplest thing that was documented to work (linked in my original post) but that doesn’t work because nvidia-jetpack is not found.
This returns an error that nvidia-jetpack is not found. Is there a way to add the repository and GPG key? I get an error “NO_PUBKEY” (see original post).
As a requirement of flashing your own kernel, we’ve used the sample root filesystem. An apt sources.list config file is not present when using the sample root filesystem.
My steps to recreate my issue are:
Expand the rootfs
tar xf tegra_linux_sample-root-filesystem_r35.4.1_aarch64.tbz2 -C rootfs
flash the orin; boot the orin
run apt update; apt dist-upgrade; reboot; apt install nvidia-jetpack
Error: nvidia-jetpack is missing. The steps above are not correct.
I had attempted to workaround the issue by copying a different machine’s apt source list; this is not enough to correct the issue, because I need to use the GPG key to authorize the repo (as mentioned in the above post).
# 1. add the sources list repos
admin@orin2:~$ sudo su
[sudo] password for admin:
root@orin2:/home/admin# cat >/etc/apt/sources.list.d/nvidia-l4t-apt-source.list <<EOF
> deb https://repo.download.nvidia.com/jetson/common r35.4 main
> deb https://repo.download.nvidia.com/jetson/t234 r35.4 main
> EOF
root@orin2:/home/admin# exit
admin@orin2:~$ sudo apt update
...
Err:1 https://repo.download.nvidia.com/jetson/common r35.4 InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 0D296FFB880FB004
Err:2 https://repo.download.nvidia.com/jetson/t234 r35.4 InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 0D296FFB880FB004
...
W: GPG error: https://repo.download.nvidia.com/jetson/common r35.4 InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 0D296FFB880FB004
E: The repository 'https://repo.download.nvidia.com/jetson/common r35.4 InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
# 2. fix the NO_PUBKEY error
admin@orin2:~$ sudo apt-key adv --fetch-key https://repo.download.nvidia.com/jetson/jetson-ota-public.asc
Executing: /tmp/apt-key-gpghome.zyqCRMIsov/gpg.1.sh --fetch-key https://repo.download.nvidia.com/jetson/jetson-ota-public.asc
gpg: requesting key from 'https://repo.download.nvidia.com/jetson/jetson-ota-public.asc'
gpg: key E6543461A9996195: public key "NVIDIA Corporation <linux-tegra-bugs@nvidia.com>" imported
gpg: Total number processed: 1
gpg: imported: 1
# 3. update and install nvidia-jetpack
admin@orin2:~$ sudo apt update
admin@orin2:~$ sudo apt install nvidia-jetpack