linux内核补丁提交
Linux内核是最大,也是发展最快的开源项目之一,它由约53,600个文件和近2000万行代码组成。 Linux内核在全球范围内有15600多名程序员参与了该项目,Linux内核遵循维护者模型进行协作。
在本文中,我将提供一个快速核对清单,其中列出了您进行第一个内核贡献时所涉及的步骤,并介绍了在提交补丁之前应了解的知识。 要更深入地了解贡献您的第一个补丁的提交过程,请阅读KernelNewbies First Kernel Patch教程 。
为内核做贡献
步骤1:准备系统。
本文中的步骤假定您的系统上具有以下工具:
步骤2:下载Linux内核代码存储库:
git clone -b staging-testing
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
复制您当前的配置:
cp /boot/config-`uname -r`* .config
步骤3:构建/安装内核。
make -jX
sudo make modules_install install
步骤4:建立分支并切换至该分支。
git checkout -b first-patch
步骤5:更新您的内核以指向最新的代码库。
git fetch origin
git rebase origin/staging-testing
步骤6:更改代码库。
使用make
命令重新编译以确保您的更改不会产生错误。
步骤7:提交更改并创建补丁。
git add <file>
git commit -s -v
git format-patch -o /tmp/ HEAD^
该主题由以冒号分隔的文件名路径组成,其后是修补程序按命令式所做的操作。 在空白行之后是补丁的说明以及必须签署的标记,最后是补丁的区别。
这是一个简单补丁的另一个示例:
接下来, 使用来自命令行的电子邮件 (在本例中为Mutt)发送补丁:
mutt -H /tmp/0001-<whatever your filename is>
get_maintainer.pl脚本 。
提交第一个补丁之前要了解什么
- Greg Kroah-Hartman的暂存树是提交您的第一个补丁的好地方,因为他接受来自新贡献者的简单补丁。 当您熟悉补丁发送过程时,可以发送复杂性更高的特定于子系统的补丁。
- 您也可以从更正代码中的编码样式问题开始。 要了解更多信息,请阅读Linux内核编码样式文档 。
- 脚本checkpatch.pl为您检测编码样式错误。 例如,运行:
perl scripts/checkpatch.pl -f drivers/staging/android/* | less
- 您可以完成开发人员遗漏的TODO:
find drivers/staging -name TODO
- Coccinelle是用于模式匹配的有用工具。
- 阅读内核邮件存档 。
- 浏览linux.git日志,以查看以前的作者的启发。
- 注意:请勿置顶与补丁的审阅者交流! 这是一个例子:
错误的方法:
克里斯,
是的,让我们安排明天的会议在二楼。
> 2013年4月26日,星期五,上午9:25,克里斯写道:
>约翰,我有一些问题:
> 1.您想安排明天的会议吗?
> 2.在办公室的哪一层?
> 3.什么时候适合您?(请注意,最后一个问题在答复中无意中没有得到回答。)
正确方法:
克里斯,
请在下面查看我的答案...
> 2013年4月26日,星期五,上午9:25,克里斯写道:
>约翰,我有一些问题:
> 1.您想安排明天的会议吗?
是的,明天很好。
> 2.在办公室的哪一层?
让我们将其保留在二楼。
> 3.什么时候适合您?
早上09:00可以。(所有问题都得到了回答,这样可以节省阅读时间。)
- Eudyptula挑战是学习内核基础知识的好方法。
要了解更多信息,请阅读KernelNewbies First Kernel Patch教程 。 之后,如果您仍然有任何疑问,请在kernelnewbies 邮件列表或#kernelnewbies IRC频道中询问 。
翻译自: https://opensource.com/article/18/8/first-linux-kernel-patch
linux内核补丁提交