使用Yocto项目为iMX6开发板构建Linux,并且我想要修改用于构建iMX开发板的u-boot-imx(iMX开发板的u-boot)的.config文件 - 例如,将自动引导延迟更改为1秒。
我可以编辑配置文件(例如,找到构建目录并运行make menuconfig),但是当我运行bitbake重新构建映像时,它会再次用默认值覆盖.config文件。有许多xxx_defconfig文件,我不知道它正在使用哪个。
我遵循了此指南进行内核配置(使用Yocto项目)。我对.config文件进行了更改,并将其复制到我的层并将其重命名为“defconfig”。我创建了一个新层,其中包含以扩展(u-boot-imx的配方)。
这是我的:
FILESEXTRAPATHS_prepend := "${THISDIR}:"
SRC_URI += "file://defconfig"
我也将它添加到我的layer.conf文件中的"BBFILES"中。
我按照以下步骤重新构建了u-boot:
bitbake -f -D u-boot-imx -c compile
当我这样做时,构建目录中的.config文件会恢复为默认配置(而不是我的修改版本),生成的u-boot二进制文件也没有更改(启动延迟仍然为3秒)。 我认为我的层正在被处理,因为我在输出中看到了这个:
DEBUG: Appending .bbappend file /home/bob/yocto/morty/sources/meta-mylayer/imx/meta-bsp/recipes-bsp/u-boot/u-boot-imx_2017.03.bbappend to /home/bob/yocto/morty/sources/meta-fsl-bsp-release/imx/meta-bsp/recipes-bsp/u-boot/u-boot-imx_2017.03.bb
我看不到任何调试输出,表明有错误(例如找不到我的defconfig文件)。
我该如何使用Yocto对u-boot配置进行此类更改?
===== 编辑 =====
我按照下面LetoThe2nd的答案中的说明进行操作。这是我发现的:
bitbake-layers show-appends
有用! 在我看到的层中:
u-boot-imx_2017.03.bb:
/home/bob/yocto/morty/sources/meta-mylayer/imx/meta-bsp/recipes-bsp/u-boot/u-boot-imx_2017.03.bbappend
所以看起来它找到了这个层。
bitbake -e -c clean u-boot-imx | tee build.log
在build.log中搜索"SRC_URI",我找到了这个:
# $SRC_URI [6 operations]
...
# pre-expansion value:
# "${UBOOT_SRC};branch=${SRCBRANCH} file://defconfig"
SRC_URI="git://git.freescale.com/imx/uboot-imx.git;protocol=git;branch=imx_v2017.03_4.9.11_1.0.0_ga file://defconfig"
file://defconfig来自我的bbappend文件。通过grep UBOOT_MACHINE,我找到了:
# $UBOOT_MACHINE [2 operations]
...
UBOOT_MACHINE=" mx6ull_14x14_evk_config"
这看起来是正确的!
我检查了u-boot-imx构建目录中的.config文件;它仍然是不正确的。
(我比较了我的层中defconfig文件中CONFIG_BOOTDELAY的值与u-boot-imx构建目录中的.config文件中的值)。
===== 编辑2 =====
我按照LetoThe2nd答案下面的附录1建议进行操作。即:
为构建我的evk板的u-boot-imx时使用的xxx_defconfig文件创建一个补丁(在本例中,[SOURCE DIR]/configs/mx6ull_14x14_evk_defconfig)
将补丁放在我的layer目录中与.bbappend文件一起
更改.bbappend文件以使其看起来像这样:
_
FILESEXTRAPATHS_prepend := "${THISDIR}:"
SRC_URI += " file://mx6ull_14x14_evk_defconfig.patch;patchdir=${S}/configs "
- 注意使用patchdir=${S}/configs - 这样bitbake就知道在哪里应用补丁,即[SOURCE DIR]/configs。参见这个问题。
这很有效!(即我放在补丁中的调整后的自动启动延迟在u-boot-imx中得到了使用)。
我没有尝试建议2,因为第一种方法听起来更好。