首页 > 解决方案 > 将自定义 Yocto 映像闪烁到 Jetson Nano 生产模块 eMMC?

问题描述

我正在构建一个 yocto 图像以在 Jetson Nano 上运行。现在我正在开发一个从 SD 卡启动的 Jetson Nano devkit,并且在meta-tegra GitHub repo wiki 上描述了闪烁。它没有说明如何在 Jetson Nano 上闪存到 eMMC,只在 SD 卡上。

我可以将 yocto build rootfs 复制到 nvidia_sdk L4T 工具(替换“rootfs”文件夹)吗?但是其余的文件夹(bootloader、kernel、lib、nv_tegra)呢?它应该是相同的二进制文件,我只是不太确定内核和引导加载程序是否相同,并且真的不知道其余的。

任何处理相同问题的人,或者更好的是,找到了一种方法来做到这一点,请告诉我。

标签: yoctonvidia-jetsonnvidia-jetson-nano

解决方案


我与 meta-tegra 层的维护者进行了交谈,最终创建了一个新的机器配置:

#@TYPE: Machine
#@NAME: Nvidia Jetson Nano
#@DESCRIPTION: Nvidia Jetson Nano prod board

KERNEL_ARGS ?= "console=ttyS0,115200 console=tty0 fbcon=map:0 net.ifnames=0"
KERNEL_ROOTSPEC ?= "root=/dev/mmcblk0p${@uboot_var('distro_bootpart')} rw rootwait"
IMAGE_ROOTFS_ALIGNMENT ?= "1024"

require conf/machine/include/tegra210.inc

KERNEL_DEVICETREE ?= "_ddot_/_ddot_/_ddot_/_ddot_/nvidia/platform/t210/porg/kernel-dts/tegra210-p3448-0002-p3449-0000-b00.dtb"

MACHINE_FEATURES += "ext2 ext3 vfat"

UBOOT_MACHINE = "p3450-porg_defconfig"

EMMC_SIZE ?= "17179869184"
EMMC_DEVSECT_SIZE ?= "512"
BOOTPART_SIZE ?= ""
BOOTPART_LIMIT ?= "10485760"
ROOTFSPART_SIZE ?= "3221225472"
ODMDATA ?= "0x94000"
EMMC_BCT ?= "P3448_A00_4GB_Micron_4GB_lpddr4_204Mhz_P987.cfg"
NVIDIA_BOARD ?= "t210ref"
NVIDIA_PRODUCT ?= "p3450-porg"
NVIDIA_BOARD_CFG ?= ""
TEGRA210_REDUNDANT_BOOT ?= "0"
PARTITION_LAYOUT_TEMPLATE ?= "flash_l4t_t210_emmc_p3448.xml"
TEGRA_SPIFLASH_BOOT ?= "0"
TEGRA_FAB ?= "300"
TEGRA_BOARDID ?= "3448"

机器配置与开发套件几乎相同,但必须更改某些部件以匹配 Jetson Nano 生产模块配置,即更改与KERNEL_DEVICETREE较新的 eMMC Jetson Nano 匹配的那个并TEGRA_FAB相应地进行更改。然后更改PARTITION_LAYOUT_TEMPLATE以匹配 emmc 布局而不是 spi_sd 布局(这flash_l4t_t210_emmc_p3448是 meta-tegra 提供的默认 p3448 emmc 布局)。

在此之后,Yocto 将生成一个 tegraflash zip,其中包含必要的分区文件和 rootfs 映像(以及一些刷写工具)。将 Jetson Nano 生产模块置于恢复模式(FORCE RECOVERY + RESET),插入 micro-usb 电缆并运行doflash.sh脚本以刷新 nano,然后瞧。


推荐阅读