← 全部文章

Jetson Orin 上跑容器化 TensorRT:从交叉编译到刷机落地

NVIDIA Tegra 平台的“嵌入式”和路由器不同:它的亮点是板载 GPU,适合把模型推理下沉到边缘。这篇讲清楚从拿到 Orin 到跑通第一个 TensorRT 程序的三个层次。

假设:Jetson Orin Nano 8GB,宿主机 Ubuntu 22.04 x86_64,目标 JetPack 6.0(L4T r36.x)。

0. 三个层次先分清

  • BSP / JetPack:系统 + 驱动 + CUDA/TensorRT,本质还是 Yocto 风格的 L4T 发行版。
  • 容器化:JetPack 提供 nvcr.io/nvidia/l4t-* 镜像,避免污染 host。
  • 交叉编译:x86 宿主编译 aarch64 目标程序,再拷到板子。

1. 刷机:使用 SDK Manager 或命令行

命令行刷写镜像(需要先 download JetPack 压缩包):

export L4T_DIR=/opt/nvidia/Linux_for_Tegra
cd $L4T_DIR
sudo ./tools/jetson-flash.sh jetson-orin-nano-devkit

要点:

  • USB 线连 Orin 的 Type-C 恢复口,按住 Recovery 键上电进入刷机模式。
  • 刷机前备份:$L4T_DIR/bootloader/system.img 不可直接复制,用 nvbackup 做整机备份。

2. 部署:把推理服务容器化

在板子上使用官方容器:

# 需要注册 NVIDIA NGC,获得 nvcr.io 凭据
docker run --rm --runtime nvidia --network host \
  -v /home/nvidia/models:/models \
  nvcr.io/nvidia/l4t-tensorrt:r8.6.2 \
  trtexec --onnx=/models/yolov8n.onnx --saveEngine=/models/yolov8n.trt

3. 暴露给局域网:边缘 AI 网关雏形

板子上跑一个转发/推理代理(Python + FastAPI 亦可),关键点是用共享内存或本地 socket 转发 RTSP/HTTP 帧:

# 简化的“帧 → TensorRT → 结果”pipeline 骨架
gst-launch-1.0 v4l2src ! videoconvert ! nvvideoconvert ! \
  nvinfer config-file-path=/models/yolov8n.txt ! \
  nvdsosd ! nveglglesink

完整网关会再叠加 OpenWrt 一侧的 NAT/带宽管理,见系列后续文章。

小结

环节工具用途
刷系统jetson-flash / SDK ManagerL4T + 驱动
推理l4t-tensorrt 容器不污染 host
部署Docker + systemd边缘常驻服务

评论 0

还没有评论,来抢沙发~

登录 登录后即可参与评论