Yocto meta-tegra 与 Jetson Machine Config 全解


📖 推荐博主书籍:《Yocto项目实战教程:高效定制嵌入式Linux系统
🎥 更多学习视频请关注 B 站:嵌入式Jerry


Yocto meta-tegra 与 Jetson Machine Config 全解

NVIDIA Jetson 系列(AGX Orin、Orin NX、Orin Nano 等)是边缘 AI 和嵌入式开发的重要平台。使用 Yocto 构建定制化 Linux 系统时,meta-tegra 层为 Jetson 提供了 BSP 支持。在实际开发中,最核心的就是 选择正确的 MACHINE 配置 并结合存储方式(eMMC、NVMe、SD)来构建和刷机。本博文将系统总结这一过程,帮助你快速入门并避免常见陷阱。


在这里插入图片描述

一、meta-tegra 层的作用

meta-tegra 是 NVIDIA Jetson 平台的 Yocto BSP 层,定义了:

  • MACHINE 配置(不同 Jetson 模块/开发板型号)。
  • 内核、Bootloader、设备树(DTB/DTBO) 的构建规则。
  • 刷机脚本与分区布局(flash.sh、flash_t234_qspi_*.xml)。
  • 存储支持:eMMC、NVMe SSD、microSD 等。

只有使用正确的 MACHINE 配置,Yocto 才能输出与实际硬件匹配的镜像和刷机工具。


二、Jetson 模块与 MACHINE 的关系

Jetson 模块硬件用 Part Number + SKU 标识,例如 P3701-0005

  • 前半部分:平台型号(AGX Orin 是 P3701,Orin NX/Nano 是 P3767)。
  • 后半部分 SKU:具体变体(内存大小、eMMC 容量、是否工业级)。

meta-tegra/conf/machine/ 中的 MACHINE 文件命名方式通常有两类:

  1. 简写型

    • jetson-agx-orin-devkit.conf → 对应 AGX Orin 开发套件(P3701-0000)。
    • jetson-orin-nano-devkit-nvme.conf → Orin Nano Devkit,rootfs 在 NVMe。
  2. 精确型(推荐)

    • p3737-0000-p3701-0005.conf → Carrier Board P3737-0000 + Module P3701-0005(AGX Orin 64GB)。
    • p3768-0000-p3767-0003.conf → Orin Nano Devkit (8GB)。

⚠️ 使用精确型 MACHINE 最可靠,因为会直接匹配你的实际模块/载板 SKU,避免刷机时报 “expected 0000 / actual 0005” 的错误。


三、如何选择 MACHINE

  1. 确认模块 SKU

    • 在 bootloader 目录运行:

      sudo ./chkbdinfo -f ../cvm.bin.*
      
    • 输出中会包含 P3701-0005P3767-0003 等信息。

  2. 对应 MACHINE

    • P3701-0000 + P3737-0000jetson-agx-orin-devkit
    • P3701-0005 + P3737-0000p3737-0000-p3701-0005
    • P3767-0003 + P3768-0000p3768-0000-p3767-0003
    • P3767-0004p3768-0000-p3767-0004
  3. 选择 rootfs 存储介质

    • eMMC → 默认 MACHINE(如 jetson-agx-orin-devkit)。

    • NVMe → 选择带 -nvme 的 MACHINE,或在 local.conf 里指定:

      PARTITION_LAYOUT_TEMPLATE_DEFAULT = "flash_t234_qspi_nvme.xml"
      ROOTFSPART = "nvme0n1p1"
      
    • microSD → 修改分区模板为 flash_t234_qspi_sdmmc.xml


四、构建与烧录流程

  1. 配置 MACHINE
    build/conf/local.conf 中设置:

    MACHINE = "p3737-0000-p3701-0005"   # 按实际替换
    KERNEL_IMAGETYPE = "Image"
    
  2. 构建镜像

    bitbake core-image-sato   # 或其他目标镜像
    
  3. 进入刷机目录

    cd tmp/deploy/images/${MACHINE}/bootloader
    
  4. 进入恢复模式

    • 按住 Recovery 键,上电 → lsusb 中出现 0955:7023 NVIDIA Corp. APX
  5. 执行刷机

    • 刷 eMMC:

      sudo ./flash.sh ${MACHINE} mmcblk0p1
      
    • 刷 NVMe:

      sudo ./flash.sh ${MACHINE} nvme0n1p1
      

五、核心知识点总结

  • MACHINE 选择必须匹配实际硬件 SKU,否则刷机会被安全校验拒绝。
  • SPI NOR Flash 存放 Bootloader,eMMC/NVMe/SD 存放 rootfs,两者都要正确烧录。
  • flash_t234_qspi_*.xml 决定了分区布局和 rootfs 存储介质。
  • 推荐使用 精确型 MACHINE 名称(如 p3737-0000-p3701-0005)来避免混淆。

六、类比帮助理解

可以把 Jetson 的启动链路类比成 PC:

  • SPI NOR Flash = BIOS/UEFI 芯片,存放启动固件。
  • SSD (NVMe) = 系统盘,存放操作系统。

先刷 BIOS(SPI),才能识别硬盘(SSD),最后从 SSD 启动系统。


七、结语

使用 Yocto 构建 Jetson 镜像的关键在于:

  1. 识别模块 SKU → 选对 MACHINE。
  2. 确认 rootfs 存储介质 → 配置对应分区模板。
  3. 使用 meta-tegra 提供的 flash 工具正确烧录 SPI + 系统存储。

掌握这三点,你就能顺利在 Jetson 平台上构建并运行高度定制的 Linux 系统。


📖 推荐博主书籍:《Yocto项目实战教程:高效定制嵌入式Linux系统
🎥 更多学习视频请关注 B 站:嵌入式Jerry


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值