在Jetson系列开发板上进行AI开发时,JetPack是NVIDIA官方提供的"一站式"开发套件。它最大的优势在于能自动匹配并安装CUDA、cuDNN、TensorRT等核心组件,省去了手动配置版本兼容性的烦恼。作为一名长期使用Jetson Orin进行YOLO模型部署的开发者,我总结了一套最稳妥的安装流程。
JetPack 6.2基于Ubuntu 20.04 LTS,包含CUDA 12.2、cuDNN 8.9、TensorRT 8.6等最新组件。与手动安装各组件相比,使用JetPack可以避免以下典型问题:
在开始安装前,必须确认当前系统的L4T(Linux for Tegra)版本。这是整个安装过程的基础,因为:
执行以下命令查看版本:
bash复制cat /etc/nv_tegra_release
或者使用更直观的jtop工具(需提前安装):
bash复制sudo -H pip install jetson-stats
jtop
典型输出示例:
code复制# R36 (release), REVISION: 4.7, GCID: 33984772, BOARD: t234ref, EABI: aarch64, DATE: Fri May 10 05:22:56 UTC 2024
这里的关键信息是"R36 (release), REVISION: 4.7",表示这是L4T 36.4.7版本。
当系统版本确认后,需要创建或修改NVIDIA的APT源文件。这是安装过程中最容易出错的一步,我总结了几点经验:
/etc/apt/sources.list.d/nvidia-l4t-apt-source.list使用nano编辑器创建配置文件:
bash复制sudo nano /etc/apt/sources.list.d/nvidia-l4t-apt-source.list
示例内容(Orin设备,L4T 36.4.x):
code复制deb https://repo.download.nvidia.com/jetson/common r36.4 main
deb https://repo.download.nvidia.com/jetson/t234 r36.4 main
重要提示:编辑完成后务必执行
sudo apt update更新软件包索引,否则修改不会生效
安装命令看似简单,但有几个隐藏要点:
bash复制sudo apt update
sudo apt install nvidia-jetpack -y
安装过程通常需要15-30分钟(取决于网络速度),期间会:
避坑指南:如果安装过程中断,建议先执行
sudo apt --fix-broken install修复依赖关系,再重新安装
安装完成后,建议按以下顺序验证各组件:
bash复制dpkg -l | grep libcudnn
正常应显示类似输出:
code复制ii libcudnn8 8.9.7.2-1+cuda12.2 arm64 cuDNN runtime libraries
ii libcudnn8-dev 8.9.7.2-1+cuda12.2 arm64 cuDNN development files
bash复制nvcc --version
预期输出:
code复制nvcc: NVIDIA (R) Cuda compiler
release 12.2, V12.2.140
bash复制dpkg -l | grep tensorrt
应看到多个包含tensorrt字样的包,版本号应为8.6.x
典型错误:
code复制E: Unable to locate package nvidia-jetpack
解决方案:
/etc/apt/sources.list.d/nvidia-l4t-apt-source.list文件内容正确nv_tegra_release显示的主版本匹配sudo apt update并观察是否有错误输出错误示例:
code复制You might want to run 'apt --fix-broken install' to correct these.
处理步骤:
bash复制sudo apt --fix-broken install
sudo apt autoremove
sudo apt install nvidia-jetpack -y
如果发现CUDA/cuDNN版本低于预期:
bash复制apt show nvidia-jetpack
bash复制sudo apt purge "*cuda*" "*cudnn*" "*tensorrt*"
sudo apt autoremove
sudo apt install nvidia-jetpack --reinstall
对于YOLO等AI项目开发,建议在VS Code中配置:
/usr/bin/python3).vscode/c_cpp_properties.json包含CUDA头文件路径:json复制{
"configurations": [
{
"includePath": [
"/usr/local/cuda/include",
"${workspaceFolder}/**"
]
}
]
}
安装完成后建议执行:
bash复制sudo nvpmodel -m 0 # 设置为最大性能模式
sudo jetson_clocks # 锁定最高频率
对于Orin设备,还可以启用所有CPU核心:
bash复制sudo echo 1 > /sys/devices/system/cpu/cpu1/online
sudo echo 1 > /sys/devices/system/cpu/cpu2/online
...
完成JetPack安装后,建议立即:
bash复制sudo apt install timeshift
sudo timeshift --create --comments "Post-JetPack Install"
bash复制sudo fallocate -l 8G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
bash复制sudo apt install python3-pip
pip install torch torchvision --extra-index-url https://download.pytorch.org/whl/rocm5.7
我在实际部署YOLOv8模型时发现,JetPack 6.2自带的TensorRT 8.6对ONNX模型的解析能力有明显提升,特别是对于动态尺寸输入的支持更加完善。建议在转换模型时使用最新的trtexec工具:
bash复制/usr/src/tensorrt/bin/trtexec --onnx=yolov8n.onnx --saveEngine=yolov8n.engine --fp16