1

我创建了一个图像(使用 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 env 以使 u-boot 以这种自定义方式启动,所以从长远来看,这不是我可以使用的解决方案。我还不如制作一个通过 tftp运行一次bootcmd的脚本,该脚本将设置为整个引导脚本内容。

我可以使用环境中包含我的脚本的补丁来编辑 u-boot 源代码吗?- 如果是这样,怎么做?

4

1 回答 1

0

正如评论中所说,我能够为此制作一个补丁u-boot-tegra/include/config_distro_bootcmd.h,并将变量distro_bootcmd设置为我的脚本内容。然后,当我构建我的 yocto 映像并启动我的 Jetson Nano 时,我可以看到该变量实际上已设置。

这种方式应该适用于任何 u-boot,而不仅仅是 Jetson Nano。只需在默认启动时运行的 u-boot 中找到 bootcmd 变量并对其进行修补即可。

于 2019-10-23T06:21:16.833 回答