【发布时间】:2020-02-14 01:39:27
【问题描述】:
我创建了一个映像(使用 Yocto 和 meta-tegra),并获得了一个 Jetson Nano 开发工具包,它使用 RAUC 更新使用的两个 rootfs 运行。我目前(在测试期间暂时)使用 Jetson Nano devkit SPI flash 来存储 u-boot 环境。
我有一个使用tftp 成功在我的设备上运行的脚本。我还手动将脚本的每一行输入到环境变量中,保存并设置bootcmd 来运行它。但是,如果我想要多个具有此 u-boot 的设备,我不想为我制作的每个设备手动输入脚本。但我也不希望 tftp 服务器在旁边运行才能启动。
我想完全独立且自动地运行我的脚本。因此,我一直在考虑将脚本放在自己的分区上,并让 u-boot 从那里加载脚本。但是我如何告诉 u-boot 在特定分区中查找脚本?我可以使用source SCRIPT_PARTITION_OFFSET吗?
我还看到标准的 boot.scr 可以从 u-boot shell 运行。这个 boot.scr 在哪里?我似乎找不到它的创建位置或存储位置。
**************************************************** ******编辑:****************************************** ***********
作为一个临时解决方案,我已将启动脚本映像放入 /boot/ 文件夹,并将 u-boot 设置为在两个 rootfs 上扫描该文件夹中的脚本,然后在找到它时运行它。
对于这个解决方案,我仍然需要编辑 u-boot 环境以使 u-boot 以这种自定义方式启动,因此从长远来看,这不是我可以使用的解决方案。我不妨编写一个脚本以通过 tftp 运行 一次,它将 bootcmd 设置为整个启动脚本内容。
我可以使用在其环境中包含我的脚本的补丁来编辑 u-boot 源代码吗? - 如果有,怎么做?
【问题讨论】:
-
在
include/common中,您可能会在 default 环境中找到一个标题。你可以编辑它并重建。请记住,您需要在 uboot 中默认您的环境才能看到更改。 -
谢谢,我发现了与您的评论相似的内容。包含变量
distro_bootcmd的文件u-boot-tegra/include/config_distro_bootcmd.h在正常构建时默认由bootcmd运行。我为该文件制作了一个补丁,其中 distro_bootcmd 变量包含我的脚本内容。如果可行,我会写一个答案。
标签: partitioning yocto u-boot nvidia-jetson