如何将内核补丁绑定到不同的配方

How to bind a kernel patches to different recipes

我有两个相似的板子。我想为他们每个人写一个食谱。但是他们会有不同的内核 patches.How 来做得更好吗?或者我应该在构建中添加新机器吗?

相似!=相同。如果它们确实略有不同,那么两台机器是可行的。如果它们足够相似(由您自己决定:)),不同的发行版也是一种选择。一切都取决于机器的不同程度以及最终图像的不同程度(可能需要两台机器或两个发行版或两者)。

如果你有两台类似的机器但需要两个机器配置文件,将大部分通用代码放入两台机器都需要的.inc。不要忘记在该 inc 文件中的某处放置一个 MACHINEOVERRIDES,其名称对两台机器都有意义(例如,如果您有 rpi3-lcd 和 rpi3-iot,则有一个 rpi3-common.inc rpi3-common 添加到 MACHINEOVERRIDES)。这将使您可以在配方中使用 VAR_rpi3-common,这些配方中有补丁或机器特定的东西,无需 VAR_rpi3-lcdVAR_rpi3-iot.

舒尔茨,
我将 my-machine 添加到 mylayer/local.conf

MACHINEOVERRIDES = "imx8qmmek:my-machine"

我用 my-patch:

创建了 mylayer/recipex-kernel/linux/linux-imx_%.bbappend
SRC_URI_imx8qmmek += " file://0001-add-modified-dts.patch "
SRC_URI_imx8qmmek += " file://0002-EP4668-wifi-bt-modified-dts.patch "
SRC_URI_imx8qmmek += " file://0003-EP4822-enable-USB3-hub.patch "
SRC_URI_my-machine += " file://0004-EP4827-comment-usdhc3.tcu.patch "
SRC_URI_imx8qmmek += " file://EP4133_added_BRCM-PCIE.cfg"


do_configure_append_imx8qmmek() {

    bbnote "adding BRCM-PCIE configuration ${PN}"
        cat ../*.cfg >> ${B}/.config

}

我运行命令:

MACHINE="my-machine" bitbake -c clean linux-imx

但是终端输出错误: 警告:层 meta-mylayer 应在其 conf/layer.conf 文件中设置 LAYERSERIES_COMPAT_mylayer 以列出与其兼容的核心层名称。 警告:层 meta-mylayer 应在其 conf/layer.conf 文件中设置 LAYERSERIES_COMPAT_meta-mylayer 以列出与其兼容的核心层名称。 警告:您已经包含了 meta-gnome 图层,但是 'x11' 尚未在您的 DISTRO_FEATURES 中启用。一些 bbappend 文件可能不会生效。有关启用 meta-gnome 支持的详细信息,请参阅 meta-gnome 自述文件。 警告:主机分发“ubuntu-18.04”尚未使用此版本的构建系统进行验证;您可能会遇到意想不到的失败。建议您使用经过测试的发行版。 错误:OE-core 的配置完整性检查程序检测到潜在的错误配置。 要么修复此错误的原因,要么自行承担禁用检查器的风险(请参阅 sanity.conf)。 以下是潜在问题/建议的列表:

MACHINE=my-machine is invalid. Please set a valid MACHINE in your local.conf, environment or other configuration file.