无论是出于好奇还是测试补丁,编译内核的原因有很多。 这是一个编译内核的简短教程 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 内核维基 也有构建内核的参考说明。