建设 Fedora 核心

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

内核入门

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

$ dnf install packager-tools

这将安装基本工具,例如

饲料包装袋

.

饲料包装袋

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

饲料包装袋

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

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

这将创建一个名为

我的内核

包含来源 Fedora 24.

构建内核

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

$ dnf builddep kernel.spec

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

%定义

内核规范

可以为此目的启用。

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

这将为内核命名

我的内核

.

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

饲料包装袋

命令可用于构建。

$ fedpkg local

这将构建内核。 RPM 将在

包-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

这将只生成内核和模块。

为什么要重建内核?

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

本地配置

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

新补丁.sh

.

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

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