linux上游提交步骤

linux上游提交步骤

下载linux内核源码

1
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
1
git clone https://mirrors.tuna.tsinghua.edu.cn/git/linux.git

commit信息要求

  • 第一部分:以子系统名字开头,例如dev/parport,注意冒号后面加个空格,这一部分主要描述此patch大概做了什么事情
  • 第二部分:详细解释你为何要做这个修改以及怎么修复问题的
  • 第三部分:添加提交人

这三部分之间都要有一个空行隔开 ,每行不要超过75个字符

然后生成patch git format-patch -1

检查patch的格式

1
./scripts/checkpatch.pl 0001-XXX.patch

获取maintainer邮箱

1
./scripts/get_maintainer.pl -f kernel/power/console.c

配置.gitconfig

在发送patch之前需要先配置好gitconfig

1
vim ~/.gitconfig

添加以下内容

1
2
3
4
5
6
7
[user]
email = tom@tom.com
name = tom
[sendemail] smtpencryption = ssl smtpserver = smtp.exmail.qq.com smtpserverport = 465 smtpuser = XXX@XXX.com
smtppass = XXXXXX
[core]
editor = vim

或者使用命令进行设置

1
2
3
4
5
git config --global sendemail.smtpencryption tls			//加密方式
git config --global sendemail.smtpserver smtp.263.net //smtp发送邮件服务器
git config --global sendemail.smtpserverport 465 //smtp发送邮件服务器端口
git config --global sendemail.smtpuser <账号> //公司邮箱账号
git config --global sendemail.smtppass <密码> //公司邮箱密码

以上信息通过自己使用的邮箱获取,例如企业微信如下所示

发送邮件

使用git send-email发送邮件

1
2
3
4
sudo apt install git-email

git send-email -to pavel@kernel.org,len.brown@intel.com -cc linux-kernel@vger.kernel.org,linux-pm@vger.kernel.org 0001-XXX.patch

回复邮件

对于上游如果看到你的邮件以后你可以进行回复,发送的邮件在Linux内核邮件列表归档查看,在最下面可以看到回复的方法

1
2
3
4
5
6
7
8
9
git send-email \
--in-reply-to=20250519000000.00000-0-xxx@xxx.com \
--to=xxx@xxx.com \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=pavel@kernel.org \
--cc=rafael@kernel.org \
/path/to/YOUR_REPLY

更新patch版本

对于上游给出的建议我们可能需要修改自己的补丁进行patch的版本更新

生成patch v2 给Subject添加头信息[PATCH v2]

1
git format-patch -v2 -1

修改commit信息

在Signed-off-by下面关于patch版本的修改

1
2
3
4
5
6
7
8
9
10
11
Signed-off-by: tom@tom.com
---
Changes in v2:
- Added how to fix this issue.
- Link to v1: https://lore.kernel.org/all/20250519000000.00000-0-xxx@xxx.com


Signed-off-by: Author <author@mail>
---
V2 -> V3: Removed redundant helper function
V1 -> V2: Cleaned up coding style and addressed review comments

重发邮件

由于上游每天收到很多邮件,可能会导致我们的邮件没有被看见或者及时回复,通常为 2-3 周我们会收到回复,如果没有回复我们可以重新发送patch,在重新发送邮件的时候至少等待一周时间,在合并窗口等繁忙时段可能会更长。

1
2
3
4
vim XXX.patch

Subject: [PATCH v2] #修改此行
Subject: [PATCH v2 RESEND]

上游参考手册

更多详细方法可以参考submitting-patches.rst


linux上游提交步骤
https://tomwithkernel.github.io/upstream/linux上游提交方法/
作者
Tom
发布于
2025年5月19日
更新于
2025年5月19日
许可协议