yocto - 将自定义 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)呢?它应该是相同的二进制文件,我只是不太确定内核和引导加载程序是否相同,并且真的不知道其余的。
任何处理相同问题的人,或者更好的是,找到了一种方法来做到这一点,请告诉我。
解决方案
我与 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,然后瞧。
推荐阅读
- mysql - 从一列城市中,您将运行什么 sql 查询来生成一列城市排列
- vim - 我可以在 VIM 正常模式下重新映射 WORD 或“W”键吗?
- dnf - 为什么 Mathematica 不像 MATLAB 或 Python 那样流行?
- python-3.x - Azure 存储容器中 Blob 的 CreatedBy/LastModifiedBy 信息
- java - CassandraOperations 更新记录错误:在 SET 部分中找到 PRIMARY KEY 部分 id
- arrays - 使用两个数组进行输出
- image - 压缩图像使其小于 4KB
- windows - 将元数据从一个文件批量复制到另一个文件 (EXIFTOOL)
- java - 我应该如何使用 Hibernate(JPA) 和 Gradle 构建我的 Java 代码?
- javascript - windows.onunload 在 Chrome 上不起作用