【问题标题】:Loading custom u-boot script加载自定义 u-boot 脚本
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2023-03-25
    • 1970-01-01
    • 2020-07-09
    • 1970-01-01
    • 2019-07-03
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 2022-06-14
    相关资源
    最近更新 更多