Jetson SDK 安装与部署:刷机、容器与首个 TensorRT 推理
二、安装与部署:刷机、容器与首个 TensorRT 推理
部署 Jetson 的典型路径有三条,先想清楚选哪条再动手:
| 方式 | 做法 | 适用场景 |
|---|---|---|
| SDK Manager 刷机 | x86 Ubuntu 主机上装 SDK Manager,USB 连 Jetson,一次装好系统与组件 | 全新板子、需要干净可控的环境 |
| SD 卡镜像 | 下载官方镜像写卡,首次开机走初始化 | 支持 SD 卡的型号,快速验证 |
| 容器(l4t-base / jetson-containers) | 在已刷好的系统上跑容器,隔离 Python 与库依赖 | 多项目共存、需要特定框架版本 |
刷机步骤(SDK Manager 路线)
- 准备一台 x86_64 Ubuntu 主机,装好 SDK Manager,版本与目标 JetPack 对应。
- Jetson 进入恢复模式(Force Recovery)。不同载板按键方式不同,以官方文档为准。
- 用 USB 线连接主机与 Jetson,在 SDK Manager 里确认设备被识别。
- 勾选需要安装的组件(JetPack 版本、是否装 DeepStream、是否装容器运行时),选择目标存储(eMMC 或 NVMe)。
- 开始烧录,过程会重启多次,中途不要拔线。完成后按提示设置用户名密码。
刷完后的基础验证
# 查看 L4T 版本与型号
cat /etc/nv_tegra_release
cat /proc/device-tree/model
# 查看 CUDA 编译器
nvcc --version
# 查看当前功耗模式
sudo nvpmodel -q
# 锁定最高时钟(散热与供电要跟得上)
sudo jetson_clocks
nvpmodel 与 jetson_clocks 的区别要分清:前者是「选模式」,决定允许的功耗上限与核心开关;后者是「在所选模式内把频率锁到上限」,用于消除调频抖动,但会显著增加发热。
容器路线
# 需要先装好 nvidia-container-runtime
docker run --runtime nvidia --rm -it \
--network host \
nvcr.io/nvidia/l4t-base:rXX.X \
bash
# 社区维护的 jetson-containers 提供按框架分类的镜像
git clone https://github.com/dusty-nv/jetson-containers
bash jetson-containers/install.sh
容器里跑推理的好处是依赖隔离,坏处是访问相机、GPIO、硬件编解码器时需要额外做设备映射与权限配置。
常见报错与排查
| 现象 | 常见原因 | 排查方向 |
|---|---|---|
| SDK Manager 找不到设备 | 未进恢复模式、USB 线只供电不传数据 | 换数据线、重进恢复模式、lsusb 确认 |
| 烧录中途失败 | USB 口供电不足(用 USB Hub) | 直连主机后置 USB 口 |
| TensorRT 报 engine 反序列化失败 | engine 是跨机/跨版本生成的 | 在目标机上重新生成 engine |
| 跑一会儿变慢 | 过热降频 | 查温度、加散热、确认功耗模式 |
| 容器里 CUDA 不可用 | 未用 nvidia runtime 启动 | 加 --runtime nvidia 并装好容器运行时 |

