我正在尝试了解u-boot配置过程。实际上我想在设备的配置文件中重新配置CONFIG_EXTRA_ENV_SETTINGS定义。我在include / configs中搜索该文件。但我不知道,如何u-boot确定在编译过程中使用哪个配置文件?
感谢您的回答。
答案 0 :(得分:2)
如何u-boot确定在编译过程中使用哪个配置文件?
U-Boot配置是一个不断发展的主题,例如: Kconfig从v2014.10-rc1开始替换了先前的配置方案 你忽略了你正在使用什么版本的U-Boot 以下内容适用于2017.09版本。
电路板的配置头文件由 Kconfig 文件中定义的配置变量指定。
对于Beaglebone Black, / board / ti / am335x / Kconfig 指定:
config SYS_CONFIG_NAME
default "am335x_evm"
表示 include / configs / am335x_evm.h 用作电路板配置头文件。
doc / README.kconfig :
中记录了这一点When adding a new board, the following steps are generally needed:
[1] Add a header file include/configs/<target>.h
[2] Make sure to define necessary CONFIG_SYS_* in Kconfig:
Define CONFIG_SYS_CPU="cpu" to compile arch/<arch>/cpu/<cpu>
Define CONFIG_SYS_SOC="soc" to compile arch/<arch>/cpu/<cpu>/<soc>
Define CONFIG_SYS_VENDOR="vendor" to compile board/<vendor>/common/*
and board/<vendor>/<board>/*
Define CONFIG_SYS_BOARD="board" to compile board/<board>/*
(or board/<vendor>/<board>/* if CONFIG_SYS_VENDOR is defined)
Define CONFIG_SYS_CONFIG_NAME="target" to include
include/configs/<target>.h
[3] Add a new entry to the board select menu in Kconfig.
The board select menu is located in arch/<arch>/Kconfig or
arch/<arch>/*/Kconfig.
[4] Add a MAINTAINERS file
It is generally placed at board/<board>/MAINTAINERS or
board/<vendor>/<board>/MAINTAINERS
[5] Add configs/<target>_defconfig
MAINTAINERS 文件显然只是引用defconfig文件和配置头文件的文档。
答案 1 :(得分:0)
感谢您的回复。 我做了以下步骤以确认您的回复。顺便说一句,我和beaglebone black一起工作。
我在am335x_evm.h中添加了警告行,例如#warning CONFIG_SPL_BUILD IS NOT DEFINED!
。
我更改了 boards / ti / am335x 中的 MAINTAINERS 文件。 我将 MAINTAINERS 中的 include / configs / am335x_evm.h 行更改为 include / configs / pico-imx7d_spl_defconfig 仅用于测试。
我执行了make ARCH=arm am335x_boneblack_defconfig
。
最后我执行了make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4
。
结果:我在编译日志中看到了warning: #warning CONFIG_SPL_BUILD IS NOT DEFINED!
。我还在编译后检查了 include / config.h 。在此标题中,仍使用 am335x_evm.h 。所以我的答案错了或你的答案错了。你能帮我提供更多信息吗?。@ sawdust