做人呢,最紧要就系开心啦

如何向linux提交第一个patch

1,894次阅读
没有评论

接前文, 已经配置好 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 链接: 点击这里

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