【问题标题】:Yocto: overriding kernel configurationYocto:覆盖内核配置
【发布时间】:2020-02-17 00:34:28
【问题描述】:

this 问题有关。 为了自定义我在自定义层中创建的内核配置,这个结构:

$ tree recipes-kernel/
recipes-kernel/
└── linux
    ├── files
    │   └── <image>-defconfig
    └── linux-stm32mp_4.19.bbappend

defconfig 文件实际上是用于手动编译内核的.config(参见另一个问题)。 bbappend 文件包含以下代码:

SRC_URI += "file://<full-path>/meta-custom-layer/recipes-kernel/linux/files/<image>-defconfig"
KERNEL_DEFCONFIG_stm32mp1_<variant> = "{WORKDIR}/<image>-defconfig"

我确定文件已被处理,因为如果我更改 defconfig 的名称 bitbake 会引发文件未找到错误。

问题是编译的内核没有我的自定义。 但是如果我将我的 defconfig 复制到构建目录(即tmp/work/stm32mp1_&lt;variant&gt;-openstlinux_eglfs-linux-gnueabi/linux-stm32mp/4.19-r0/linux-stm32mp1-&lt;variant&gt;-standard-build/.config)并手动bitbake virtual/kernel)它会这样做。

所以它似乎搜索并找到了我的 defconfig,但随后它忽略了它。 我的错在哪里?

【问题讨论】:

    标签: linux-kernel yocto bitbake


    【解决方案1】:

    我不知道你的错误是什么。但我知道我在做什么。

    我没有尝试重载 defconfig,而是让 bitbake 生成内核片段(来自内核提供的 defconfig 的差异):https://edison-fw.github.io/meta-intel-edison/5.1-Bitbake-tricks#configuring-the-kernel-and-grab-the-kernel-fragment

    然后我将片段添加到我的食谱中:https://github.com/edison-fw/meta-intel-edison/blob/warrior/meta-intel-edison-bsp/recipes-kernel/linux/linux-yocto_5.4.0.bb

    【讨论】:

    • 我看到他们使用linux-yocto 而不是virtual/kernel。它们是不同的东西吗?
    • 我创建了片段文件(并检查了它是否包含我的自定义!)。但是他们建议将文件放在原始图层中?把它放在自定义的里面不是更好吗?
    • meta-intel-edison 已经是定制的了。它有自己的 linux-yocto 配方,因为它比 yocto 中的任何一个都更新(所以不能附加)。当然,您可以创建一个新层并将其附加到 meta-intel-edison 中的层。或者你可以修补 meta-intel-edison。最适合你的。
    • 似乎成功了:将KERNEL_CONFIG_FRAGMENTS += "/&lt;full-path&gt;/meta-custom-layer/recipes-kernel/linux/files/fragment.cfg"插入到上面的.bbappend中。
    猜你喜欢
    • 2018-04-09
    • 1970-01-01
    • 2021-01-04
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    • 2016-06-18
    • 2020-06-25
    • 1970-01-01
    相关资源
    最近更新 更多