如何覆盖U-Boot“ bootcmd”变量

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

我正在尝试为我的BeagleBone Black(am335x)编译u-boot,并希望调整“ bootcmd”命令的作用。我在am334x_evm_defconfig中看到有一个看起来像这样的配置:

CONFIG_BOOTCOMMAND="if test ${boot_fit} -eq 1; then run update_to_fit; fi; run findfdt; run init_console; run envboot; run distro_bootcmd"

但是当我尝试添加任何更改时。

CONFIG_BOOTCOMMAND="echo this is my bootcmd; if test ${boot_fit} -eq 1; then run update_to_fit; fi; run findfdt; run init_console; run envboot; run distro_bootcmd"

bootcmd在默认环境中不显示,并且在引导时也不显示我的回声。 CONFIG_BOOTCOMMAND在构建过程中的什么地方被忽略?还是可以在另一个地方定义它?

为澄清起见,我将环境存储在eMMC上,所以我确保将其清零,以使U-boot不会从u-boot的先前编译中读取任何变量,而是使用它编译的默认变量。

embedded embedded-linux boot u-boot
1个回答
1
投票

我在am334x_evm_defconfig]中看到了......但是当我尝试添加任何更改时...

当您对xxx_defconfig

文件进行任何编辑时,此类编辑后的make命令不会将这些修改应用于。config文件,因此这些更改将不会在以后的版本中显示。使这些更改进入您的下一个版本的唯一方法是需要一个全新的版本,即make distclean(或make mrproper)命令,然后是make xxx_defconfig

而不是直接编辑xxx_defconfig

文件,您最好使用更可靠的make menuconfig命令进行更改,因为该命令将遵守相关性。对于CONFIG_BOOTCOMMAND,存在Enable a default value for bootcmd和命令字符串的顶级条目。然后,可以使用简单的make将修改并保存的配置用于后续版本,或者使用make savedefconfig命令将其转换为新的[[./defconfig文件。
在构建过程中,CONFIG_BOOTCOMMAND在哪里被忽略?

您的更改仅会被忽略,因为它们尚未应用到

。config

文件的生成配置中。
或者还有其他可以定义的地方?

如果遵循正确的构建过程,则无需担心。

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