1. 项目概述与准备工作
作为一名长期从事边缘计算开发的工程师,我最近在Jetson AGX Xavier上部署Ubuntu 18.04和JetPack 4.5时积累了一些实战经验。这个组合在工业视觉、机器人控制等场景中非常常见,但官方文档往往只给出基础流程,很多关键细节需要自己摸索。本文将完整记录从系统烧录到环境配置的全过程,特别会重点说明那些容易踩坑的环节。
1.1 硬件与软件版本匹配
在开始之前,必须确认硬件与软件的版本兼容性。根据NVIDIA官方文档,JetPack 4.5对应的核心组件版本为:
- CUDA 10.2
- cuDNN 8.0
- TensorRT 7.1
- OpenCV 4.1.1
重要提示:AGX Xavier的L4T(Linux for Tegra)基础系统必须选择32.5.1版本,这是JetPack 4.5的底层依赖。版本错配会导致后续组件无法正常安装。
1.2 准备工作清单
需要提前准备以下内容:
- 一台运行Ubuntu 18.04的x86主机(物理机或虚拟机均可)
- 至少16GB容量的USB 3.0闪存盘(用于制作启动盘)
- AGX Xavier开发板及电源
- USB Type-C数据线(用于连接主机和开发板)
- 稳定的网络连接(建议有线网络)
2. 主机系统准备
2.1 Ubuntu 18.04安装
虽然SDK Manager支持Windows,但在实际使用中发现Ubuntu宿主机的兼容性更好。以下是具体步骤:
-
从清华镜像站下载Ubuntu 18.04.6 LTS镜像:
bash复制
wget https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/18.04/ubuntu-18.04.6-desktop-amd64.iso -
使用Rufus制作启动盘时需注意:
- 分区类型选择GPT(针对UEFI主板)
- 文件系统选择FAT32
- 簇大小保持默认4096字节
-
安装完成后,常见的无线网卡驱动问题可以通过以下方式解决:
bash复制sudo apt install --reinstall bcmwl-kernel-source sudo modprobe -r bcma sudo modprobe wl
2.2 SDK Manager安装配置
-
下载SDK Manager 1.6.0版本(这是支持JetPack 4.5的最新稳定版):
bash复制wget https://developer.nvidia.com/sdk-manager-deb-archive sudo dpkg -i sdkmanager_1.6.0-8177_amd64.deb -
解决依赖问题:
bash复制sudo apt-get install -f -
启动SDK Manager时需要添加--no-deprecation参数避免警告:
bash复制
sdkmanager --no-deprecation
3. 系统烧录与JetPack安装
3.1 开发板进入恢复模式
这是最容易出问题的环节之一,正确操作流程:
- 先断开AGX Xavier电源
- 按住中间的Force Recovery按钮不放
- 插入电源线
- 继续按住Recovery按钮约2秒后松开
- 通过Type-C线连接主机
验证是否进入恢复模式:
bash复制lsusb | grep "NVIDIA Corp."
应该能看到0955:7020的设备信息。
3.2 SDK Manager配置要点
在SDK Manager界面中需要特别注意:
- 第一步勾选"Jetson OS"和"Jetson SDK Components"
- 在Additional SDKs中取消所有非必要组件(减少下载量)
- 网络代理设置中建议关闭自动配置(Auto Proxy)
常见问题:如果卡在"Preparing target device"阶段,可能是USB连接不稳定。建议更换高质量的Type-C线缆,或尝试不同的USB端口。
3.3 安装过程监控
安装过程中需要关注以下日志信息:
- 烧录阶段查看/var/log/nvsdkmanager.log
- 组件安装阶段查看~/nvidia/nvsdkmanager_log.txt
典型问题处理:
- 出现"Failed to execute phase: flashing"错误时,尝试:
bash复制sudo usermod -aG dialout $USER sudo reboot
4. 系统配置与验证
4.1 基础环境设置
首次启动后建议立即执行:
bash复制sudo apt update
sudo apt full-upgrade
sudo apt install -y python3-pip
pip3 install -U pip
4.2 jtop安装与使用
jtop是监控Jetson状态的最佳工具:
bash复制sudo -H pip3 install jetson-stats
sudo systemctl restart jtop
关键监控指标解读:
- RAM使用情况:重点关注SWAP使用率
- CPU/GPU频率:检查是否达到预期性能状态
- 温度监控:长期超过80℃需检查散热
4.3 CUDA环境验证
bash复制nvcc --version # 应显示10.2版本
nvidia-smi # 查看GPU状态
如果遇到"command not found"错误,需要手动添加PATH:
bash复制echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
5. 深度学习环境配置
5.1 cuDNN安装验证
bash复制cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
预期输出应包含:
code复制#define CUDNN_MAJOR 8
#define CUDNN_MINOR 0
#define CUDNN_PATCHLEVEL 1
5.2 TensorRT测试
运行官方示例验证安装:
bash复制cd /usr/src/tensorrt/samples/sampleMNIST
sudo make
./sample_mnist
5.3 OpenCV编译优化
系统预装的OpenCV可能未启用CUDA加速,建议重新编译:
bash复制git clone --branch 4.1.1 https://github.com/opencv/opencv.git
mkdir build && cd build
cmake -D WITH_CUDA=ON -D CUDA_ARCH_BIN="7.2" ..
make -j$(nproc)
sudo make install
6. 常见问题解决方案
6.1 网络连接问题
如果遇到apt-get更新失败:
-
更换国内源:
bash复制sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo sed -i 's/ports.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list -
添加NVIDIA专属源:
bash复制sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub
6.2 电源管理优化
避免性能受限:
bash复制sudo nvpmodel -m 0 # 开启最大性能模式
sudo jetson_clocks # 锁定最高频率
6.3 存储空间不足
JetPack安装后系统分区可能已满,解决方法:
-
清理apt缓存:
bash复制sudo apt clean -
扩展根分区:
bash复制sudo apt install gparted sudo gparted
7. 性能调优建议
经过多次实践,我总结出以下提升AGX Xavier性能的经验:
-
内存交换优化:
bash复制sudo fallocate -l 8G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab -
文件系统优化:
bash复制sudo tune2fs -o journal_data_writeback /dev/mmcblk0p1 sudo mount -o remount,commit=60 / -
深度学习推理优化:
bash复制sudo nvpmodel -m 3 # 30W模式 sudo jetson_clocks --fan
在实际部署机器人视觉系统时,这些优化使得推理帧率从15fps提升到28fps,效果显著。
