答案1
要应用此形式的补丁:
diff --git a/include/linux/pm_qos.h b/include/linux/pm_qos.h
index 0f65d36..ff59753 100644
--- a/include/linux/pm_qos.h
patch -p1
,必须满足几个条件。
您必须位于内核源代码树的顶级目录中。该
-p1
选项将从文件名中删除一个路径部分,以便a/include/linux/pm_qos.h
将其视为include/linux/pm_qos.h
.这是一个必须从当前工作目录解析的相对路径。该文件
include/linux/pm_qos.h
必须存在于您尝试修补的内核版本中。
如果不满足 1 和 2,则将patch
找不到要应用的文件,并以交互方式要求您提供路径名。
那么当然:
- 该
include/linux/pm_qos.h
文件必须与生成补丁的文件“足够相似”,否则补丁将无法应用。
相同的注释分别适用于补丁中提到的所有其他文件。
如果您尝试修补与生成补丁的版本不同的内核版本,恐怕您会“不知所措”;这需要对内核开发有一定程度的了解(取决于应用补丁所需的调整有多复杂)。
有时我们会发现内核文件刚刚被重命名;如果补丁中提到的文件被重命名为新名称,则补丁将相当干净地应用。另一方面,在最坏的情况下,您必须真正了解补丁在做什么(可能通过查看制作补丁的原始内核),然后在目标内核中从头开始实现相同的逻辑。 “中等难度”时,只需处理变量名、函数名、结构体成员名被重命名等问题即可;如果补丁仅遵循新名称,则该补丁将适用。