如何修补Linux内核?

时间:2010-11-17 12:25:14

标签: android linux-kernel

我遇到了严重的问题 我手里拿着什么:

  • Linux内核2.6.29,包含Android Eclair补丁和一些特定于主板的补丁(作为 .patch 文件)。
  • 使用Android Froyo补丁的Linux Kernel 2.6.32。

我想要实现的目标:

  • 我想将电路板特定补丁与Android Froyo补丁合并到我的Linux内核2.6.32。

我无法知道如何做到这一点。我尝试将Board特定补丁直接应用到2.6.32内核,但失败了很多错误。

请指导我一些有价值的指示。

谢谢,

1 个答案:

答案 0 :(得分:2)

没有看到具体的错误,很难确定。

Patch将为每个文件/补丁提供一个“.rej”文件,该文件向您显示它尝试执行的操作以及找到的内容,从而导致失败。它通常会告诉您它创建了这些文件,以便您可以修复它们。

你可能遇到的是更原始的东西 - 因为补丁甚至没有找到正确的文件。

这通常是由于路径在补丁文件中的布局不同而导致的,因为它们是您运行它的方式。 (我试着举个例子)。

如果查看要修补的每个文件的每个文件条目,它将具有“源”和“目标”文件名,如:

  

/original/src/drivers/mydriver.c   /destination/src/drivers/mydriver.c

这意味着 - 例如,您的项目位于名为“project”的目录中。您当前的工作目录将是“project”,您正在修补的文件将是:

  

/project/src/drivers/mydriver.c

此补丁可以使用。

比如说,你运行了相同的补丁,但你当前的工作目录是:

  

/项目/ SRC

当你运行补丁时,它会寻找一个名为:

的文件
  

/project/src/src/drivers/mydriver.c

没有什么可行的。

有两种补救措施:

  1. 确保从正确的目录级别运行补丁。

  2. 在补丁中使用“-p {num}”标志 - 这实际上告诉它忽略补丁文件中每个文件名开头的一系列目录。

  3. 您还可以发布一些您获得更多帮助的错误...