編寫和提交自己的第一個內核patch

write and submit your first linux kernel patch

1. 建立自己的branch

Git branch test

2. 切換到branch

Git checkout test

3. 檢查編碼的風格

cjok@ubuntu:~/git-work/linux$./scripts/checkpatch.pl --file --terse drivers/staging/media/go7007/s2250-board.c

drivers/staging/media/go7007/s2250-board.c:107:ERROR: that open brace { should be on the previous line

total: 1 errors,0 warnings, 698 lines checked

4. 修改bug

cjok@ubuntu:~/git-work/linux$ vi drivers/staging/media/go7007/s2250-board.c +107

5. 查看修改過的地方

cjok@ubuntu:~/git-work/linux$git diff

diff --gita/drivers/staging/media/go7007/s2250-board.c b/drivers/staging/media/

index e7736a9..385d391 100644

---a/drivers/staging/media/go7007/s2250-board.c

+++ b/drivers/staging/media/go7007/s2250-board.c

@@ -103,8 +103,7 @@ static u16vid_regs_fp[] = {

};

/* PAL specific values */

-static u16 vid_regs_fp_pal[] =

-{

+static u16 vid_regs_fp_pal[] ={

0x120, 0x017,

0x121, 0xd22,

0x122, 0x122,

6. 編譯修改過的目錄,防止修改時帶入新的錯誤

Make M=drivers/staging/media/go7007/

7. 提交patch

cjok@ubuntu:~/git-work/linux$git commit -a

[test-cjok a041001] staging:media: go7007: fixed coding style issue

1 files changed, 1 insertions(+), 2deletions(-)

8. 查看patch信息

cjok@ubuntu:~/git-work/linux$git show --pretty=full

commita04100141fc3708ce19cb4a3228506d675fd3776

Author: CJOK<[email protected]>

Commit: CJOK<[email protected]>

staging: media: go7007: fixed coding style issue

Fixed a coding style issue

diff --gita/drivers/staging/media/go7007/s2250-board.c b/drivers/staging/media/

index e7736a9..385d391 100644

---a/drivers/staging/media/go7007/s2250-board.c

+++b/drivers/staging/media/go7007/s2250-board.c

@@ -103,8 +103,7 @@ static u16vid_regs_fp[] = {

};

/* PAL specific values */

-static u16 vid_regs_fp_pal[] =

-{

+static u16 vid_regs_fp_pal[] ={

0x120, 0x017,

0x121, 0xd22,

0x122, 0x122,

9. 格式化patch

cjok@ubuntu:~/git-work/linux$git format-patch master..test-cjok

0001-staging-media-go7007-fixed-coding-style-issue.patch


10. 檢查patch的編碼,防止引入新的錯誤

cjok@ubuntu:~/git-work/linux$./scripts/checkpatch.pl0001-staging-media-go7007-fixed-coding-style-issue.patch

total: 0 errors, 0 warnings, 9lines checked

0001-staging-media-go7007-fixed-coding-style-issue.patchhas no obvious style problems and is ready for submission.

11. 獲取maintainer和相關人員的email

cjok@ubuntu:~/git-work/linux$./scripts/get_maintainer.pl0001-staging-media-go7007-fixed-coding-style-issue.patch

Mauro Carvalho Chehab<[email protected]> (maintainer:MEDIA INPUTINFRA...,commit_signer:1/2=50%)

Greg Kroah-Hartman<[email protected]> (maintainer:STAGING SUBSYSTEM,commit_signer:1/2=50%)

[email protected](open list:MEDIA INPUT INFRA...)

[email protected] (openlist:STAGING SUBSYSTEM)

[email protected](open list)

12. 發送email

cjok@ubuntu:~/git-work/linux$git send-email --to [email protected] --cc cjok.liao@gmail.com0001-staging-media-go7007-fixed-coding-style-issue.patch

如果gitsend-email工具沒有安裝,會出錯。apt-get install git-email msmtp下載安裝就行了。

 

參考

http://blog.csdn.net/cjok376240497/article/details/7173772

http://www.cnblogs.com/refrag/archive/2012/11/29/2794739.html

http://dev.poetpalace.org/?p=206

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章