我想知道是否有一种简单的方法可以在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 \
是否可以选择将所有补丁包含在内核中的单行中。
答案 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