Yocto中进行小的源代码更改的最佳实践是什么?

8

在poky/build/tmp/work目录中编辑源代码是一个好的实践吗?因为如果我们意外地清除状态,更改将被删除。

另一种方法是与食谱文件一起在“files”目录中编辑源代码,但由于大量文件的存在,大多数代码都以压缩形式存在,因此我们需要解压缩和再次压缩才能更改一行代码。

那么,在Yocto中编辑源代码的最佳方法是什么?

2个回答

12
如果你的问题是关于永久性更改,那么Dan的回答就是要遵循的。也就是在自己的层中将<recipe name>.bbappend添加到配方中,在其中添加 SRC_URI += "file://mypatch1.patch \ file://mypatch2.patch \ " 枚举所有需要的路径。
如果有大量的补丁,可能最好的方法是分叉上游存储库,并在分叉中维护自己的分支。在这种情况下,您可能希望引用自己的存储库,而不是上游存储库或tarball。
另一方面,如果您的问题更多地涉及正在进行的工作;那么当然,将其放在 oky/build/tmp/workoky/build/tmp/work/xxxx 中会起作用。(而且很可能是大多数人已经做了很长时间的事情)。
然而,在最近的版本(从1.8,fido开始),有一个更好的方法。这个新工具叫做devtool。你可以按照以下步骤使用它: devtool modify -x <recipe-name> <path-to-unpack-source> 解压源代码并创建一个新的bbappend以从解压后的源代码构建。它还在源目录中创建了一个git仓库。
现在您可以修改源代码。您可以通过运行devtool build <recipe-name>来测试构建修改后的源代码。一旦满意,使用git add ...git commit将更改提交到本地存储库。一旦将更改提交到本地存储库,您可以运行: devtool update-recipe <recipe-name> 更新相关配方。当您满意时,可以运行devtool reset <recipe-name>来删除临时bbappend。
请参见:Yocto手册上的修改源代码

1

@Anders等人提供了答案,但忘了一件事:如果你使用的是不同于原始层的层,则devtool将创建bbappend文件。 - Ariel M.

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