特定のLinuxカーネルバージョンのソースコードはどこからダウンロードできますか?

特定のLinuxカーネルバージョンのソースコードはどこからダウンロードできますか?

特定のカーネルバージョンのソースをダウンロードできるリソースはありますか?たとえば、比較する2.6.36.2ソースをインポートしたいとします。このバッグどの変更が導入されたかを確認してください。

答え1

これを何度も実行したい場合、最も簡単で帯域幅に優しい方法は、カーネルのgitリポジトリを複製し、そのタグに基づいて目的のバージョンを表示することです。複製する方が良いLinuxの信頼できるストレージ、これにはタグのすべての安定したバージョンが含まれています。

git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
cd linux
git checkout v2.6.36.2

後で別のバージョンに切り替える方法は簡単です。

git checkout v3.5.2

すべての最新のタグとコミットを含むようにリポジトリを更新するには、次の手順に従ってください。

git fetch

答え2

はい、kernel.org持つ公開されたすべてのバージョン、含む2.6.36.2。ただし、ほとんどのLinuxディストリビューションでは、通常のカーネルソースコードに独自のパッチを適用します。

答え3

カーネル全体のコミット履歴(1GiB以上)をダウンロードしたくない場合は、必要なブランチにリンクされているカーネルGitリポジトリの部分のみをダウンロードしてください。たとえば、バージョン 4.5 で Ubuntu カーネルをローカルで確認するには、次のようにします。

git clone --depth 1 --single-branch --branch v4.5  git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack

その結果、クローンサイズは約150MiBになります。

答え4

さまざまなLinuxカーネルフォークをどこで、どのように入手できるかを調べようと努力していたので、これについて詳しく説明し、どこで学んだかを見せたいと思いました。この研究では、リンクを変更して更新することもできます。最も投票された回答のうち、最近私がしたことです。

どこそしてどのように公式Linuxカーネルのソースコードを入手する

クイックサマリー

Linuxカーネルソースコードの公式コードの場所は次のとおりです。https://kernel.org/

オプション1:興味のあるカーネルバージョンのtarファイルのみを手動でダウンロードする

興味のあるバージョンを閲覧してダウンロードするには、ここにアクセスしてください。https://mirrors.edge.kernel.org/pub/linux/kernel/

例: このページの OP v2.6.32.2:https://mirrors.edge.kernel.org/pub/linux/kernel/v2.6/.tar.xzこのファイルのバージョンが最も小さいので、ダウンロードすることをお勧めします。Linux-2.6.36.2.tar.xz.sign隣のファイルには、ダウンロードしたファイルの信頼性と整合性を確認する暗号化されたPGP署名が含まれています。署名を確認するためのコマンドを含む、ここで詳細を読んでください。https://kernel.org/category/signatures.html

コマンドラインからファイルをダウンロードすることも非常に簡単です。次のように見えます。

# Download the file, showing a progress bar; this file is 56 MB
wget https://mirrors.edge.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.2.tar.xz
# extract it; on a fast computer this takes ~4 sec.; the extracted 
# "linux-2.6.36.2" dir is ~400 MB when done
time tar -xvf linux-2.6.36.2.tar.xz

オプション2(推奨):gitを使用してダウンロードみんなバージョンとビューどのバージョン

# clone the latest Stable and Longterm release tree (git repo)
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
# cd into it
cd linux
# view all tags, which contain the many many version numbers
# - see my answer here: https://stackoverflow.com/a/69275540/4561887
git log --no-walk --tags --oneline
# Once you identify the one of interest (ex: 2.6.36.2), check out the commit
# with that tag
git checkout v2.6.36.2

詳細

公式のLinuxカーネルソースコードはLinux Kernel Archivesにあります。https://kernel.org/

複製するGitリポジトリ「ツリー」を選択します。

以下の引用はこのページからのものです。https://kernel.org/category/releases.html。そして大括弧([])の中に私が言った言葉を付け加えました。

