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



我有两块类似的板。我想为他们每个人写一份食谱。但它们将有不同的内核补丁。如何做得更好?或者我应该在构建中添加新机器吗?


我将我的机器添加到mylayer/local.conf

MACHINEOVERRIDES = "imx8qmmek:my-machine"

我用我的补丁创建了mylayer/recipex kernel/linux/linux-immx_%.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

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

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

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

如果您有两台类似的机器,但需要两个机器配置文件,请将大部分公共代码放入两台机器所需的.inc中。不要忘记在inc文件中的某个位置放置一个MACHINEOVERRIDES,其名称对这两台机器都有意义(例如,如果您有rpip3-cd和rpip3-iot,请在MACHINEOVERRIDES中添加一个带有rpi3-common的rpip3-common.inc(。这将使您可以在配方中使用VAR_rpi3-common,而无需VAR_rpi3-lcdVAR_rpi3-iot即可在配方中应用补丁或机器特定的东西。

最新更新