BitBake构建错误,补丁未应用的BitBake错误?

4

我创建了一个新的问题,因为我感觉之前的问题已经得到了解答,并且这个问题应该放在一个新的地方。

我运行bitbake core-image-minimal,然后出现了以下错误:

ERROR: systemd-1_232-r0 do_patch: Command Error: 'quilt --quiltrc /home/rama/repositories/poky/build/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/systemd/1_232-r0/recipe-sysroot-native/etc/quiltrc push' exited with 0  Output:
Applying patch 0001-systemd-udevd.service.in-set-MountFlags-shared.patch
patching file units/systemd-udevd.service.in
Hunk #1 FAILED at 21.
1 out of 1 hunk FAILED -- rejects in file units/systemd-udevd.service.in
Patch 0001-systemd-udevd.service.in-set-MountFlags-shared.patch does not apply (enforce with -f)
ERROR: systemd-1_232-r0 do_patch: Function failed: patch_do_patch
ERROR: Logfile of failure stored in: /home/rama/repositories/poky/build/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/systemd/1_232-r0/temp/log.do_patch.5314
ERROR: Task (/home/rama/repositories/poky/meta/recipes-core/systemd/systemd_232.bb:do_patch) failed with exit code '1'

我找到了补丁所在的位置,它写在文件meta-toradex/recipes-core/systemd/systemd_%.bbappend中:
FILESEXTRAPATHS_prepend := "${THISDIR}/systemd:"

SRC_URI += " \
    file://rndis.network \
    file://0001-systemd-udevd.service.in-set-MountFlags-shared.patch \
"

PACKAGECONFIG_append = " networkd"

do_install_append() {
    # The network files need to be in /usr/lib/systemd, not ${systemd_unitdir}...
    install -d ${D}${prefix}/lib/systemd/network/
    install -m 0644 ${WORKDIR}/rndis.network ${D}${prefix}/lib/systemd/network/
}

FILES_${PN} += " \
    ${nonarch_base_libdir}/systemd/network \

我被告知我可以:
  1. 删除补丁。
  2. 手动应用补丁。
要删除补丁,我只需从SRC_URI列表中删除它吗? 如何手动应用补丁?我试图搜索这个问题,但并没有完全理解如何操作。
任何帮助都将不胜感激,谢谢。
1个回答

4

当查看仓库清单时,没有使用meta-toradex,而在meta-toradex中,它说oe-core BSP层(已过时)。我认为您没有使用正确的环境。

尽管如此,如果您想检查补丁问题,可以使用devshellbitbake -c devshell systemd,然后在新控制台中键入quilt push。然后需要通过查看补丁文件和相应的源代码来分析补丁无法应用的原因。

您不应修改现有层,并创建覆盖配方的自己的层,但如果您确实想要这样做,可以删除SRC_URI中的补丁,然后使用bitbake -c clean systemd; bitbake systemd,这样就可以了。

在Toradex开发者知识库中,如果您正在创建一个新环境,我认为您需要查看V2.1及更高版本镜像部分。


你能详细说明一下为什么不使用正确的环境吗?我正在Ubuntu 14.04上使用pyro分支的poky。我只是克隆了pyro并添加了一些层。 - Meek
另外,我尝试按照您提到的方式设置,一切都正常工作。我需要添加一个层,需要所有其他层都在pyro分支上,我检查了这里的层似乎没有在任何分支上? - Meek
1
如果您加入freenode上的#yocto频道,解释问题会更容易。当您说“我需要添加一个需要所有其他层都在pyro分支上的层”时,您指的是哪个层?您可以更改git google repo的manifest.xml文件,以具有特定版本/分支的特定层。 - Nayfe
meta-mender-core是我需要添加的一个层。它期望所有其他层都在pyro上。我最初使用的是poky,它在pyro分支上,一切正常。但后来我添加了meta-openembedded层,发生了一些问题。所以我创建了一个新的设置,直到我添加meta-mender-core才能正常工作。 - Meek
1
你可以在下载文件夹中克隆存储库,而无需使用bitbake并添加.done文件。你也可以调整git配置 - Nayfe
显示剩余7条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接