1. 项目概述
在边缘计算和嵌入式AI领域,NVIDIA Jetson AGX Xavier凭借其强大的GPU算力和能效比,已成为工业检测、自主机器等场景的首选平台。但不同于常规PC,这款嵌入式计算板的系统安装存在诸多特殊环节——从强制使用的定制镜像到独特的刷机模式,每一步操作不当都可能导致设备变砖。本文将基于我三年来为47台Xavier设备部署系统的实战经验,详解Ubuntu 18.04 + JetPack 4.5这套经典组合的安装全流程。
2. 环境准备与硬件配置
2.1 必要设备清单
-
主机电脑:必须使用x86架构的Ubuntu 18.04物理机(虚拟机存在USB直通问题),建议配备:
- 至少50GB空闲空间的SSD
- 两个可用的USB 3.0接口(Type-A和Type-C各一)
- 有线网络连接(WiFi在刷机过程中不稳定)
-
AGX Xavier设备:
- 确认设备处于Force Recovery模式(所有新设备首次使用需执行)
- 准备19V/3.42A电源适配器(严禁使用非标电源)
- 建议安装散热套件(持续高负载时核心温度可达85℃)
2.2 软件资源下载
-
SDK Manager:
bash复制wget https://developer.nvidia.com/downloads/sdk-manager-debian-1160-7028122 sudo apt install ./sdk-manager-debian-<version>.deb注意:必须使用NVIDIA开发者账号登录后才能获取完整资源
-
JetPack 4.5离线包(网络不稳定时备用):
- 包含L4T 32.5.1驱动包
- CUDA 10.2工具链
- cuDNN 8.0.0库文件
- TensorRT 7.1.3推理引擎
3. 系统刷写实战流程
3.1 强制恢复模式进入
- 使用跳线帽短接J50引脚(位于散热器下方)
- 按住Force Recovery按钮不放
- 插入电源后保持按压3秒
- 通过
lsusb命令验证设备:code复制Bus 001 Device 004: ID 0955:7020 NVIDIA Corp.
3.2 SDK Manager配置要点
- 选择"Jetson AGX Xavier"目标硬件
- 取消勾选"Host Machine"选项(避免污染主机环境)
- 在Additional SDKs中必选:
- VPI视觉编程接口
- DeepStream智能分析工具包
- Isaac机器人SDK(如适用)
警告:切勿勾选"Automatically reboot after installation"选项!手动重启可避免文件系统损坏
3.3 分步安装过程
-
阶段一:下载组件(约90分钟)
- 通过
nohup后台执行防止SSH中断:bash复制nohup sdkmanager --cli install \ --logintype devzone \ --product Jetson \ --target-hardware jetson-agx-xavier \ --target-os Linux \ --version 4.5 \ --flash all \ --license accept
- 通过
-
阶段二:刷写系统(约25分钟)
- 出现"Connect your Jetson device"提示时:
- 通过USB-C线连接主机与Xavier
- 使用Micro USB线连接调试控制台
- 出现"Connect your Jetson device"提示时:
-
阶段三:组件安装(约40分钟)
- 自动配置:
- 修改
/etc/apt/sources.list.d/nvidia-l4t-apt-source.list - 安装
libvisionworks等依赖库
- 修改
- 自动配置:
4. 关键配置与优化
4.1 存储空间扩展
默认16GB系统分区需手动扩展:
bash复制sudo parted /dev/mmcblk0
(parted) resizepart 1 100%
(parted) quit
sudo resize2fs /dev/mmcblk0p1
4.2 电源管理模式设置
bash复制sudo nvpmodel -m 3 # 启用30W模式
sudo jetson_clocks # 解锁最大频率
常用模式对比:
| 模式 | 功率 | GPU频率 | 适用场景 |
|---|---|---|---|
| 0 | 10W | 854MHz | 低功耗待机 |
| 3 | 30W | 1377MHz | 典型AI推理 |
| 8 | 50W | 1500MHz | 高强度模型训练 |
4.3 温度监控方案
创建/etc/rc.local实现开机监控:
bash复制#!/bin/bash
tegrastats --interval 5000 --logfile /var/log/tegrastats.log &
exit 0
关键参数解析:
GPU@32C:GPU当前温度RAM 1234/7854MB:内存使用量CPU [10%,20%,5%]:各核心利用率
5. 常见问题排查指南
5.1 刷机失败处理
现象:SDK Manager卡在"Flashing OS"阶段
解决方案:
- 检查
dmesg | grep USB输出是否存在复位错误 - 更换USB线材(推荐使用带磁环的屏蔽线)
- 手动进入恢复模式后执行:
bash复制sudo ./flash.sh jetson-agx-xavier mmcblk0p1
5.2 网络连接异常
现象:apt-get更新时报证书错误
修复命令:
bash复制sudo rm /etc/apt/sources.list.d/nvidia-l4t-apt-source.list
sudo apt-key adv --fetch-keys https://repo.download.nvidia.com/jetson/jetson-ota-public.asc
5.3 图形界面崩溃
临时恢复:
bash复制sudo systemctl restart lightdm
彻底解决:
- 编辑
/etc/X11/xorg.conf:conf复制Section "Device" Identifier "Tegra0" Driver "nvidia" Option "DynamicTwinDP" "false" EndSection
6. 性能验证与基准测试
6.1 CUDA能力验证
bash复制cd /usr/local/cuda/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
预期输出应包含:
code复制Detected 1 CUDA Capable device(s)
Device 0: "Xavier"
CUDA Driver Version / Runtime Version: 10.2 / 10.2
Total amount of global memory: 15819 MBytes
6.2 视频解码测试
bash复制gst-launch-1.0 filesrc location=4k.mp4 ! qtdemux ! h264parse ! omxh264dec ! nveglglessink
性能指标参考:
| 分辨率 | 解码帧率 | 功耗 |
|---|---|---|
| 1080p | 240fps | 8W |
| 4K | 60fps | 15W |
6.3 深度学习基准
使用TensorRT运行ResNet50:
bash复制/usr/src/tensorrt/bin/trtexec --deploy=resnet50.prototxt \
--model=resnet50.caffemodel \
--batch=16 \
--fp16
典型结果:
code复制[I] Throughput: 285 qps
[I] Latency: min = 1.2ms, max = 3.4ms, mean = 1.8ms
7. 进阶配置技巧
7.1 持久化日志管理
创建/etc/rsyslog.d/10-jetson.conf:
conf复制$ModLoad imuxsock
$MaxMessageSize 64k
$WorkDirectory /var/log/nvidia
7.2 看门狗配置
防止系统锁死:
bash复制sudo apt install watchdog
sudo systemctl enable watchdog
配置/etc/watchdog.conf:
code复制watchdog-device = /dev/watchdog
max-load-1 = 24
7.3 实时内核编译(可选)
bash复制sudo apt install linux-rt-4.9.140-tegra
sudo sed -i 's/GRUB_DEFAULT=0/GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 4.9.140-rt96-tegra"/g' /etc/default/grub
sudo update-grub
