2. 开发环境搭建:JetPack SDK安装、SDK Manager使用、系统烧录与初始配置
说实话,很多朋友拿到Jetson开发板,第一件事就是急着跑模型。我劝你先别急。环境没搭好,后面全是坑。我自己就吃过这个亏——第一次装JetPack时选了全量安装,结果硬盘爆了,系统直接卡死。嗯,从那以后,我每次都会先规划好存储空间。
这一章,咱们就把开发环境从头捋一遍。你跟着我的节奏走,基本不会出问题。
2.1 JetPack SDK到底是什么?
JetPack SDK,说白了就是NVIDIA给Jetson系列准备的一整套开发工具包。它不光是个系统镜像,里面还包含了CUDA、cuDNN、TensorRT、OpenCV这些核心库。你想想看,要是每个库都自己去编译,光CUDA就能折腾你一天。
我个人习惯把JetPack理解成「Jetson的瑞士军刀」。它帮你把底层驱动、AI框架、多媒体API全都打包好了。你只需要选择自己需要的组件,剩下的交给它自动处理。
- L4T (Linux for Tegra) — 底层系统内核和驱动
- CUDA Toolkit — GPU并行计算框架
- cuDNN — 深度神经网络加速库
- TensorRT — 推理优化引擎
- OpenCV — 计算机视觉库
- Multimedia API — 视频编解码、摄像头驱动
2.2 SDK Manager:你的装机好帮手
SDK Manager是NVIDIA官方提供的图形化安装工具。我刚开始用的时候也觉得没必要,命令行多酷啊。但后来发现,这玩意儿能帮你省掉至少80%的配置时间。
为什么会这样?因为它会自动检测你的Jetson型号、Host主机的环境,然后匹配最合适的JetPack版本。你不需要去官网翻半天文档找兼容性列表。
2.2.1 安装SDK Manager
首先,你得有一台运行Ubuntu的Host主机。我个人推荐Ubuntu 20.04或22.04,这两个版本最稳。我曾经试过用18.04,结果SDK Manager报了一堆依赖错误,折腾了两小时。
# 下载SDK Manager的deb包
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/nvidia-sdk-manager_1.9.2-1_amd64.deb
# 安装
sudo apt install ./nvidia-sdk-manager_1.9.2-1_amd64.deb
# 启动
sdkmanager
sudo apt update && sudo apt upgrade,把系统依赖更新到最新。不然安装过程中容易卡在依赖问题上。
2.2.2 使用SDK Manager烧录系统
启动SDK Manager后,登录你的NVIDIA开发者账号。这一步不能省,没账号的去官网注册一个,免费的。
接下来你会看到几个选项:
- 选择硬件平台 — 选你的Jetson型号,比如Jetson Orin NX、Jetson Xavier NX等
- 选择JetPack版本 — 我建议选最新的LTS版本,比如JetPack 5.1.x。别追最新版,容易踩坑
- 选择安装模式 — 有「Host Machine」和「Target Machine」两种。我们选后者,也就是把系统烧录到Jetson上
嗯,这里要注意:烧录前请确保Jetson开发板已经进入恢复模式。怎么进?按住开发板上的「RECOVERY」键,再按一下「RESET」键,然后松开。接着用USB线把Jetson连接到Host主机上。
2.3 系统烧录的两种方式
除了SDK Manager,你还可以用命令行方式烧录。我个人觉得,SDK Manager适合新手,命令行适合老手或者需要批量部署的场景。
2.3.1 SDK Manager方式(推荐)
刚才已经讲过了,图形化界面,点几下鼠标就行。它会自动下载镜像、解压、烧录、安装组件。你只需要在最后一步勾选你需要的组件:
- CUDA Toolkit — 必选
- cuDNN — 必选
- TensorRT — 必选(跑AI推理就靠它)
- OpenCV — 建议选,省得自己编译
- Multimedia API — 如果做视频处理就选上
2.3.2 命令行方式(进阶)
如果你跟我一样,喜欢掌控每一个细节,可以试试命令行:
# 下载L4T驱动包和根文件系统
wget https://developer.nvidia.com/embedded/l4t/r35_release_v3.1/release/Jetson_Linux_R35.3.1_aarch64.tbz2
wget https://developer.nvidia.com/embedded/l4t/r35_release_v3.1/release/Tegra_Linux_Sample-Root-Filesystem_R35.3.1_aarch64.tbz2
# 解压
tar -xvf Jetson_Linux_R35.3.1_aarch64.tbz2
cd Linux_for_Tegra/rootfs/
sudo tar -xvf ../../Tegra_Linux_Sample-Root-Filesystem_R35.3.1_aarch64.tbz2
# 安装根文件系统
cd ..
sudo ./apply_binaries.sh
# 烧录到Jetson
sudo ./flash.sh jetson-orin-nx-devkit mmcblk0p1
2.4 系统初始配置
系统烧录完成后,第一次启动Jetson,你会看到一个初始设置向导。这里有几个关键点,我帮你列出来:
2.4.1 设置用户和密码
默认用户名是 nvidia,密码也是 nvidia。我建议你改成自己的密码,别偷懒。我曾经在展会上演示时,有人直接用默认密码SSH连上了我的Jetson,场面一度很尴尬。
2.4.2 配置网络
Jetson支持Wi-Fi和有线网络。我个人习惯用有线,稳定、速度快。如果你用Wi-Fi,注意5GHz频段信号更好,2.4GHz容易受干扰。
2.4.3 设置存储空间
这是个大坑。Jetson的eMMC存储通常只有16GB或32GB,装完系统就剩一半了。我建议你:
- 插一张大容量SD卡 — 至少128GB,用来存数据集和模型
- 挂载外部SSD — 通过USB 3.0或M.2接口,速度更快
- 修改apt源 — 把软件源指向SD卡或SSD,避免eMMC爆满
# 查看磁盘空间
df -h
# 挂载SD卡(假设是/dev/mmcblk1p1)
sudo mount /dev/mmcblk1p1 /mnt/sdcard
# 设置apt缓存到SD卡
sudo mkdir -p /mnt/sdcard/apt-cache
sudo ln -s /mnt/sdcard/apt-cache /var/cache/apt
2.4.4 验证环境是否正常
配置完成后,跑几个命令验证一下:
# 查看系统版本
cat /etc/nv_tegra_release
# 检查CUDA是否安装成功
nvcc --version
# 检查TensorRT版本
dpkg -l | grep tensorrt
# 跑一个简单的GPU测试
nvidia-smi
如果 nvidia-smi 能正常显示GPU信息,说明你的环境基本没问题了。接下来就可以开始愉快的开发了。
2.5 避坑指南
最后,我把自己踩过的坑总结一下,你遇到了可以直接翻到这里:
- 烧录失败 — 检查USB线是不是数据线(有些线只能充电),换根线试试
- 系统卡在启动界面 — 大概率是电源功率不够,Jetson Orin NX需要至少15W供电
- CUDA版本不匹配 — 别自己手动装CUDA,用JetPack自带的版本最稳
- 磁盘空间不足 — 装完系统第一件事就是挂载外部存储,别问我怎么知道的
好了,环境搭好了,下一章咱们聊聊怎么用命令行工具监控Jetson的性能。到时候我会分享几个我压箱底的调试技巧,保证让你眼前一亮。