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
好发送成功
假设需要提交hello world这个驱动首先在driver目录下建立hello文件夹,然后在里面新建Makefile、Kconfig、hello.c文件
Makefile文件写:obj-$(CONFIG_HELLO) += hello.o
Kconfig 文件写config HELLO
tristate "this is just a hello module test"
default m
然后在driver目录下,修改Kconfig,添加 source "/driver/hello/Kconfig"
在driver目录下,修改Makefile,添加obj-$(CONFIG_HELLO) += hello/
hello.c如下:
#include <linux/kernel.h>
#include <linux/module.h>
static int __init join_hello(void)
{
pr_info("Enter hello world\n")
static void __exit hello_exit(void)
{
pr_info("exit hello world\n")
}
module_init(join_hello)
module_exit(hello_exit)
MODULE_AUTHOR("Linux")
MODULE_DESCRIPTION("this is just a hello module test")
MODULE_LICENSE("GPL v2")
编译完成后,生成ko文件,在linux下使用insmod hello.ko就可以加驱动加入内核了,当然你可以将驱动编译成静态加载的方式
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)