关注

全网首发! Nvidia Jetson Thor 128GB DK 刷机与测评(一)刷机与 OpenCV-CUDA、pytorch CUDA13.0+ 使用

Nvidia Jetson Thor DK 于 2025年8月25日正式发售,我们实验室获得了首批套件,经过几天的折腾,这篇博客将总结如何刷机以及刷机过程中的注意事项。

【Note】:由于评测部分内容太多,我们将这篇博客拆分为多篇避免单独的博客失去重点,你可以通过下面的链接进行跳转:

在一切的开始之前你需要阅读以下几点注意事项

  1. 和 Orin 不同的是,Thor 自带了一个 1TB SSD,不需要额外购买一块固态硬盘,除非你想拆机换块大的;
  2. 由于 Thor 默认搭配的是 CUDA 13.0,这套硬件和架构目前还存在一些问题,如果你想要立刻部署到生产环境上,那么还是建议使用 Orin
  3. 在烧录镜像时为了提供更好的观感,博客中会尽可能使用官方手册提供的截图,只有在与手册中存在差异的时候才会用手机拍摄。
  4. 由于 Thor 硬件刚发布,Nvidia 可能会在后面的刷机流程中做一些更新,截止这篇博客完稿(2025年09月05日)我们发现了2处与官方教程中存在出入的地方,你需要注意 这篇博客的时效性
  5. 官方推荐的刷机方法目前只支持 Ubuntu 24.04 与 CUDA 13.0+,首先确认自己的算法能够在这个版本上运行;
  6. 官方刷机方式有三种:ISO+USB、SDK Manager、Flash Script,这里演示第一种也是官方首推的方案,后面会新开一篇补充用 SDK Manager 的刷机流程,但不建议用第三种;三种刷机方法 的差异如下:
🚀 Jetson ISO🛠️ SDK Manager📜 Flash script
📋 Short SummaryUSB installation disk to flash BSP (plus alpha)GUI software to flash BSP and install JetPack packagesUbuntu script to flash BSP
🖥️ Ubuntu Host PC❌ Not required✅ Required✅ Required
⏱️ Flash time⚡ Less than 15 min⌛ About 30 min⌛ About 30 min
🔧 Install BSP?✅ Yes✅ Yes✅ Yes
🐳 Install Docker?✅ Yes💡 Yes, when chosen in 2nd stage❌ No
📦 Install JetPack components❌ No💡 Yes, when chosen in 2nd stage❌ No
👥 Who is this for?🌟 Everybody including beginner🧑‍💻 Who has an Ubuntu PC🛠️ Product Developers

我们本次刷机中使用到的将部分资源放在了网盘中:

通过网盘分享的文件:Jetson Thor
链接: https://pan.baidu.com/s/1YdujHck2Fi6rAOzGfHoG4w?pwd=rrjj 提取码: rrjj 
--来自百度网盘超级会员v5的分享

核心流程参考了官方刷机手册:

在这里插入图片描述


Step1. 设备开箱与准备

1.1 设备开箱

在拆开设备后应该能看到以下几个组件,除了插头线缆只会用到一条以外,其他的都会在刷机过程中使用;

  1. Jetson Thor DK 主机;
  2. DC 适配器 + 3 种插头线缆;
  3. 1 条 USB-Type C 数据线;

【注意】:由于 Thor 最高支持 240W 的运行功率,因此 Orin 的原装充电器是不能给 Thor 使用的

在这里插入图片描述

1.2 准备引导U盘

除此之外你还需要准备以下软硬件用来辅助刷机:

  1. 一台剩余硬盘容量 大于25GB Windows 笔记本(官网上说Mac与Linux都可以,这里以Windows为例);
  2. 一块容量 大于 16GB 的 U盘;
  3. 一台显示器与 DP 或 HDMI 连接线;
  4. 一套 USB 键盘鼠标;
  5. 不小于 240W 供电功率的环境;

在 Windows 电脑上下载 Jetson ISO 镜像和 Balena Etcher 软件,你可以通过我们的网盘链接中下载也可以直接访问官方提供的链接:

在这里插入图片描述

【注意】:这个过程会格式化 U 盘,务必做好备份

