Understanding NVIDIA Jetpack: Design Framework, Architecture, and Flashing Process

This article explains NVIDIA Jetpack’s three‑layer architecture, its relationship with the SDK Manager installer, step‑by‑step flashing procedures for Jetson devices, common failure points such as the 35.29% stall, and practical troubleshooting and hybrid manual‑automatic solutions.

CodeTrend
CodeTrend
CodeTrend
Understanding NVIDIA Jetpack: Design Framework, Architecture, and Flashing Process

NVIDIA JetPack is the SDK for Jetson embedded modules, providing a unified hardware‑software environment for AI development.

1. Design Framework and Principles

The SDK follows a three‑layer architecture.

Bottom layer – Jetson Linux (L4T)

Components : Linux kernel, bootloader, NVIDIA drivers (e.g., GPU driver), Ubuntu user‑space, and toolchain.

Principle : NVIDIA heavily customises the kernel to support its CUDA core architecture and low‑power management.

Middle layer – CUDA‑X acceleration libraries (AI stack)

Components : CUDA, cuDNN, TensorRT, OpenCV, VPI.

Principle : Calls GPU, DLA (deep‑learning accelerator) and PVA (programming visual accelerator) to offload compute‑intensive tasks from the CPU, delivering up to hundred‑fold performance gains.

Top layer – Industry application frameworks

Components : DeepStream (video analytics), Isaac (robotics), Holoscan (medical sensor processing).

Principle : Developers build applications on these frameworks without writing low‑level CUDA code.

2. Relationship Between JetPack and SDK Manager

JetPack (content) : a collection of .deb packages, binaries and system images.

SDK Manager (tool) : a graphical or command‑line installer that runs on an Ubuntu host.

Downloader : contacts NVIDIA servers to fetch the matching JetPack version.

Flashing assistant : writes the Jetson Linux system to the board via the USB‑C flash port.

Cross‑platform installer : also installs cross‑compilers and CUDA libraries on the host, enabling development on the PC and deployment to the board.

3. Detailed Flashing Procedure

Environment preparation

Host PC : Ubuntu 18.04, 20.04 or 22.04 (selected according to the JetPack version).

Connection : USB‑C or Micro‑USB cable attached to the Jetson’s dedicated flash port.

SDK Manager execution flow

Step 1: Enter Force Recovery Mode
    - Hold the Recovery button (or short the Recovery pin) then press Reset or power on.
    - Verify with "lsusb"; seeing "NVIDIA Corp." indicates success.

Step 2: SDK Manager configuration
    - Log in with a NVIDIA Developer account.
    - Select device model (e.g., Orin Nano, AGX Xavier) and JetPack version.
    - Choose components:
        * Jetson OS – flash the Linux base system.
        * Jetson SDK Components – install CUDA, cuDNN, TensorRT, etc.

Step 3: Flashing
    - SDK Manager downloads and extracts the image, then runs flash.sh via USB to write eMMC/SD/NVMe.
    - The system reboots; complete Ubuntu first‑run setup (username, password).

Step 4: Install SDK components
    - Ensure network connectivity between Jetson and host (virtual 192.168.55.1 network or Ethernet).
    - SDK Manager SSHes into Jetson and installs the remaining AI packages.

4. Two Flashing Stages

OS Flash (0 %‑35 %):
    Principle – Burn the L4T image to eMMC or NVMe via the dedicated flash USB‑C port.
    Connection – Must use the flash port on the Jetson board.

SDK Components Setup (35 %‑100 %):
    Principle – After Ubuntu boots, the host pushes .deb packages (CUDA, TensorRT, …) over SSH.
    Connection – USB virtual network (192.168.55.1) or physical Ethernet (eno1).

When progress stalls at 35.29 %, the OS image has finished and the board is rebooting; the next step requires SSH access, which may fail if the board has not completed initialization or the network is unavailable.

5. Common Issues and Troubleshooting

1. Hardware detection failure (lsusb empty)
   - Verify the cable is plugged into the dedicated flash Type‑C port.
   - Use a USB 3.0‑capable data cable (charging‑only cables will not work).
   - In virtual machines, manually redirect the USB device to the VM.

2. Progress stuck at 35.29 %
   - OS flash is complete; SSH cannot connect.
   - Use a serial console (e.g., /dev/ttyUSB0 or /dev/ttyACM0) with:
        sudo screen /dev/ttyUSB0 115200
   - Complete Ubuntu login, then run "ip addr" to find the board’s IP.

3. SDK installation failed
   - Typical causes: apt lock, network blockage, IPv6 handshake failure.
   - Core fix commands:
        sudo rm -f /var/lib/dpkg/lock-frontend
        sudo dpkg --configure -a
        sudo apt-get install -f -y
        sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1

6. Manual + Automatic Hybrid Solution

Physical Ethernet : connect a cable and verify connectivity with ping www.baidu.com.

Manual core component install via serial console:

sudo apt update
sudo apt install -y cuda-runtime-12-6

(Bypasses the SDK Manager UI and exposes underlying apt issues.)

Resume SDK Manager :

Re‑open SDK Manager and check “Skip Flash”.

Select Ethernet, enter the board’s IP (e.g., 192.168.1.10).

Check remaining components and click Retry.

CUDAFlashingEmbedded AIJetsonNVIDIA JetpackSDK Manager
CodeTrend
Written by

CodeTrend

Capture the daily pulse of global open-source tech. Real-time tracking of GitHub Trending and curated selections of the hottest projects worldwide, including C++, Python and other verticals. Avoid information overload and keep tech trends within reach.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.