beaglebone black 用に Ubuntu カーネルをゼロから構築したいと考えています。カーネル ソース コードをダウンロードできる場所を 2 日以上探していますが、何も見つかりません。
それで、カーネルのソースコードをどこから入手できるか教えてください。
答え1
duckduckgo.comのUbuntuカーネルソースコードの最初の結果はhttps://wiki.ubuntu.com/カーネル/ソースコードこれは、Ubuntu カーネルの取得とコンパイルのプロセスを説明しています。ここで再現します。
Ubuntuカーネルのソースはすべてgitで管理されています。各リリースのソースはkernel.ubuntu.comの独自のgitリポジトリで管理されています。これらはgitwebで参照できます。公式のUbuntuツリーはubuntu/ディレクトリにあります。Ubuntu Linuxカーネルのgitリポジトリはgit://kernel.ubuntu.com/ubuntu/ubuntu-.gitまたは http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-.git。ローカル コピーを取得するには、以下のように、興味のあるリリースのリポジトリを git clone するだけです。git コマンドは、git-core パッケージの一部です。
git clone git://kernel.ubuntu.com/ubuntu/ubuntu-<release>.git
たとえば、maverick ツリーを取得するには、次のようにします。
git clone git://kernel.ubuntu.com/ubuntu/ubuntu-maverick.git
これによって数百メガバイトのデータがダウンロードされます。複数のカーネル リリースで作業する予定の場合は、アップストリーム カーネル ツリーをダウンロードすることでスペースと時間を節約できます。これらの 2 つのツリーが結合されると、Ubuntu ツリーに損傷を与えずにバージン Linus ツリーを削除することはできないことに注意してください。
git clone git://kernel.ubuntu.com/ubuntu/linux.git git clone --reference linux git://kernel.ubuntu.com/ubuntu/ubuntu-karmic.git git clone --reference linux git://kernel.ubuntu.com/ubuntu/ubuntu-maverick.git
いずれの場合も、ソースと完全な履歴を含む新しいディレクトリ ubuntu- が作成され、各ディレクトリ内から git コマンドを使用して操作できるようになります。
デフォルトでは、カーネル ツリーの最新バージョン、つまりマスター ツリーが存在します。リリース タグを使用して、以前にリリースされたカーネル バージョンに切り替えることができます。リリース内のタグ付きバージョンの完全なリストを取得するには、次のようにします。
$ git tag -l Ubuntu-* Ubuntu-2.6.27-7.10 Ubuntu-2.6.27-7.11 Ubuntu-2.6.27-7.12 Ubuntu-2.6.27-7.13 Ubuntu-2.6.27-7.14 $
2.6.27-7.13 バージョンを確認するには、そのバージョンを指す新しいブランチをチェックアウトするだけです。
git checkout -b temp Ubuntu-2.6.27-7.13
その後、新しいコミットを追加するなど、リリースを操作できます。