如何为 Jetson Thor 构建和刷写 BSP 源码

本 Wiki 解释了如何使用 BSP 源码包在 Ubuntu 主机上为 NVIDIA Jetson AGX Thor 开发者套件 进行构建和刷写。
本文中的工作流程使用下面提供的 JetPack 7.1 BSP 包,并涵盖:
- 下载并解压 BSP 包
- 在 Thor 上进入 USB 恢复模式
- 运行
thor_build_flash.sh - 使用
thor_cleanup.sh清理工作空间 - 可选的刷写后软件包安装
前提条件
- NVIDIA Jetson AGX Thor 开发者套件
- Ubuntu 主机 PC
- USB Type-C 数据线
- Thor 的稳定电源供应
- Thor 的 BSP 包
将 Thor 连接到主机 PC 时,请使用 最靠近 HDMI 连接器的 USB Type-C 刷写端口。
1. 下载并解压 BSP 包
首先下载 BSP 包:
| JetPack 版本 | 下载链接 |
|---|---|
| 7.1 | 下载 |
下载包后,解压并进入工作目录:
cd /other_data
sudo tar xpf <downloaded_package>.tar.gz
cd thor-dev/linux_for_tegra
解压包时使用 sudo tar xpf,以便正确保留文件所有权和权限。
2. 在 Thor 上进入 USB 恢复模式
首先将主机 PC 连接到 靠近 HDMI 连接器的 USB Type-C 刷写端口:

侧边按钮如下图所示:

图中按钮定义:
11: 电源按钮12: 强制恢复按钮13: 复位按钮14: 白色 LED
要进入恢复模式:
- 关闭 Thor 电源。
- 使用 USB Type-C 线缆连接主机 PC 和 Thor 的刷写端口。
- 按住 强制恢复按钮 (
12)。 - 在按住 强制恢复按钮 (
12) 的同时,按下 电源按钮 (11) 为板子上电。 - 板子进入恢复模式后松开按钮。
在主机 PC 上,使用以下命令验证恢复模式:
lsusb
处于 USB 恢复模式的 Thor 通常被枚举为:
0955:7045
参考图片:

3. 构建与刷写
首先运行帮助命令:
cd /other_data/thor-dev/linux_for_tegra
./thor_build_flash.sh help
默认的板级设置已为 Thor J601 配置好:
CONFIG=recomputer-thor-carrier-j601BOARDID=3834BOARDSKU=0008FAB=400BOARDREV=G.5CHIP_SKU=00:00:00:A0
典型流程
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
你也可以一次性运行完整流程:
./thor_build_flash.sh all
对于首次刷写,推荐使用分步的 prepare -> build -> flash 流程,因为这使得故障更容易定位。
阶段含义
-
prepare- 下载 rootfs 压缩包
- 解压
rootfs/ - 运行
apply_binaries.sh - 下载并解压交叉工具链
-
build- 编译内核和树外模块
- 将内核镜像复制到
rootfs/boot/ - 运行
rootfs_magic.sh - 更新 initrd
- 创建默认用户
-
flash- 调用
l4t_initrd_flash.sh - 要求目标板处于 USB 恢复模式
- 调用
重要注意事项
- 以普通用户身份运行
build,而不是root。 - 使用
sudo -E运行flash。 - Thor USB 恢复模式在主机上通常显示为
0955:7045。 - 脚本会在构建前自动修复缺失的
nvethernetrm符号链接。
常用覆盖项
当需要覆盖默认值时,使用环境变量:
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
有用的变量:
DOWNLOAD_BASE_URLROOTFS_NAMETOOLCHAIN_NAMEDEFAULT_USERDEFAULT_PASSWORDDEFAULT_HOSTNAMEFLASH_TARGETRUN_ROOTFS_MAGIC
4. 清理
显示帮助:
./thor_cleanup.sh help
推荐的日常清理
./thor_cleanup.sh incremental
这会保留 source/kernel_out 以便下次编译保持快速,同时删除:
output/bootloader/system.img*bootloader/esp.img*bootloader/recovery.img*bootloader/boot*.img- 刷写临时文件和日志
清理模式
-
incremental- 保留
source/kernel_out - 正常开发的最佳选择
- 保留
-
rebuild- 同时删除
source/kernel_out - 下次构建将进行完整重建
- 同时删除
-
distclean- 同时删除
rootfs/和l4t-gcc/ - 仅在归档或完全重置环境时使用
- 同时删除
试运行
./thor_cleanup.sh incremental --dry-run
5. 可选的刷写后软件包
在 Thor 成功启动后,你可以选择性地更新软件包元数据并安装 nvidia-jetpack 元软件包:
sudo apt update
sudo apt install nvidia-jetpack
故障排除
启动显示 mmap 错误
如果 Thor 无法正常启动,并且屏幕显示如下图的 mmap 错误,请重新进入 USB 恢复模式并重新刷写板子:

从刷写工作空间运行以下命令:
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
如果运行上述擦除并重新刷写命令后 mmap 错误仍然存在,请收集完整的启动日志并联系技术支持。
资源
技术支持与产品讨论
感谢您选择我们的产品!我们在此为您提供不同的支持,以确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。