Manual Installation of NVIDIA JetPack Components Without SDK Manager

From RidgeRun Developer Wiki

Why Avoid SDK Manager?

While the NVIDIA SDK Manager ensures a reliable and consistent installation, it can download and install many unnecessary dependencies and force components that might not be needed for all use cases. By understanding the steps followed by the SDK Manager to install components, you can also create minimal backup images for production releases or integrate the steps as a Yocto recipe in your custom Yocto image.

  • SDK Manager Pros:
    • Valid and stable end result
    • Handles all dependencies and prerequisites
  • SDK Manager Cons:
    • Long installation times
    • Installation of unnecessary components

How Does SDK Manager Know What to Install?

When you select a JetPack version, SDK Manager downloads a JSON descriptor file which defines:

  • The JetPack release version and supported hardware
  • Components for host and target (Jetson board)
  • Download URLs for .deb/.tbz2/.tar files
  • Pre- and post-install commands
  • Dependency handling and supported OS versions

Example JSON path for JetPack 5.1.2:

~/Downloads/nvidia/sdkm_downloads/sdkml3_jetpack_512.json

Summary of JSON Sections

  • information: Metadata about the JetPack release (title, supported OS, hardware targets, etc.)
  • sections: Logical installation sections like:
    • `host` – tools for development on the host machine
    • `flash` – base OS and drivers for Jetson board
    • `postflash runtime` – runtime components (e.g., CUDA, cuDNN, TensorRT)
    • `postflash sdk` – SDK libraries and dev tools
  • groups: Collection of related components, like `CUDA Runtime`, `Computer Vision`, etc.
  • components: Details for each package, including:
    • Supported OS and architectures
    • Download links
    • File names and checksums
    • Pre/post install commands
    • Dependencies and install types (`deb`, `deb_repo`, `cmd`, `tgz`, `zip`)

How to Install Components Without SDK Manager

1. Download components for the desired JetPack version using SDK Manager with "Download only" option. (Login required, only once).

2. Find component data in the JSON file (`sdkml3_jetpack_512.json`) under the `components` section.

3. Copy files to the Jetson board:

  scp cuda-repo-l4t-11-4-local_11.4.19-1_arm64.deb user@jetson-ip:/tmp/

4. Install the component manually:

  • Run pre-install commands if defined.
  sudo dpkg -i cuda-repo-l4t-11-4-local_11.4.19-1_arm64.deb
  sudo cp /var/cuda-repo-l4t-11-4-local/cuda-13070C62-keyring.gpg /usr/share/keyrings/ 
  • Install following the commands defined in the JSON or just apt, for example:
  sudo apt install -y cuda-runtime-11-4 cuda-cudart-dev-11-4 cuda-driver-dev-11-4 cuda-toolkit-11-4
  sudo apt install -y gnupg libgomp1 libfreeimage-dev libopenmpi-dev openmpi-bin
  • Run any post-install steps from `remoteExecBash`, for example:
  grep -q 'export PATH=.*/usr/local/cuda-11.4/bin' ~/.bashrc || echo 'export PATH=/usr/local/cuda-11.4/bin:$PATH' >> ~/.bashrc
  grep -q 'export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64' ~/.bashrc || echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
  source ~/.bashrc

Tips

  • Many packages install from `.deb` files or `.deb_repo` archives.
  • `safe_apt_install` is SDK Manager's retry wrapper — you can substitute with standard `apt` manually.
  • The `targetIds` list shows which Jetson boards the component supports.
  • The `installType` field tells you how to install: