将自定义 Yocto 图像闪烁到 Jetson Nano 生产模块 eMMC?
Flashing custom Yocto image to Jetson Nano production module eMMC?
我正在 Jetson Nano 上为 运行 构建一个 yocto 图像。现在我正在开发一个从 SD 卡启动的 Jetson Nano 开发套件,meta-tegra GitHub repo wiki 中描述了闪烁。它没有说如何在 Jetson Nano 上刷入 eMMC,只在 SD 卡上。
我可以将 yocto build rootfs 复制到 nvidia_sdk L4T 工具(替换 'rootfs' 文件夹)吗?但是其余文件夹(bootloader、kernel、lib、nv_tegra)呢?它应该是相同的二进制文件,我只是不太确定内核和引导加载程序是否相同,并且不太了解其余部分。
任何处理相同问题的人,或者更好的是,找到解决方法的人,请告诉我。
我与 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 匹配的那个并更改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,瞧。
我正在 Jetson Nano 上为 运行 构建一个 yocto 图像。现在我正在开发一个从 SD 卡启动的 Jetson Nano 开发套件,meta-tegra GitHub repo wiki 中描述了闪烁。它没有说如何在 Jetson Nano 上刷入 eMMC,只在 SD 卡上。
我可以将 yocto build rootfs 复制到 nvidia_sdk L4T 工具(替换 'rootfs' 文件夹)吗?但是其余文件夹(bootloader、kernel、lib、nv_tegra)呢?它应该是相同的二进制文件,我只是不太确定内核和引导加载程序是否相同,并且不太了解其余部分。
任何处理相同问题的人,或者更好的是,找到解决方法的人,请告诉我。
我与 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 匹配的那个并更改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,瞧。