在配方中为SRC_URI添加多个补丁 - Yocto

时间:2016-12-21 15:46:24

标签: patch yocto

我想知道是否有一种简单的方法可以在Yocto中为SRC_URI添加补丁。我正在使用Yocto为定制板创建BSP。我有几百个Linux内核和裸机补丁。

要包含Linux内核的补丁,我创建了一个.scc文件。在.scc文件中,我包含了所有必需的补丁。内核配方中的SRC_URI选项如下所示:

SRC_URI += "https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.0.9.tar.xz \
        file://kernelpatch.scc \
        file://kernel-4.0.9.cfg \
        "

对于裸机,我试图做同样的事情,但它似乎不支持.scc文件。所以现在我已经使用

包含了所有的100多个补丁

file://patchname.patch

file://patches/0001-drivers.patch \
file://patches/0002-hw_random-C.patch \
.
.
.
.
file://patches/0304-usb-fastbootupport.patch \

是否可以选择将所有补丁包含在内核中的单行中。

3 个答案:

答案 0 :(得分:5)

转到meta-layer/recipes-kernel/linux创建像patches这样的目录。将所有修补程序复制到此patches目录。

  

创建linux-ti_%.bbappend文件并添加以下行

FILESEXTRAPATHS_prepend := "${THISDIR}:"
SRC_URI = "file://patches/* "

这将在单个实例中获取所有补丁并应用于内核。

答案 1 :(得分:0)

您可以使用通配符来包含您的文件:file://*我认为这不是最佳选择,但是当您拥有大量文件时,它可能很有用。

答案 2 :(得分:0)

正如@Pouet_forever“所说”,这不是通配符补丁文件的最佳方式,而不是这个你可以使用bitbake方法与元数据文件,如.inc文件。我的意思是你可以将它们全部提取到一个变量,然后在你的主.bb配方中包含这个文件。请查看这个示例,将不同的补丁保存在一个文件中,可以很容易地在许多食谱中使用: 包含补丁的.inc文件 - https://github.com/kraj/meta-clang/blob/master/recipes-devtools/clang/common.inc 在食谱中使用它:https://github.com/kraj/meta-clang/blob/master/recipes-devtools/clang/libcxx_git.bb