Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Embedded 如何覆盖U-Boot“bootcmd”变量_Embedded_Embedded Linux_Boot_U Boot - Fatal编程技术网

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

Embedded 如何覆盖U-Boot“bootcmd”变量,embedded,embedded-linux,boot,u-boot,Embedded,Embedded Linux,Boot,U Boot,我正在尝试为我的BeagleBone Black am335x编译u-boot,并希望调整bootcmd命令的功能。在我的示例中,我看到一个配置如下所示: 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_BOOTCOMMA

我正在尝试为我的BeagleBone Black am335x编译u-boot,并希望调整bootcmd命令的功能。在我的示例中,我看到一个配置如下所示:

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在我的默认环境中不显示,引导时我的echo也不显示。在构建过程中,CONFIG\u 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,有用于启用bootcmd的默认值和命令字符串的顶级条目。 修改和保存的配置可以通过简单的make在子序列构建中使用,或者通过make savedefconfig命令转换为新的./defconfig文件

在构建过程中,CONFIG\u BOOTCOMMAND在哪里被忽略

您的更改只会被忽略,因为它们尚未应用于生成配置(即.config文件)

或者还有其他可以定义的地方吗


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

启动时,U-Boot是否实际报告它正在使用您假定的默认环境?您是否在构建目录和目标板上已安装的副本中搜索了重建的u-boot.bin文件中的bootcmd=字符串?@sawdust否,我不假设为启动时,它显示“从MMC加载环境…”**警告-错误的CRC,使用默认环境'。在我的u-boot.bin文件上执行grep时,我看到我的bootcmd仍然是原始文件。为了确保正确地重新编译,我使用了一些伪变量进行编译,这些伪变量反映在我的.bin中,当我执行printenv时,您在哪个文件中进行了更改?