https://opensource.com/article/18/8/first-linux-kernel-patch
作者 | Sayli Karnik
譯者 | qhwdw ?共計翻譯:151.5 篇 貢獻時間:345 天
學習如何做出你的首個 Linux 核心貢獻,以及在開始之前你應該知道什麼。
Linux 內核是最大且變動最快的開源專案之一,它由大約 53,600 個檔案和近 2,000 萬行程式碼組成。在全世界範圍內超過 15,600 位程式員為它貢獻程式碼,Linux 核心專案的維護者使用瞭如下的協作模型。
本文中,為了便於在 Linux 核心中提交你的第一個貢獻,我將為你提供一個必需的快速檢查串列,以告訴你在提交補丁時,應該去檢視和瞭解的內容。對於你貢獻的第一個補丁的提交流程方面的更多內容,請閱讀 KernelNewbies 的第一個核心補丁教程[1]。
為核心作貢獻
第 1 步:準備你的系統。
本文開始之前,假設你的系統已經具備瞭如下的工具:
第 2 步:下載 Linux 核心程式碼倉庫。
git clone -b staging-testing
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
複製你的當前配置:
cp /boot/config-`uname -r`* .config
第 3 步:構建/安裝你的核心。
make -jX
sudo make modules_install install
第 4 步:建立一個分支並切換到該分支。
git checkout -b first-patch
第 5 步:更新你的核心並指向到最新的程式碼。
git fetch origin
git rebase origin/staging-testing
第 6 步:在最新的程式碼庫上產生一個變更。
使用 make
命令重新編譯,確保你的變更沒有錯誤。
第 7 步:提交你的變更並建立一個補丁。
git add <file>
git commit -s -v
git format-patch -o /tmp/ HEAD^
主題是由冒號分隔的檔案名組成,跟著是使用祈使語態來描述補丁做了什麼。空行之後是強制的 signed off
標記,最後是你的補丁的 diff
資訊。
下麵是另外一個簡單補丁的示例:
接下來,從命令列使用郵件[2](在本例子中使用的是 Mutt)傳送這個補丁:
mutt -H /tmp/0001-<whatever your filename is>
使用 get_maintainer.pl 指令碼[3],去瞭解你的補丁應該傳送給哪位維護者的串列。
提交你的第一個補丁之前,你應該知道的事情
perl scripts/checkpatch.pl -f drivers/staging/android/* | less
find drivers/staging -name TODO
錯誤的方式:
Chris,
Yes let’s schedule the meeting tomorrow, on the second floor.
> On Fri, Apr 26, 2013 at 9:25 AM, Chris wrote:
> Hey John, I had some questions:
> 1. Do you want to schedule the meeting tomorrow?
> 2. On which floor in the office?
> 3. What time is suitable to you?
(註意那最後一個問題,在回覆中無意中落下了。)
正確的方式:
Chris,
See my answers below...
> On Fri, Apr 26, 2013 at 9:25 AM, Chris wrote:
> Hey John, I had some questions:
> 1. Do you want to schedule the meeting tomorrow?
Yes tomorrow is fine.
> 2. On which floor in the office?
Let's keep it on the second floor.
> 3. What time is suitable to you?
09:00 am would be alright.
(所有問題全部回覆,並且這種方式還儲存了閱讀的時間。)
想學習更多內容,閱讀 KernelNewbies 的第一個核心補丁教程[1]。之後如果你還有任何問題,可以在 kernelnewbies 郵件串列[12] 或者 #kernelnewbies IRC channel[13] 中提問。
via: https://opensource.com/article/18/8/first-linux-kernel-patch
作者:Sayli Karnik[15] 選題:lujun9972 譯者:qhwdw 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出