如何提交kernel patch

1. 配置git

git config --global --replace-all user.name "michael"						//git 代码提交的名字
git config --global --replace-all user.email "michael@gmail.com"			//git 代码提交的邮箱
git config --global --replace-all format.signoff true						//使用git commit -s 提交时会自动加上signed-off-by
git config --global --replace-all log.date local
git config --global --replace-all http."sslVerify" false

git config --global --replace-all sendemail.smtpserver mail.google.com
git config --global --replace-all sendemail.smtpserverport 25
git config --global --replace-all sendemail.smtpencryption starttls
git config --global --replace-all sendemail.smtpuser michael@gmail.com			//设置发信邮箱
git config --global --replace-all sendemail.smtppass yourpassword				//设置发信邮箱密码
git config --global --replace-all sendemail.suppresscc self						//避免发送给自已
git config --global --replace-all sendemail.confirm auto						//自动确认,如果是初次使用,这条建议先不设置。

查看配置
git config --list

2. 拉取代码

// 这里以mips 为例
git clone https://git.kernel.org/pub/scm/linux/kernel/git/mips/linux.git mips_git	
cd mips_git
git branch -r		
    origin/HEAD -> origin/master
    origin/master
    origin/mips-fixes
    origin/mips-next
git checkout -b mips-next origin/mips-next			//拉取mips 分支
git checkout -b dev									//创建自已开发用的分支,以免污染原有分支

3. 制作补丁

git format-patch HEAD^										//生成patch
./scripts/checkpatch.pl 0001-MIPS-just-for-test.patch		//检测patch 格式
total: 0 errors, 0 warnings, 8 lines checked

4. 测试补丁

git checkout mips-next
git checkout -b test								//从mips-next分支的基础上创建测试分支
git apply --check 0001-MIPS-just-for-test.patch		//检测patch
git am 0001-MIPS-just-for-test.patch				//应用patch 之后就是编译验证

5. 提交补丁

//获取维护者和邮件列表
./scripts/get_maintainer.pl 0001-MIPS-just-for-test.patch					
    Huacai Chen <chenhc@lemote.com> (maintainer:MIPS/LOONGSON64 ARCHITECTURE)
    Jiaxun Yang <jiaxun.yang@flygoat.com> (maintainer:MIPS/LOONGSON64 ARCHITECTURE)
    Thomas Bogendoerfer <tsbogend@alpha.franken.de> (supporter:MIPS)
    Paul Cercueil"<paul@crapouillou.net> (supporter:MIPS)
    Florian Fainelli"<f.fainelli@gmail.com> (supporter:MIPS)
    linux-mips@vger.kernel.org (open list:MIPS/LOONGSON64 ARCHITECTURE)
    linux-kernel@vger.kernel.org (open list)

//发送补丁邮件给自己,确认邮件是否有问题
git send-email *.patch --to "michael <michael5hzg@163.com>" --cc "michael <michael5hzg@gmail.com>"

//发送补丁邮件给维护者和邮件列表
git send-email *.patch --to "" --to ""Thomas Bogendoerfer"<tsbogend@alpha.franken.de>;" --to ""Florian Fainelli"<f.fainelli@gmail.com>;" --to "Huacai
Chen <chenhc@lemote.com>" --to "Jiaxun Yang <jiaxun.yang@flygoat.com>" --cc linux-mips@vger.kernel.org --cc linux-kernel@vger.kernel.org

6. 查看补丁

https://lore.kernel.org/linux-mips/

https://patchwork.kernel.org/project/linux-mips/list/

7. 配置邮箱

提交的代码过程中免不了要进行邮件沟通,这里以thuderbird 客户端为例说明。建议安装英文版的thuderbird,本人是在ubuntu 20.04(系统语言为英语)下安装的thuderbird客端。

配置主要是参考linux 官方邮箱配置文档。主要设置有如下:

1. 配置回复引用模式

打开 “edit‣preferences‣advanced‣config editor”,搜索到 mail.identity.default.reply_on_top 设置项并将其改为1即可

2.  
打开 “edit‣preferences‣advanced‣config editor” 搜索到 mailnews.send_plaintext_flowed 设置为 false, 搜索到 mailnews.wraplength 将 72 设置为 0。

3. 设置字符编码模式及文件模式 
View‣Message Body As‣Plain Text
View‣Character Encoding‣Unicode (UTF-8)

8. 生成带版本号的补丁

生成要发送到社区的内核补丁时如何指定发布的版本号(v2,v3...)
1. 生成一个补丁
  git format-patch -v2 

  那么生成的patch文件就会有如下类似的信息:

  Subject: [PATCH v2] your description about the patch
  
  或者是使用git-publish(https://github.com/stefanha/git-publish) 这类的patch 管理工具

2. 那么若是同时生成两个补丁呢?

  git format-patch --subject-prefix=v2, -1

  生成的两个patch文件就会有如下类似信息:

  Subject: [v2, 1/2] your description about the patch 1

  Subject: [v2, 2/2] your description about the patch 2

9. 常用网站

linux-mips 官方源码树

linux 官方patch提交文档

linux 官方邮箱配置文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值