在 ISO 镜像和 Balena Etcher 都下载好后直接打开软件按照下面的步骤操作:

  1. 点击 “从文件烧录 / Flash from file” ,选择 ISO 镜像文件;
  2. 点击 “选择目标磁盘 / Select target”,选择 U 盘;
  3. 点击 “现在烧录 / Flash !” 开始烧录,等待烧录完成;
Step.1Step.2Step.3
在这里插入图片描述在这里插入图片描述在这里插入图片描述

烧录完成后即可将 U 盘从 Windows 电脑上拔下;


Step2. 烧录镜像

将 HDMI 线、键盘鼠标、U盘、Type-C 电源线链接到 Thor 上,其中 Type-C 电源可以选择两个 C 口中的任意一个不一定要使用说明书上的 DC 供电口

在这里插入图片描述
通常情况下一插上电源就会自动开机,在开机的时候会有一个选择时间,但只有 1s,如果你错过了这个时间窗口并进入了下面这个场景也不用慌,输入 exit 即可:

在这里插入图片描述

然后你会进入下面这个画面,使用键盘进入 Boot Manager

在这里插入图片描述

确保你的 USB 设备是在列表中的第一个,如果你的 U 盘没有显示则先按 Esc 退到上一级目录,然后重新插拔 U 盘再进入 Boot Manager 即可:

在这里插入图片描述

然后在键盘上敲击 Esc 推出这个界面后选中 Continue 回车:

在这里插入图片描述

在短暂的黑屏后会看到这个界面,选择 Jetson Thor options 并回车:

在这里插入图片描述

这里和官网上给的画面存在一些出入,需要选择 Flash Jetson AGX Thor Developer Kit on NVMe 0.2.0-r38.2 这个选项,不要选择 USB 那个选项,此处的含义是将镜像刷到哪个位置,因此不能刷到 U 盘上;

在这里插入图片描述

然后就是大约等待 15 分钟左右:
在这里插入图片描述

这一阶段完成会自动重启并进入如下界面,等待 Update Progress 进度条走完即可:

在这里插入图片描述

此处与官网也有些出入,如果你的 U盘还没有拔下来,那么自动重启后会出现下面的画面,用键盘选择 Boot from next volume

在这里插入图片描述

然后就是进入到标准的 Ubuntu 安装界面了:
在这里插入图片描述

连接好 Wifi、设置用户名密码、选择好时区后就可以正常使用 Ubuntu ,此时你需要 将 U盘拔下来,避免重启后又从 U盘引导

在这里插入图片描述


Step3. 安装 CUDA & Jetpack

这部分内容参考了官方文档,并选择以 Native 的方式安装,在官方文档中提供了基于 Docker 的安装,感兴趣的可以自行探索:

  • Jetson AGX Thor Developer Kit - User Guide: CUDA Setup

在 Native 的模式下使用 Option 2: JetPack APT repo 的方式安装可以一口气将 CUDA 和 Jetpack 都安装上;

因为 Ubuntu 24.04 不自带浏览器,所以最初的一些安装与下载需要一个辅助电脑,我这里直接用网线和我的 Mac 相连并将两台电脑都配置到 192.168.1.X 这个网段下(Thor 地址为 192.168.1.120,笔记本地址为 192.168.1.100),然后用终端进行访问,我的 Mac 已经安装好了 Clash 并设置了 7890端口,至于如何科学上网请自行解决;

在这里插入图片描述

在终端上执行下面命令,这个过程大概会占用 15GB+ 的硬盘资源,因此如果没有科学上网会非常漫长:

【Note】:不要使用 x86 架构安装 CUDA 的方法,会失败

$ export http_proxy="http://192.168.1.100:7890"
$ export https_proxy="http://192.168.1.100:7890"

$ sudo apt update
$ sudo apt install nvidia-jetpack

这一条命令将安装下面这些组件,包含开发过程中所需的全部资源:

在这里插入图片描述

安装成功后使用下面的命令查看 cuda 安装情况,这里安装的是 V13.0.48 版本:

$ nvcc -V

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Wed_Jul_16_07:31:19_PM_PDT_2025
Cuda compilation tools, release 13.0, V13.0.48
Build cuda_13.0.r13.0/compiler.36260728_0

Step4. 部署常用环境

