将自定义Yocto图像闪烁到Jetson Nano生产模块eMMC?

时间:2019-09-24 12:30:55

标签: yocto nvidia-jetson nvidia-jetson-nano

我正在构建一个可以在Jetson Nano上运行的yocto图像。现在,我正在开发一个可从SD卡启动的Jetson Nano开发套件,其闪烁情况在meta-tegra GitHub repo wiki中有描述。它没有说明如何仅在SD卡上闪烁到Jetson Nano上的eMMC。

是否可以将yocto构建rootfs复制到nvidia_sdk L4T工具(替换“ rootfs”文件夹)?但是其余的文件夹(引导程序,内核,lib,nv_tegra)又如何呢?它应该是相同的二进制文件,我只是不确定内核和引导加载程序是否相同,其余部分则一无所知。

任何遇到相同问题的人,或者甚至更好的人,找到了解决此问题的方法,请告诉我。

1 个答案:

答案 0 :(得分:2)

我在meta-tegra层的维护者那里有一个conversation,最终创建了一个新的机器配置:

#@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"

机器配置几乎与devkit相同,但是必须更改某些部分以与Jetson Nano生产模块配置匹配,即,将KERNEL_DEVICETREE更改为与较新的eMMC Jetson Nano匹配的部分,并更改{{ 1}}。然后更改TEGRA_FAB以匹配emmc布局而不是spi_sd布局(PARTITION_LAYOUT_TEMPLATE是meta-tegra提供的默认p3448 emmc布局)。

此后,Yocto将生成一个tegraflash zip,其中包含必要的分区文件和rootfs映像(以及一些闪存工具)。将Jetson Nano生产模块置于恢复模式(强制恢复+重置),插入micro-usb电缆,然后运行flash_l4t_t210_emmc_p3448脚本以刷新nano,然后瞧。