pra*_*tri 8 embedded linux-kernel buildroot
我正在开发一个嵌入式系统,它使用buildroot作为构建内核和根文件系统的工具.我想对这个内核源代码树应用一些补丁,有人能告诉我buildroot如何应用补丁吗?
扩展@ pradeepchhentri的答案.Quilt将查找与*.mk文件位于同一文件夹中的文件.要构造适当的文件:
将您的源包从原始文件扩散到一个名为的文件中
packagename - number - description .patch
哪里
packagename - 必须与包名相同
number - 如果要应用多个补丁,则应该应用补丁的顺序(否则将按字母顺序应用)
说明 - 可以是任何自由文本
将此文件放在与[packagename] .mk文件和package/Config.in文件相同级别的包中.
如果你这样做,不要忘记吹掉你的构建文件或做一个[package] -rebuild.如果正确完成,您应该看到"修补..."消息.
有关buildroot项目中补丁文件的一些详细信息:
你必须
diff -u "old_file" "new_file" > file.patch
Run Code Online (Sandbox Code Playgroud)当站在您的包tar.gz的提取位置正上方时,定义在
PACKAGE_NAME_SOURCE
Run Code Online (Sandbox Code Playgroud)
这意味着,您的文件路径必须包含提取的包文件夹名称。
如果您想知道“old_file”路径是否与原始路径不同 - 别担心,重要的是“new_file”路径和名称 - 它应该与您提取的包相匹配。
已在 buildroot 中使用/定义的补丁的命名约定(所有部分均用“-”号分隔):
例子:
0001-configure.ac-convert-AC_TRY_COMPILE-AC_COMPILE_IFELS.patch
Run Code Online (Sandbox Code Playgroud)
无需修改配置文件,所有补丁都会自动尝试应用。
在研究了 buildroot 架构之后,我了解到 buildroot 使用 quilt 工具来应用补丁。quilt 跟踪“patches”目录中名为“series”的文件中的所有补丁。您必须将补丁保存在该目录中。并按照您希望应用补丁的顺序将补丁条目添加到系列文件中,使首先应用的补丁保持在顶部。
这样,当您运行 buildroot makefile 时,它将自动应用系列文件中列出的补丁。