正在加载自定义u-boot脚本

问题描述 投票:1回答:1

我创建了一个映像(使用Yocto和meta-tegra),并获得了一个Jetson Nano devkit,它运行着两个RAUC更新使用的rootfs。我目前(在测试过程中暂时)使用Jetson Nano devkit SPI闪存存储u-boot环境。

我有一个脚本,可以通过tftp在设备上成功运行。我还manually在脚本的每一行中键入一个环境变量,将其保存并设置为bootcmd以运行它。但是,如果我想使用此u-boot而不止一个设备,则我不想为我制造的每个设备手动键入脚本。但是我也不希望tftp服务器在侧面运行以便能够启动。

我想完全独立且自动地运行我的脚本。因此,我一直在考虑将脚本自己放在一个分区上,然后使用u-boot从那里加载脚本。但是如何告诉u-boot在特定分区中查找脚本?我可以使用source SCRIPT_PARTITION_OFFSET吗?

我还看到可以从u-boot外壳程序运行标准的boot.scr。这个boot.scr在哪里?我似乎找不到它的创建位置或存储位置。

**************************************************** *****编辑:******************************************* **********作为一个临时解决方案,我将启动脚本映像放入/boot/文件夹中,并将u-boot设置为在两个rootfs的该文件夹中扫描脚本,然后在找到它的情况下运行它。

对于此解决方案,我仍然必须编辑u-boot env以使这种自定义方式的u-boot引导,因此从长远来看,这不是我可以使用的解决方案。我不妨制作一个脚本来通过tftp运行once,该脚本会将bootcmd设置为整个引导脚本内容。

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

partitioning yocto u-boot nvidia-jetson
1个回答
0
投票

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

这种方式不仅适用于Jetson Nano,而且适用于任何u-boot。只需在默认引导下运行的u-boot中找到bootcmd变量并将其修补即可。

© www.soinside.com 2019 - 2024. All rights reserved.