GNU/Linux >> Linux の 問題 >  >> Linux

最初のLinuxカーネルパッチを提出するためのチェックリスト

最大かつ最も動きの速いオープンソースプロジェクトの1つであるLinuxカーネルは、約53,600のファイルと約2,000万行のコードで構成されています。世界中で15,600人以上のプログラマーがプロジェクトに貢献しており、Linuxカーネルはコラボレーションのメンテナーモデルに従います。

この記事では、最初のカーネル貢献を行うための手順の簡単なチェックリストを提供し、パッチを送信する前に知っておくべきことを確認します。最初のパッチを提供するための提出プロセスの詳細については、KernelNewbiesの最初のカーネルパッチチュートリアルをお読みください。

カーネルへの貢献

ステップ1:システムを準備します。

この記事の手順は、システムに次のツールがあることを前提としています。

  • テキストエディタ
  • メールクライアント
  • バージョン管理システム(例:git)

ステップ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^

件名は、コロンで区切られたファイル名へのパスと、それに続く命令型のパッチの機能で構成されます。空白行の後に、パッチの説明と必須のサインオフタグ、そして最後にパッチの差分が表示されます。

簡単なパッチの別の例を次に示します。

次に、コマンドライン(この場合はMutt)から電子メールを使用してパッチを送信します:

mutt -H /tmp/0001-<whatever your filename is>

その他のLinuxリソース

  • Linuxコマンドのチートシート
  • 高度なLinuxコマンドのチートシート
  • 無料のオンラインコース:RHELの技術概要
  • Linuxネットワーキングのチートシート
  • SELinuxチートシート
  • Linuxの一般的なコマンドのチートシート
  • Linuxコンテナとは何ですか?
  • 最新のLinux記事

パッチの送信先のメンテナのリストを知るには、get_maintainer.plスクリプトを使用してください。

最初のパッチを送信する前に知っておくべきこと

  • Greg Kroah-Hartmanのステージングツリーは、新しい寄稿者からの簡単なパッチを受け入れるため、最初のパッチを送信するのに適した場所です。パッチ送信プロセスに慣れたら、複雑さを増したサブシステム固有のパッチを送信できます。
  • コード内のコーディングスタイルの問題を修正することから始めることもできます。詳細については、Linuxカーネルのコーディングスタイルのドキュメントを参照してください。
  • スクリプトcheckpatch.plは、コーディングスタイルのエラーを検出します。たとえば、次のコマンドを実行します。
    perl scripts/checkpatch.pl -f drivers/staging/android/* | less
  • 開発者が不完全なままにしたTODOを完了することができます:
    find drivers/staging -name TODO 
  • Coccinelleはパターンマッチングに役立つツールです。
  • カーネルのメーリングアーカイブを読んでください。
  • linux.gitログを調べて、インスピレーションを得るために以前の作成者によるコミットを確認してください。
  • 注:パッチのレビュー担当者と連絡を取るためにトップポストを投稿しないでください。次に例を示します。

    間違った方法:

    クリス、

    はい、明日の2階での会議のスケジュールを立てましょう。

    > 2013年4月26日金曜日午前9時25分、クリスは次のように書いています。

    >ねえ、ジョン、いくつか質問がありました:

    > 1.明日会議をスケジュールしますか?

    > 2.オフィスのどの階にありますか?

    > 3.あなたに適した時間は何ですか?

    (最後の質問が意図せずに返信に残されていることに注意してください。)

    正しい方法:

    クリス、

    以下の私の答えを参照してください...

    > 2013年4月26日金曜日の午前9時25分、クリスは次のように書いています。

    >ねえ、ジョン、いくつか質問がありました:

    > 1.明日会議をスケジュールしますか?

    はい明日は大丈夫です。

    > 2.オフィスのどの階にありますか?

    2階に置いておきましょう。

    > 3.あなたに適した時間は何時ですか?

    午前9時で大丈夫です。

    (すべての質問に回答したので、読む時間を節約できます。)

  • Eudyptulaチャレンジは、カーネルの基本を学ぶのに最適な方法です。

詳細については、KernelNewbies FirstKernelPatchチュートリアルをお読みください。その後、まだ質問がある場合は、kernelnewbiesメーリングリストまたは#kernelnewbiesIRCチャネルで質問してください。


Linux
  1. Linuxサーバーで最初の10分間に行う9つのこと

  2. Linuxカーネルの継続的インテグレーションテスト

  3. Linuxデスクトップに最適な5つのGNOMEシェル拡張機能

  1. Linux用のお気に入りの画面記録ツールは何ですか?

  2. ニンテンドーWii用のLinuxカーネル?

  3. Linux カーネルにはメイン機能がありますか?

  1. pdftkでPDFのブックマークを作成する

  2. 時間管理を改善するためのLinuxツール

  3. Linuxデスクトップ用のLuminaを使い始めましょう