为内核制作补丁patches

这篇博客讲述了如何为Linux内核制作补丁。通过使用`diff`命令以统一格式对比原始内核(linux-x.y.z)和修改后的内核(linux),生成名为`my-patch`的补丁文件。补丁应用时使用`patch -p1 < my-patch`,并且介绍了`diffstat`工具来展示补丁的改动统计。最后提到了补丁提交的规范,包括在LKML上发布和发送给内核维护者,邮件主题应注明'[PATCH]'并附带详细描述和技术修改说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需要为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或者是作为附件来发送。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值