如何向linux提交第一个patch

2,025次阅读
没有评论

接前文,已经配置好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的网站

https://patchwork.kernel.org/

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链接:点击这里

正文完
 0
admin
版权声明:本站原创文章,由 admin 于2022-04-29发表,共计2252字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
粤ICP备2021172357号-1