我正在尝试为我的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的先前编译中读取任何变量,而是使用它编译的默认变量。
文件进行任何编辑时,此类编辑后的我在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
或者还有其他可以定义的地方?如果遵循正确的构建过程,则无需担心。