如何在yocto中应用补丁

问题描述 投票:0回答:2

我为我的board构建了 yocto 图像。现在我需要应用这个补丁

首先,我如何确定补丁适用于哪个配方? 第二,如何应用这个补丁?

(我检查了类似的问题,但它修补了yocto系统本身,我不想要那个)

我可以用这个命令列出我所有的食谱我发现

bitbake-layers show-recipes

但我仍然不知道这些食谱中的哪一个构建了文件 drivers/rpmsg/virtio_rpmsg_bus.c,这是我需要修补的文件。

我还发现了三个目录都有这个c文件:

find . -name virtio_rpmsg_bus.c
./build_wayland/tmp/work-shared/imx8mm-var-dart/kernel-source/drivers/rpmsg/virtio_rpmsg_bus.c
./build_wayland/tmp/work/aarch64-fslc-linux/linux-libc-headers/5.4-r0/linux-5.4/drivers/rpmsg/virtio_rpmsg_bus.c
./build_wayland/tmp/work/aarch64-mx8mm-fslc-linux/linux-imx-headers/5.4-r0/git/drivers/rpmsg/virtio_rpmsg_bus.c

这些菜谱文件夹有recipes-kernel/linux目录

sources/meta-freescale-3rdparty/recipes-kernel
sources/meta-freescale/recipes-kernel
sources/poky/meta-skeleton/recipes-kernel
sources/poky/meta/recipes-kernel
sources/poky/meta-yocto-bsp/recipes-kernel
sources/meta-virtualization/recipes-kernel
sources/meta-variscite-fslc/recipes-kernel
sources/meta-openembedded/meta-gnome/recipes-kernel
sources/meta-openembedded/meta-initramfs/recipes-kernel
sources/meta-openembedded/meta-networking/recipes-kernel
sources/meta-openembedded/meta-oe/recipes-kernel

我不知道这些食谱中的哪一个可能正在构建我的 c 文件 virtio_rpmsg_bus.c

yocto bitbake yocto-recipe
2个回答
0
投票

所以我自己还没有完成构建,但这是我可以收集的内容(在某些点上这有点遥远......希望一切顺利,如果情况并非如此,我愿意讨论)。

查找要修补的配方:在我看来,要找到 Yocto 中的配方的作用通常很棘手。如果我没记错的话(很有可能)你应该有一个名为

meta-xilinx-bsp
的层。在这一层中应该有
recipes-kernel/linux/linux_xlnx_[version].bb
。这应该是补丁应该去的配方。

应用补丁:要应用补丁,最简单的方法是附加配方。

  • 创建文件夹结构:在您自己的图层中,您需要重现原始图层中配方所在的结构。这里:
    meta-myLayer/recipes-kernel/linux/
    。在此文件夹中创建
    linux-xlnx_%.bbappend
    .
  • 创建一个 .bbappend 文件: 通过此结构和名称 yocto 将知道这是对原始
    linux-xlnx_[verion_number].bb
    配方的追加。此处放置的是
    %
    ,而不是版本号。这是一个通配符,将附加任何版本的
    linux-xlnx
    配方。如果您只想附加特定版本,可以将
    %
    替换为版本号。
  • 将补丁文件添加到您的目录中: 为此,请在您的食谱旁边创建一个名为
    linux-xlnx
    的文件夹。并在此文件夹中通过复制您拥有的内容来创建补丁文件,例如
    my-xlnx-patch.patch
  • 在.bbappend中引用补丁文件:
    linux-xlnx_%.bbappend
    中指定文件路径,如下所示:
    FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
    SRC_URI_append = " \
         file://my-xlnx-patch.patch \
         "
    

我不是100%确定你需要第一行,但这会告诉yocto你有这个食谱的补丁文件,如果我没记错的话yocto会负责应用它。


0
投票

您能否分享一下使用所有命令添加补丁的完整步骤...!!!!!

谢谢你 拉扎

© www.soinside.com 2019 - 2024. All rights reserved.