为linux内核打补丁的方法
在Linux内核邮件列表中一个经常被问到的问题就是怎样为Linux内核打一个补丁,或者更具体一点说,
存在这么多的主干/分支,一个补丁到底要打在哪个版本的基础内核上。希望这篇文档能够为你解释明白这
一点。
除了解释怎样应用以及卸载补丁以外,在这里还提供了一个不同内核树(以及如何为它们打上特
定补丁)的简要介绍。
什么是补丁?
----------
一个补丁就是一个文本文档,这个文档包含了在两个不同版本的源代码树之间的变化。
补丁是通过diff应用程序来创建的。
为了正确地打上一个补丁,你需要知道这个补丁是从哪个基础版本产生出来的以及这个补丁将要把
目前的源代码树变化到什么新的版本。这些信息或者会出现在补丁文件的原数据中,或者可能
从文件名中推断出来。
怎样打补丁和卸载补丁
-------------------
可以使用patch程序来打一个补丁。patch程序读取一个diff(或者patch)文件,然后把文件中
描述的变化内容应用到代码树上。
Linux内核中的补丁是相对于保存内核源代码目录的父目录而生成的。
这就意味着:patch文件中的文件路径包含了它所基于的内核源文件目录的名字(或者像是"a/"和"b/"
之类的其它名字)。
由于这很可能和你本地机器上的内核源代码目录的名字不匹配(但是对于查看一个没有标签的补丁所
基于的内核版本是非常有用的)。你应该切换到你的内核源代码目录,并且在打补丁的时候去掉patch
中文件名字路径的第一个分量(patch命令的-p1参数可以完成这个任务)。
为了卸载掉一个以前已经打上的补丁,使用-R参数来打补丁。
file:///D|/applying-patches.txt(第 1/9 页)2006-8-15 18:22:12
file:///D|/applying-patches.txt
于是,如果你使用如下的命令来打补丁:
patch -p1 )来产生一个文件来表示
两个补丁文件之间之间的不同,然后打上这个文件。这可以使你从一个像2.6.12.2的版本一步
就可以到达版本2.6.12.3。-z标志甚至可以使你送给interdiff一些使用gzip或者bzip2压缩的
格式文件而不用使用zcat或者bzcat或者手动解压缩。
linuxidc.com" target="_blank">
为linux内核打补丁的方法
内容版权声明:除非注明,否则皆为本站原创文章。