这部分内容包括部署与安装以下库:

  • jetson-stats & jtop;
  • OpenCV with CUDA:
  • TensorRT & DeepStream;
  • pytorch with CUDA;
  • ROS rolling;

4.1 更换国内源与密钥

由于清华源中 Ubuntu 24.04 基本是 x86 和 amd64 架构的包,因此在更换源的时候需要使用下面的内容替换 /etc/apt/sources.list 文件,建议在操作之前 备份这个文件

deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal main restricted universe multiverse
deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal-updates main restricted universe multiverse
deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal-backports main restricted universe multiverse
deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal-security main restricted universe multiverse

然后执行源更新命令:

$ sudo apt-get update

如果你在更新过程中遇到了如下有关 GPG 密钥的报错:
在这里插入图片描述
可以执行下面的命令,但要注意 命令末尾那个公钥需要和你的保持一致

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 40976EAF437D05B5

4.2 jetson_release & jtop

使用下面的命令安装:

$ sudo apt update
$ sudo apt install python3
$ sudo apt install python3-pip

$ sudo pip3 install -U pip
$ sudo pip3 install jetson-stats

如果你遇到了如下报错:

thor@thor:/usr/local/cuda/lib64$ sudo pip3 install jetson-stats
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.
    
    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.
    
    See /usr/share/doc/python3.12/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

那么使用下面的命令重制一下系统 python 的 EXTERNALLY-MANAGED 后重新执行

$ sudo mv /usr/lib/python3.12/EXTERNALLY-MANAGED /usr/lib/python3.12/EXTERNALLY-MANAGED-back

安装完成后激活 jtop 服务并重启 Thor,建议在重启之前可以先将左上角的功率模式调整为 MAXN

$ sudo systemctl restart jtop.service
$ sudo reboot now

然后用下面的命令验证安装是否成功:

$ jtop

在这里插入图片描述

这个工具包会自带 jetson_release,用下面的命令进行验证:

$ jetson_release

在这里插入图片描述
Nvidia 在 CUDA13 中添加的一个新特性就是 统一了不同平台迁移,因此之前在 x86 上使用的 nvidia-smi 也就可以使用了:

$ nvidia-smi 

在这里插入图片描述


4.3 OpenCV with CUDA

通过 jetson_release 命令可以看到 Jetpack 中自带的 OpenCV 版本是 4.8.0

在这里插入图片描述

【注意】:以下是有关 CUDA 与 OpenCV 的编译注意事项

  1. 编译 4.8.04.12.0 这两个 CUDA 版本都失败了,在 Github 的 Issue 上说这两个版本对 CUDA13.0+ 存在Bug;
  2. 成功编译的是 4.13.0-dev 版本,但在目前(2025年09月05日)这个 tag 还没有被官方打出来,你只能在源文件 modules/core/include/opencv2/core/version.hpp 中看到这个版本号;

在这里插入图片描述

4.3.1 安装依赖库

$ sudo apt install build-essential checkinstall cmake pkg-config yasm git gfortran wget curl
$ sudo apt install libjpeg-dev libpng-dev libtiff-dev
$ sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev
$ sudo apt install libgtk2.0-dev libgtk-3-dev libatlas-base-dev gfortran python3-dev python3-numpy
$ sudo apt-get install libtbbmalloc2 libtbb-dev libdc1394-22-dev

4.3.2 拉取源码并切换分支

拉取源码,源码可以拉取到任意位置,此处以 Downloads 为例。为了以后 OpenCV 更新后能标识出正式版,建议将这个文件夹以 dev 方式命名:

$ cd Downloads
$ git clone https://github.com/opencv/opencv.git opencv-dev
$ git clone https://github.com/opencv/opencv_contrib.git opencv_contrib-dev

此时你的文件结构如下:

$ ll
total 16K
drwxr-xr-x  4 thor thor 4.0K Sep  5 13:06 ./
drwxr-x--- 18 thor thor 4.0K Sep  4 18:01 ../
drwxrwxr-x 13 thor thor 4.0K Sep  3 19:50 opencv-dev/
drwxrwxr-x  7 thor thor 4.0K Sep  3 19:49 opencv_contrib-dev/

进入到 opencv-dev 目录下将 opencv_contrib-dev 移动进来并进行编译:

$ mv opencv_contrib-dev/ opencv-dev/
$ cd opencv-dev/
$ mkdir build && cd build

