您的位置:首页 > 其它

为内核制作补丁patches

2016-09-26 20:36 246 查看
需要为kernel制作补丁
原始的kernel命名为linux-x.y.z
作了修改的kernel就命名为linux
为2个生成补丁
diff –urN linux-x.y.z/ linux/ > my-patch
-u参数指定将会使用统一的diff格式,如果没有这个参数的话,这个补丁将会是很丑陋、不适合阅读的。
-r参数指定遍历的diff所有的目录。
-N参数指定在修改中出现的新文件应该包含在diff中。
如果你只想diff一个文件,那么你可以:
diff –u linux-x.y.z/some/file linux/some/file > my-patch
有时候需要在kernel目录的子目录下使用diff来生成非常有用的补丁,
甚至是在目录的名称不一样,这种情况下,在源码的根目录下使用补丁:
patch –p1 < ../my-patch
这里,补丁的名称是my-patch,并且是在当前目录下的子目录里产生的。-p1标志指定第一个目录的名称被从补丁上分离出来,这样你就可以使用补丁而不用在乎补丁生成者的命名习惯和约定。
 
有用的工具diffstat,生成补丁修改部分的直立图(增加的行和删除的行),用来生成你的补丁的输出:
diffstat –p1 my-patch
通常,包含该输出在你发送补丁给lkml的时候是很有用的,
因为patch命令会忽略所有的行直到diff被检测到了,你甚至可以在补丁的最开头加上一小段描述。
如何提交补丁?
只有当补丁经过测试或者改正之后才能发送给kernel的维护者。
一般都是先在lkml上发布和发送给相应模块的维护者。
邮件的主题的格式是:[PATCH] brief description
邮件的内容是描述技术上的详细修改和理由,尽量的具体。
最佳的做法是将补丁嵌入到邮件中,在邮件的末尾。要明白邮件收发客户端是否会将你的补丁编码,若是这样的话,那你要使用inline、preformat或者是作为附件来发送。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  diff 内核 补丁 kernel