哪里可以下载特定版本的Linux Kernel源代码?

Rao*_*uke 27 source version linux-kernel

是否有下载特定内核版本源的资源?比如我想拿到2.6.36.2的源码来和这个包对比,看看有什么变化?

Jim*_*ris 30

如果您希望多次执行此操作,最简单且对带宽最友好的方法是克隆内核的 git 存储库并根据其标签检查您想要的版本。最好克隆linux-stable repo,因为这将包含所有稳定版本的标签:

git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
cd linux-stable
git checkout v2.6.36.2
Run Code Online (Sandbox Code Playgroud)

以后要切换到另一个版本,很简单:

git checkout v3.5.2
Run Code Online (Sandbox Code Playgroud)

要更新您的存储库以包含所有最新的标签和提交:

git fetch
Run Code Online (Sandbox Code Playgroud)

  • 任何线索为什么小标签不显示在 GitHub 上?例如 https://github.com/torvalds/linux/releases/tag/v3.5.2 vs https://github.com/torvalds/linux/releases/tag/v3.5 也不在 https://git.kernel 上。 org/pub/scm/linux/kernel/git/torvalds/linux.git/refs/ (3认同)

sca*_*cai 16

是的,kernel.org所有发布的版本,包括2.6.36.2。但是请注意,大多数 Linux 发行版都将自己的补丁应用于 vanilla 内核源代码。


Mar*_*cka 11

如果您不想下载整个内核提交历史记录(远高于 1 GiB),您可以只下载内核 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
Run Code Online (Sandbox Code Playgroud)

这样,克隆大约为 150 MiB。

  • `--depth` 暗示 `--single-branch` BTW,根据 `man git-clone`。 (3认同)

Cir*_*郝海东 6

如果您只想获取一个标签以进行快速编译,请执行以下操作:

git clone --depth 1 --branch v4.18 \
  git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Run Code Online (Sandbox Code Playgroud)

--depth 1 执行浅克隆,这大大减少了克隆时间和磁盘使用量。

不幸的是,由于 cgit git 服务器的工作和配置方式,它目前仅适用于标签,不适用于任意提交。另见:https : //stackoverflow.com/questions/3489173/how-to-clone-git-repository-with-specific-revision-changeset

另请参阅:为什么Linux内核源代码的git clone比解压出来的tar.xz大很多?