我为我的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 中的配方的作用通常很棘手。如果我没记错的话(很有可能)你应该有一个名为
meta-xilinx-bsp
的层。在这一层中应该有recipes-kernel/linux/linux_xlnx_[version].bb
。这应该是补丁应该去的配方。
应用补丁:要应用补丁,最简单的方法是附加配方。
meta-myLayer/recipes-kernel/linux/
。在此文件夹中创建 linux-xlnx_%.bbappend
.linux-xlnx_[verion_number].bb
配方的追加。此处放置的是 %
,而不是版本号。这是一个通配符,将附加任何版本的 linux-xlnx
配方。如果您只想附加特定版本,可以将 %
替换为版本号。linux-xlnx
的文件夹。并在此文件夹中通过复制您拥有的内容来创建补丁文件,例如my-xlnx-patch.patch
linux-xlnx_%.bbappend
中指定文件路径,如下所示:
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI_append = " \
file://my-xlnx-patch.patch \
"
我不是100%确定你需要第一行,但这会告诉yocto你有这个食谱的补丁文件,如果我没记错的话yocto会负责应用它。
您能否分享一下使用所有命令添加补丁的完整步骤...!!!!!
谢谢你 拉扎