Skip to main content

How to Build and Flash BSP Source for Jetson Thor

This wiki explains how to use the BSP source package to build and flash the NVIDIA Jetson AGX Thor Developer Kit from an Ubuntu host.

The workflow in this article uses the JetPack 7.1 BSP package provided below and covers:

  • Downloading and extracting the BSP package
  • Entering USB recovery mode on Thor
  • Running thor_build_flash.sh
  • Cleaning the workspace with thor_cleanup.sh
  • Optional post-flash package installation

Prerequisites

  • NVIDIA Jetson AGX Thor Developer Kit
  • Ubuntu host PC
  • USB Type-C data cable
  • Stable power supply for Thor
  • BSP package for Thor
info

Use the USB Type-C flashing port closest to the HDMI connector when connecting Thor to the host PC.

1. Download and Extract the BSP Package

Download the BSP package first:

JetPack VersionDownload Link
7.1Download

After downloading the package, extract it and enter the working directory:

cd /other_data
sudo tar xpf <downloaded_package>.tar.gz
cd thor-dev/linux_for_tegra
tip

Use sudo tar xpf when extracting the package so file ownership and permissions are preserved correctly.

2. Enter USB Recovery Mode on Thor

First connect the host PC to the USB Type-C flashing port near the HDMI connector:

The side buttons are shown below:

Button definitions in the image:

  • 11: Power button
  • 12: Force Recovery button
  • 13: Reset button
  • 14: White LED

To enter recovery mode:

  1. Power off Thor.
  2. Connect the USB Type-C cable between the host PC and the Thor flashing port.
  3. Press and hold the Force Recovery button (12).
  4. While holding the Force Recovery button (12), press the Power button (11) to power on the board.
  5. Release the button after the board enters recovery mode.

On the host PC, verify recovery mode with:

lsusb

Thor in USB recovery mode is typically enumerated as:

0955:7045

Reference image:

3. Build and Flash

Run the help command first:

cd /other_data/thor-dev/linux_for_tegra
./thor_build_flash.sh help

Default board settings are already configured for Thor J601:

  • CONFIG=recomputer-thor-carrier-j601
  • BOARDID=3834
  • BOARDSKU=0008
  • FAB=400
  • BOARDREV=G.5
  • CHIP_SKU=00:00:00:A0

Typical Flow

cd /other_data/thor-dev/linux_for_tegra

./thor_build_flash.sh prepare
./thor_build_flash.sh build
sudo -E ./thor_build_flash.sh flash

You can also run the full process in one shot:

./thor_build_flash.sh all
tip

For the first flash, the split prepare -> build -> flash flow is recommended because it makes failures easier to identify.

Stage Meaning

  • prepare

    • Download the rootfs tarball
    • Extract rootfs/
    • Run apply_binaries.sh
    • Download and extract the cross toolchain
  • build

    • Compile the kernel and out-of-tree modules
    • Copy the kernel image into rootfs/boot/
    • Run rootfs_magic.sh
    • Update initrd
    • Create the default user
  • flash

    • Call l4t_initrd_flash.sh
    • Require the target board to be in USB recovery mode

Important Notes

  • Run build as a normal user, not as root.
  • Run flash with sudo -E.
  • Thor USB recovery mode is typically visible on the host as 0955:7045.
  • The script auto-fixes a missing nvethernetrm symlink before build.

Common Overrides

Use environment variables when you need to override defaults:

CONFIG=recomputer-thor-carrier-j601 \
DOWNLOAD_BASE_URL=http://192.168.1.77/jetson \
DEFAULT_USER=seeed \
DEFAULT_PASSWORD=seeed \
DEFAULT_HOSTNAME=jetson-test \
./thor_build_flash.sh build

Useful variables:

  • DOWNLOAD_BASE_URL
  • ROOTFS_NAME
  • TOOLCHAIN_NAME
  • DEFAULT_USER
  • DEFAULT_PASSWORD
  • DEFAULT_HOSTNAME
  • FLASH_TARGET
  • RUN_ROOTFS_MAGIC

4. Cleanup

Show help:

./thor_cleanup.sh help
./thor_cleanup.sh incremental

This keeps source/kernel_out so the next compile remains fast, while removing:

  • output/
  • bootloader/system.img*
  • bootloader/esp.img*
  • bootloader/recovery.img*
  • bootloader/boot*.img
  • Flash temporary artifacts and logs

Cleanup Modes

  • incremental

    • Keep source/kernel_out
    • Best choice for normal development
  • rebuild

    • Also remove source/kernel_out
    • The next build becomes a full rebuild
  • distclean

    • Also remove rootfs/ and l4t-gcc/
    • Use only when archiving or fully resetting the environment

Dry Run

./thor_cleanup.sh incremental --dry-run

5. Optional Post-Flash Packages

After Thor boots successfully, you can optionally update package metadata and install the nvidia-jetpack meta-package:

sudo apt update
sudo apt install nvidia-jetpack

Troubleshooting

Boot shows an mmap error

If Thor does not boot normally and the screen shows an mmap error like the image below, re-enter USB recovery mode and reflash the board:

Run the following command from the flashing workspace:

cd /other_data/thor-dev/linux_for_tegra
sudo BOARDID=$BOARDID FAB=$FAB BOARDSKU=$BOARDSKU BOARDREV=$BOARDREV CHIP_SKU=$CHIP_SKU \
./l4t_initrd_flash.sh --erase-all jetson-agx-thor-devkit internal
note

If the mmap error persists after running the erase-and-reflash command above, collect the full boot log and contact support.

Resources

Tech Support & Product Discussion

Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs.

Loading Comments...