Ubuntu 内核源 - git 和 apt-get 不一致?

Ubuntu 内核源 - git 和 apt-get 不一致?

我正在尝试构建 Ubuntu 内核,按照ubuntu 构建自己的内核

我有兴趣使用 git,这样我就可以轻松地分支和回溯我的错误。我使用 git 得到了一个版本,如下所示:

git clone git://kernel.ubuntu.com/ubuntu/ubuntu-xenial.git

这将创建目录 ubuntu-xenial/ 但不幸的是,构建失败了。

运行头 ubuntu-xenial/Makefile

给出:

VERSION = 4
PATCHLEVEL = 4
SUBLEVEL = 30
EXTRAVERSION =
NAME = Blurry Fish Butt

另一方面,使用 apt-get 获取版本:

apt-get source linux-image-$(uname -r)

创建 linux-4.4.0/ 令人惊讶的是,版本不同。

运行头 linux-4.4.0/Makefile

给出:

VERSION = 4
PATCHLEVEL = 4
SUBLEVEL = 35
EXTRAVERSION =
NAME = Blurry Fish Butt

4.4.35 不在 git 中。

我的问题是:在哪里可以找到当前版本更新的 git 存储库?

或者至少是一个不会失败的版本。

答案1

内核源代码的最佳来源是https://www.kernel.org/
这些未经 Canonical 修改。

Canonical 在编译 Ubuntu 内核时会对其分发的内核应用各种补丁。这些补丁可以在其公共内核存储库中按内核版本查看:
http://kernel.ubuntu.com/~kernel-ppa/mainline/
并检查相应目录下的 *.patch 文件。

这些补丁是否能带来好处仍有待商榷。

以下 repo 可帮助安装较新的内核,或者编译相同的内核: https://github.com/mtompkins/linux-kernel-utilities

我知道您问的是针对某个git存储库的问题,但我相信上面的答案是合理的。git pull您可以下载压缩文件、解压并继续。

这将确保您在编译预期成功时从快照进行编译。在我看来,使用源代码进行编译git是针对内核开发人员的,因为在点发布之间可能会出现中间问题。

答案2

您从正确的地方下载了资源,但却以错误的方式构建了内核。

为了获得 Ubuntu 版本控制,你需要以 Debian 方式构建内核

fakeroot debian/rules binary-headers binary-generic

debian目录包含正确的.config文件,并且版本将与 Ubuntu 版本匹配。我成功地从ubuntu-xenialrepo 构建了内核。

如果您使用 进行构建make,您将获得主线版本,并且大多数情况下会获得错误的配置。

很难说清楚为什么在没有任何信息的情况下无法制作内核。我从 构建内核时没有任何问题ubuntu-xenial

apt-get获取相同的来源。

相关内容