Embedded 如何将修补程序应用于Buildroot中的包?
我正在开发一个嵌入式系统,它使用buildroot作为构建内核和根文件系统的工具。我想在这个内核源代码树上应用一些补丁,有人能告诉我buildroot是如何应用补丁的吗?在研究了buildroot体系结构之后,我知道buildroot使用了Cutter工具来应用补丁。Cutter跟踪“patches”目录中名为“series”的文件中的所有补丁。您必须将修补程序保存在此目录中。并按应用修补程序的顺序在序列文件中添加修补程序条目,使修补程序始终位于顶部Embedded 如何将修补程序应用于Buildroot中的包?,embedded,linux-kernel,buildroot,Embedded,Linux Kernel,Buildroot,我正在开发一个嵌入式系统,它使用buildroot作为构建内核和根文件系统的工具。我想在这个内核源代码树上应用一些补丁,有人能告诉我buildroot是如何应用补丁的吗?在研究了buildroot体系结构之后,我知道buildroot使用了Cutter工具来应用补丁。Cutter跟踪“patches”目录中名为“series”的文件中的所有补丁。您必须将修补程序保存在此目录中。并按应用修补程序的顺序在序列文件中添加修补程序条目,使修补程序始终位于顶部 这样,当您运行buildroot makef
这样,当您运行buildroot makefile时,它将自动应用系列文件中列出的修补程序。以展开@pradeepchhentri的答案。Cutter将查找与*.mk文件位于同一文件夹中的文件。要构造适当的文件,请执行以下操作:
如果你这么做的话,别忘了吹走你的构建文件或进行[package]-重建。如果操作正确,您应该会看到一条“Patching…”消息。有关buildroot项目中修补程序文件的一些详细信息:
diff -u "old_file" "new_file" > file.patch
PACKAGE_NAME_SOURCE
这意味着,文件的路径必须包含提取的包文件夹名称
- 4位修补程序优先级(从0001开始)
- 目标文件名
- 修补的原因
- .斑块扩展
0001-configure.ac-convert-AC_TRY_COMPILE-AC_COMPILE_IFELS.patch
使用
*\u OVERRIDE\u SRCDIR
并跟踪子模块中的所有内容
我强烈建议您不要使用修补程序,而是:
myproject/
.git/
submodules/buildroot/
submodules/source_of_my_package/
只需在子模块中跟踪您的源代码,该子模块指向您的项目分支,并在顶部显示您的补丁
这将使一切变得更理智,更容易跟踪
更多信息,请访问:
BR2\u全局\u补丁\u目录
树外补丁
目录结构:
.git/
buildroot子模块,如所述:buildroot/
global\u patch\u dir/packagename/0001 my test.patch
BR2_GLOBAL_PATCH_DIR=../global_patch_dir
然后使用以下工具进行构建:
cd buildroot
make
在生成之前,应将该修补程序应用于
output/build/packagename-1.0.0/
。Buildroot不使用coult(至少在过去几年中没有使用它)。提到了coult使用的“系列”文件。当前状态为:“以前,也可以在程序包目录中添加一个系列文件(如被使用的文件)。在这种情况下,序列文件定义修补程序应用程序顺序。这已弃用,并将在将来删除。不要使用序列文件。”所以这个答案很快就会被弃用。另外的小提示对我有所帮助,所以我把它放在这里:。