建立 Fedora 核心

无论是出于好奇还是测试补丁,编译内核的原因有很多。 这是一个编译内核的简短教程 Fedora.

内核入门

这 Fedora 内核只是另一个包 Fedora. 这意味着如果你知道怎样编译其他 Fedora 包,您在编译内核方面有了一个良好的开端。 编译内核的最简单方法是使用打包工具。

$ dnf install packager-tools

这将安装基本工具,例如

联邦快递

.

联邦快递

用于获取内核源代码。 我们用

联邦快递

克隆 Fedora 核心 pkg-git 在名为“内核”的目录中。 默认情况下,签出的源将用于 生皮. 每个 Fedora release 有自己的分支。 您可以使用 git 命令来更改分支。 为了 example, 查看源代码 Fedora 24、我们将运行以下命令。

$ fedpkg co -a kernel
$ cd kernel
$ git checkout -b my_kernel origin/f24

这将创建一个名为的 git 分支

我的内核

包含来源 Fedora 24.

构建内核

内核有许多构建依赖项。 这些可以安装

$ dnf builddep kernel.spec

在构建用于测试的内核时,最好给它一个可识​​别的名称。 这使得它更容易与正式发布的区别开来 Fedora 内核和其他已经构建的。 有一个

%定义

内核规范

可以为此目的启用。

-# define buildid .local
+%define buildid .my_kernel

这将为内核提供名称

我的内核

.

如前所述,内核只是另一个包。 标准

联邦快递

命令可用于构建。

$ fedpkg local

这将构建内核。 RPM 将在

pkg-git

x86_64 下的目录(或您正在构建的架构的名称)。 这将需要很长时间,并且需要多达 12GB 的磁盘空间。 如果你想要稍微快一点的构建体验,你可以使用

快速构建.sh

脚本。

$ fedpkg srpm
Wrote /current/path/kernel-4.8.0-0.rc1.git1.1.my_kernel.fc26.src.rpm
$ ./scripts/fast-build.sh x86_64 kernel-4.8.0-0.rc1.git1.1.my_kernel.fc26.src.rpm

这将只生成内核和模块。

为什么要重建内核?

重建内核的两个常见原因是更改配置选项和添加补丁。 可以将内核配置选项的更改添加到文件中

配置本地

. 添加补丁的最简单方法是使用脚本

新补丁

.

$ ./scripts/newpatch.sh my-patch.patch

关于构建内核步骤的问题可以发送到 Fedora 内核邮件列表. 这 Fedora 内核维基 也有构建内核的参考说明。