辞書パッチ
プリパッチまたは「RC」[リリース候補]カーネルはメインラインカーネルの試用版で、主に他のカーネル開発者とLinuxマニアを対象としています。ソースコードでコンパイルする必要があり、安定したリリースに含まれる前にテストする必要がある新機能が含まれることがよくあります。 Prepatch カーネルは Linus Torvalds が保守し、公開します。 [彼らのバージョンは数字が-rcXどこにあるかで終わります。X]

本線
メインラインツリーはLinus Torvaldsによって管理されます。これは、すべての新機能が導入され、すべての興味深い新しい開発が起こるツリーです。新しいメインラインカーネルは9〜10週ごとにリリースされます。

安定
各メインラインカーネルがリリースされると、「安定的」と見なされます。安定カーネルのすべてのバグ修正はメインラインツリーでバックポートされ、指定された安定カーネルマネージャによって適用されます。 「長期メンテナンスカーネル」として指定されていない限り、通常、次のメインラインカーネルがリリースされる前にいくつかのバグ修正カーネルリリースがあります。安定したカーネルアップデートは、必要に応じて通常週に一度リリースされます。

長い
通常、古いカーネルツリーのバグ修正をバックポートする「長期メンテナンス」カーネルリリースがいくつかあります。これらのカーネルには重要なバグ修正のみが適用され、特に古いツリーの場合は頻繁にリリースされる場合には通常は表示されません。 [ここですべての長期リリース表を確認してください:https://kernel.org/category/releases.html。ほとんどは最大6年までサポートされています。 ]

git cloneURL

目的のリポジトリを複製します。複製URLが複数ある場合は、どちらのURLでも機能しますが、以下の各リストの最初のURLを優先します。

  1. プレパッチ(「リリース候補」または-rc)およびメインライン(メインワークツリー)リリースの場合:
    # From kernel.org directly
    # See: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
    git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
    git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
    git clone https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux.git
    
    # Or, an exact mirror on GitHub
    # See: https://github.com/torvalds/linux
    git clone https://github.com/torvalds/linux
    
  2. 安定した長期リリースの場合:
    # From kernel.org directly
    # See: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
    git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
    git clone https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
    git clone https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux.git
    
    # Note: This URL still works as of Dec. 2022, and has the exact same content
    # as the URLs above, but is no longer listed in the list of **all**
    # repos/trees here (https://git.kernel.org/), and so it appears to be
    # deprecated. Use the URLs above instead.
    git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
    
  3. 「Linux-Next」(何を意味するのかわからない)バージョンの場合:
    # From kernel.org directly
    # See: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/
    git clone git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
    git clone https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
    git clone https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next.git
    

カーネルで開発中または最新バージョンを表示するには、メインラインのgitツリーが必要な場合があります。

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
# or on GitHub
git clone https://github.com/torvalds/linux

問題の内容(v2.6.36.2)など、指定された安定版または長期バージョン番号をダウンロードする場合は、安定版および長期バージョンのツリーを複製してそのバージョンcdに移動します。

git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
cd linux  # cd into the newly-cloned dir

その後、すべてのバージョン番号タグを見ることができます(詳細と追加のコマンドについては、私の答えをご覧ください。)、次に興味のある項目を表示します。

git log --no-walk --tags --oneline
git checkout v2.6.36.2

git clone上記のkernel.org URLをどのように見つけますか?

ホームページに行く:https://kernel.org/次に「参照」リンクをクリックしてください。

ここに画像の説明を入力してください。

次に、上部の「要約」列ヘッダーをクリックし、下部の「複製」リンクを見つけます。

ここに画像の説明を入力してください。

引用する

  1. https://kernel.org/category/signatures.html- このページでPGP署名を確認し、個々のtarファイルのダウンロードURLを見つける方法を学びました。
  2. 私の答え:すべてのタグを表示git log
  3. https://linuxize.com/post/how-to-extract-unzip-tar-xz-file/

関連情報