使用下面的命令时要注意 DCUDA_ARCH_BINDCUDA_ARCH_PTX 这两个值,截止日前(2025年09月05日) Nvidia 还没有在官网上发布 Thor DK 对应的 Compute Capability,但 Thor 使用的是 T5000T4000 模组,因此这里的 DCUDA_ARCH_BIN 需要设置为 11.0

在这里插入图片描述

配置 cmake :

$ cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DOPENCV_ENABLE_NONFREE=1 \
-DBUILD_opencv_python2=1 \
-DBUILD_opencv_python3=1 \
-DWITH_FFMPEG=1 \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \
-DCUDA_ARCH_BIN=11.0 \
-DCUDA_ARCH_PTX=11.0 \
-DWITH_CUDA=1 \
-DWITH_CUDNN=ON \
-DOPENCV_DNN_CUDA=ON \
-DENABLE_FAST_MATH=1 \
-DCUDA_FAST_MATH=1 \
-DWITH_CUBLAS=1 \
-DOPENCV_GENERATE_PKGCONFIG=1 \
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
-DCMAKE_CXX_STANDARD=17 \
-DCUDA_NVCC_FLAGS="--std=c++17" \
-DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-dev/modules \
..

执行编译之前建议先查看一下自己可用的线程资源,并根据实际情况合理设置多线程编译,如果有代理的话最好设置一下代理,因为在编译过程中需要下载很多第三方库与模型:

$ export http_proxy="http://192.168.1.100:7890"
$ export https_proxy="http://192.168.1.100:7890"
$ echo $(nporc)		# 14

建议在编译时使用 可用线程数-1,避免造成宕机:

$ make -j13
$ sudo make install

在这里插入图片描述
然后用 jetson_release 命令验证安装结果:

$ jetson_release

在这里插入图片描述


4.4 安装 ROS rolling

Ubuntu 20.04 及其以上版本仅支持 ROS 2,这里推荐之前使用鱼香ros的一键安装脚本即可:

$ wget http://fishros.com/install -O fishros && . fishros

在这里插入图片描述


4.5 安装miniconda

Minicona 也是用官网的方法进行一键安装:

$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh

4.6 安装 Ollama

【注意】:截止 2025年09月05日,如果通过 Ollama 官网提供的安装方法,在拉取的模型运行后会报错,报错内容如下:

Error: model runner has unexpectedly stopped, this may be due to resource limitations or an internal error, check ollama server logs for details

在这里插入图片描述

这里使用的安装方法是 Nvidia 社区提供的源码编译,参考文如下:

首先需要修改 ~/.bashrc 文件,并将 cuda 库写入到环境变量中:

$ sudo vim ~/.bashrc

# 将下面两行添加至末尾
export PATH=/usr/local/cuda-13.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-13.0/lib64:$LD_LIBRARY_PATH

拉取并编译 go 指定版本并移动到 /usr/local 目录下:

$ cd Downloads
$ wget https://go.dev/dl/go1.24.2.linux-arm64.tar.gz
$ tar -zxvf go1.24.2.linux-arm64.tar.gz
$ sudo mv go /usr/local/

再打开 ~/,bashrc 文件添加 go 的运行库:

$ vim ~/.bashrc

# 添加下面两行至末尾
$ export PATH=$PATH:/usr/local/go/bin

拉取 ollama 源码并编译:

$ cd Downloads
$ git clone https://github.com/ollama/ollama
$ cd ollama && cmake -DCMAKE_CUDA_ARCHITECTURES=110 -B build && cmake --build build

然后运行 ollama,但要注意如果你已经配置了 http_proxyhttps_proxy,那么运行后就需要先取消代理:

$ export http_proxy=""
$ export https_proxy=""

$ cd Downloads/ollama
$ go run . serve

在这里插入图片描述

然后 新开一个终端 随便拉取一个小模型测试一下,可以看见运行速度还是非常快的:

$ ollama run deepseek-r1:1.5b
>>> tell me your name

在这里插入图片描述


Step5. pytorch 使用

pytorch 是深度学习和端侧部署不可或缺的工具,由于不同的模型可能依赖不同的 python 版本,但 pytorch 的官网目前没有发布 CUDA 13 的 pip 安装版本,因此如果现在想要使用的话这里提供了两个方案。

