接前文, 已经配置好 git 工具:
https://www.daodaodao123.com/?p=934
1. 订阅邮件列表:
不订阅,发 sendemail 会被自动弹回;
订阅你感兴趣的模块,最好用 gmail 邮箱,国内大部分邮箱都会被过滤掉;
http://vger.kernel.org/vger-lists.html
点击对应模块的 subscribe,会收到一封确认邮件;恢复确认邮件,订阅成功会受到邮件通知;
订阅方法很简单,按提示操作即可,网上也很多教程;这里说点经验,点击 subscribe 可能有些延迟,一般几个小时会有回应;用 gmail 订阅,基本不会失败;
不要重复订阅,不然会受到多个确认邮件;
2. 从 linux-next 获取版本制作 patch
linux-next 是下一个稳定版的演进版本,这里提交 patch,更容易合进主干树;
2.1 下载源码
git clone https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/
专门建个分支来制作补丁
git check -b xxx_branch
2.2 修改代码,提交 commit
git add .
//- s 会附带上邮件和用户名,这在 patch 中是必须的
git commit -s -m "comments..."
2.3 生成补丁,
用 git 做特有补丁,更方便用 gmail 发送
git format-patch -1 // 最近两个 commit 对比
git format-patch -M master // 跟 master 分支对比
2.4 补丁检查
对补丁进行代码格式检查;
./scripts/checkpatch.pl xxxfix.patch
必须 checkpatch 零错误,零警告才能发送
2.5 发送 patch
(1) 获取 maintainer 列表:
./scripts/get_maintainer.pl 脚本会根据补丁修改,自动检测出所属模块及邮件列表
$ ./scripts/get_maintainer.pl 0001-xxx.patch
Felix Fietkau <nbd@nbd.name> (maintainer:MEDIATEK MT76 WIRELESS LAN DRIVER)
Lorenzo Bianconi <lorenzo.bianconi83@gmail.com> (maintainer:MEDIATEK MT76 WIRELESS LAN DRIVER)
Ryder Lee <ryder.lee@mediatek.com> (reviewer:MEDIATEK MT76 WIRELESS LAN DRIVER)
Kalle Valo <kvalo@codeaurora.org> (maintainer:NETWORKING DRIVERS (WIRELESS))
"David S. Miller" <davem@davemloft.net> (maintainer:NETWORKING DRIVERS)
Jakub Kicinski <kuba@kernel.org> (maintainer:NETWORKING DRIVERS)
Matthias Brugger <matthias.bgg@gmail.com> (maintainer:ARM/Mediatek SoC support)
linux-wireless@vger.kernel.org (open list:MEDIATEK MT76 WIRELESS LAN DRIVER)
netdev@vger.kernel.org (open list:NETWORKING DRIVERS)
linux-arm-kernel@lists.infradead.org (moderated list:ARM/Mediatek SoC support)
linux-mediatek@lists.infradead.org (moderated list:ARM/Mediatek SoC support)
linux-kernel@vger.kernel.org (open list)
(2) 发送补丁
--to:maintainer
--cc: 邮件列表
git send-email --to "xxx@ss.com" --to "yyyy@y.com" --cc "linux-kernel@kernel.ogr" 001xxx.patch
3. 收到评审反馈后
3.1 需要修改 patch
根据意见修改后,重新制作补丁,提交第二版 patch,要更新版本号:
git format-patch HEAD^ --subject-prefix="PATCH v2"
3.2 不需要修改 patch
如果只是重新发送(内容不变):
git format-patch HEAD^ --subject-prefix="RESEND"
4. 查看 patch,review 的网站
5.patch 被接受的标志
当出现明显的关键词如:"merge","Acked-by:", 则表明 patch 将要合并。
6. 参考文献
https://www.kernel.org/doc/html/latest/process/submitting-patches.html
ps: 记录一下
4.18 发的两个 patch,已经合进 linux-next20220505 版本,接下来就等合进下个 5.18-rc6 版本;
今天 5.9 号,看到 patch 已经合入 5.18-rc6 版本;接下来,等待合进祖师爷的树 stable 版本。
合进稳定版 stable 链接: 点击这里