我与 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,然后瞧。