KBUILD_DEFCONFIG_KMACHINE?=DefCONFIG_FILE未按预期工作未按、工作、KBUILD_DEFCONFIG_KMACHINE、DefCONFIG_FILE

2023-09-03 10:39:59 作者:咱們〞不賤不散

KBUILD_DEFCONFIG_KMACHINE ?= defconfig_file工作不像我预期的那样。

我学到的第一课:defconfig != .config

Bare-Kernel-Build(不带Yocto):由make savedefconfig创建的arch/arm/config/xy_defconfig下面的新Defconfig文件不等于.config文件。我假设Linux内核扩展了一些符号并创建了最终的.config

Yocto-Build:问题来了:Yocto不能正确处理下面的Defconfig文件。在使用Yocto构建Linux内核时..内核只有一半大小,不能引导。这是因为Yocto不会像make defconfig那样展开.config中缺少的符号。

您如何处理此问题?

更新:

解决了另一个make xy_defconfig的问题,并创建了正确的.config文件。这是一个丑陋的黑客行为,任何更好的想法都非常受欢迎。

已将此添加到我的自定义linux-xy.bb文件。

KBUILD_DEFCONFIG ?= xy_defconfig

do_makedefconfig() {
     oe_runmake -C ${B} ARCH=${ARCH} $KBUILD_DEFCONFIG
}

addtask do_makedefconfig after do_configme before do_compile

推荐答案

首先将您的Defconfig复制到Sources/meta-mylayer/Recipe-Kernel/linux 并为Linux配方编写.bbappend文件

linux-ti_%.bbappend

FILESEXTRAPATHS_prepend : "${THISDIR}:"
SRC_URI += "file://your-defconfig" 
2.在行下面打开sources/meta-mylayer/conf/machine/your-machine.conf Add, 搜索宏(如果已存在)或不使用grep -inr "INTREE_DEFCONFIG"

INTREE_DEFCONFIG_pn-linux-ti = "am335x_phytec_defconfig"
如果宏已存在于同一文件中,请替换Defconfig名称。