[推荐] Docker 运行

使用 Docker 运行 pytorch 是最简单且官方验证过的,这部分内容参考了下面这篇博客:

如果你对 pytorch 版本有严格要求,那么可以前往 Nvidia NCG 搜索符合你镜像:

下面这个命令将拉取一个 21.9 GB 的镜像,包含了 Ubuntu 24.04.2 LTS、python 3.12.3、torch 2.8.0、CUDA 13.0.48

  • 直接拉取命令:
$ docker run -it \
	--net=host \
	--runtime nvidia \
	--privileged \
	--ipc=host \
	--ulimit memlock=-1 \
	--ulimit stack=67108864 -v $(pwd):/workspace nvcr.io/nvidia/pytorch:25.08-py3 bash

如果你无法下载镜像的话也可以直接从网盘中下载一个然后加载:

  • 网盘下载 pytorch.jar 文件后使用下面命令加载:
$ docker load < grafana.jar 

[测试中] 手动编译

手动编译 pytorch 需要拉取源码,在部分版本上可能会出现依赖问题,这里以编译 python 3.12.0、torch 2.7.0、torchvision 0.22.0 、torchaudio 2.7.0 为例:

编译 torch

$ git clone --branch v2.7.0 --recursive https://github.com/pytorch/pytorch

创建一个基础 python 环境:

(base) $ conda create -n torch_build python=3.12.0
(base )$ conda activate torch_build

(torch_build) $ pip install pyyaml typing_extensions

安装依赖库:

(torch_build) $ sudo apt-get install -y libopenmpi-dev libomp-dev libopenblas-dev 
(torch_build) $ sudo apt install libjpeg-dev libpng-dev zlib1g-dev
(torch_build) $ sudo apt install libavcodec-dev libavformat-dev libswscale-dev

创建一个 torch_env.bash 文件将下面的环境变量写进去:

export USE_CUDA=1
export USE_CUDNN=1
export USE_NCCL=0                     # 如果你是Orin则为0,如果有多卡则为1
export MAX_JOBS=14                    # 执行编译的线程数
export TORCH_CUDA_ARCH_LIST="11.0"    # 当前平台架构,Thor 是11.0
export USE_DISTRIBUTED=1
export USE_QNNPACK=0
export USE_PYTORCH_QNNPACK=0
export PYTORCH_BUILD_VERSION=2.7.0    # 你当前拉下来的torch版本
export PYTORCH_BUILD_NUMBER=1
export CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-13
export CUDA_BIN_PATH=/usr/local/cuda-13/bin
export CMAKE_CUDA_COMPILER=/usr/local/cuda-13
export CUDNN_LIB_DIR=/usr/lib/aarch64-linux-gnu
export CUDNN_INCLUDE_DIR=/usr/include
export USE_OPENCV=ON

编译:

(torch_build) $ cd pytorch
(torch_build) $ source torch_env.bash
(torch_build) $ python3 setup.py bdist_wheel --cmake

【注意】:编译 torchvision 之前需要先安装已经编译好的 torch;

(torch_build) $ pip install dist/torch-2.7.0-cp312-cp312-linux_aarch64.wh

编译 torchvision

(torch_build) $ git clone --branch v0.22.0 --recursive https://github.com/pytorch/vision.git

然后新建一个 vision_env.bash 脚本输入下面的内容:

export USE_CUDA=1
export USE_CUDNN=1
export BUILD_VERSION=0.22.0
export TORCH_CUDA_ARCH_LIST="11.0"
export FORCE_CUDA=1
export FORCE_MPS=1
export USE_MKLDNN=1
export CUDA_HOME=/usr/local/cuda-13

编译 torchvision:

(torch_build) $ cd vision
(torch_build) $ source vision_env.bash
(torch_build) $ python3 setup.py bdist_wheel

安装两个编译好的轮子:

(torch_build) $ pip install 

验证是否正确编译:

import torch
import torchvision

torch.__version__
torchvision.__version__

torch.cuda.is_available()
torch.cuda.get_device_name(0)

device = torch.device("cuda")
x = torch.rand(10000, 10000)
print(x.sum().item())

转载自CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/nenchoumi3119/article/details/151148194

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--