在Yocto中对源代码进行小改动的最佳实践是什么

在Yocto中对源代码进行小改动的最佳实践是什么,yocto,bitbake,Yocto,Bitbake,在poky/build/tmp/work目录中编辑源代码是一种好的做法吗?因为如果我们不小心清除了状态,更改将被擦除 或者,我们可以在“files”目录中编辑源代码以及配方文件,但由于这里的大部分代码都是压缩格式的,因为有大量的文件,所以我们需要再次解压和压缩来更改一行代码 那么,在yocto中编辑源代码的最佳方法是什么呢 如果您一直在手动“修补”给定的包,我建议您考虑在单独的层中实现.bbappend文件,该文件使用do_patch函数()应用您的修补程序。如果您的问题是关于永久性更改,那么D

在poky/build/tmp/work目录中编辑源代码是一种好的做法吗?因为如果我们不小心清除了状态,更改将被擦除

或者,我们可以在“files”目录中编辑源代码以及配方文件,但由于这里的大部分代码都是压缩格式的,因为有大量的文件,所以我们需要再次解压和压缩来更改一行代码


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

如果您一直在手动“修补”给定的包,我建议您考虑在单独的层中实现.bbappend文件,该文件使用do_patch函数()应用您的修补程序。

如果您的问题是关于永久性更改,那么Dan的答案将是下面的答案。也就是说,在您自己的层中添加一个
.bbappend
,添加到配方中

SRC_URI+=”file://mypatch1.patch \
file://mypatch2.patch \
"
枚举您需要的所有修补程序

如果有大量补丁程序,那么分叉上游存储库并在分叉中维护自己的分支可能是有意义的。在这种情况下,您可能希望引用自己的存储库,而不是上游存储库或tarball

奥托,如果你的问题更多的是关于正在进行的工作;当然,在
oky/build/tmp/workky/build/tmp/work/xxxx
中进行操作也可以。(很可能,这是大多数人长期以来一直在做的事情)

然而,在最近的版本中有一种更好的方法(来自1.8,fido)。新工具名为
devtool
。您可以按如下方式使用它:


devtool修改-x
解压缩源代码并从解压缩的源代码创建新的bbappend以进行构建。它还在源目录中创建一个git repo

现在可以修改源代码了。您可以通过运行
devtool build
来测试生成修改后的源代码。满意后,使用
git add…
git commit
将更改提交到本地回购。提交对本地回购的更改后,您可以运行:

devtool更新配方
更新有问题的配方。当您满意时,可以运行
devtool reset
删除临时bbappend


另见:

@Anders等人。答案是,但是没有提到,如果您使用与原始层不同的层,devtool将创建bbappend文件。