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 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]
修改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