如何向kernel提交patch

18 篇文章 1 订阅
4 篇文章 0 订阅

1。安装msmtp

msmtp 是一款专门负责邮件发送的客户端软件,基于GPL发布,支持TLS/SSL、DNS模式、IPv6、服务器端认证、多用户等特性。
其主页是 msmtp.sourceforge.net:

直接用sudo apt-get install msmtp安装

安装好后,进行基本配置

$ cat .msmtprc

# Set default values for all following accounts.
defaults
logfile ~/.msmtp.log
# account1
account account1
protocol smtp
host mail.server.com.cn
from yourname@mail.com.cn
user yourname@mail.com.cn
password xxxxxx
port 25
auth ntlm
syslog LOG_MAIL
# Set a default account

account default: account1


password就是你邮箱的密码,直接写上去。

保存后修改访问权限:      chmod 0600 .msmtprc

否则会报must have no more than user read/write permissions的问题/

2。安装git-email

git-email是git的可选项,有的git没有安装,因为后面要用,所以先安一下。

sudo apt-get install git-email


3.准备patch

修改你的文件,比如a.c

将修改commit

git add a.c

gitcommit -s -m "i have fix a.c for test"

提交后,对本次提交生成patch

git format-patch -1

生成patch文件0001-i-have-fix-a.c-for-test.patch

如果有多个提交

git format-patch --thread --cover-letter -n

如果被提出修改再提交,增加PATCH v2

git format-patch --thread --cover-letter --subject-prefix="PATCH v2" -4


得到patch后,进行patch检查

使用./scripts/checkpatch.pl 0001-i-have-fix-a.c-for-test.patch

修改其中的error和warning


4。发送patch

首先通过./scripts/get_maintainer.pl 0001-i-have-fix-a.c-for-test.patch获得邮件要发送的人名单

也可以使用./scripts/get_maintainer.pl [options] -f file|directory

最后通过发送:

git send-email --smtp-server /usr/bin/msmtp \
--from yourname@email.com \
--to devel@linuxdriverproject.org \
--to linux-kernel@vger.kernel.org \
--cc gregkh@linuxfoundation.org \
--cc ... \
*.patch

,在发送前,也可以将邮件发送给自己,测试一下,在正常发送。

发送显示log如下:

(mbox) Adding cc: ******** <********_feng@<******_.com.cn> from line 'From: ********_feng <******_feng@<******_.com.cn>'
(body) Adding cc: <******__feng <<******__feng@<******_.com.cn> from line 'Signed-off-by: <******__feng <<******__feng@<******_.com.cn>'

From: <******__feng@<******_.com.cn
To: l<******_s@<******_.org
Cc: linux-kernel@vger.kernel.org,
    <******__feng <<******__feng@<******_.com.cn>
<******_<******_<******_<******_

    The Cc list above has been expanded by additional
    addresses found in the patch commit message. By default
    send-email prompts before sending whenever this occurs.
    This behavior is controlled by the sendemail.confirm
    configuration setting.

    For additional information, run 'git send-email --help'.
    To retain the current behavior, but squelch this message,
    run 'git config --global sendemail.confirm auto'.

Send this email? ([y]es|[n]o|[q]uit|[a]ll): y
OK. Log says:
Sendmail: /usr/bin/msmtp
From: *************
To: l*************
Cc: *************
*************
Subject: [PATCH]*************
Date: Fri,  9 Dec 2016 16:23:34 +0800
Message-Id: <1481271814-31820-1-git-send-email-*************
X-Mailer: git-send-email 1.9.1

Result: OK



好发送成功;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值