如何手动编译Fedora 20内核

如何手动编译Fedora 20内核

我正在尝试重新创建一个环境以进行调试。我需要 Fedora 20 特定内核版本(在本例中为 3.17.7-200.fc20.x86_64)。

我已经从 tar 包手动编译了 vanilla 内核(3.17.7)。

cd /usr/src/kernels/linux-3.17.7
make oldconfig
make
make install
make module_install

我想对 Fedora 源代码做同样的事情,但是我似乎缺少一些常识,因为我无法获得正确的源代码。

我已经使用 yum install 内核安装了 Fedora,但是编译了默认版本(我需要编辑 .config)并随后删除所有源,只留下 initrm、systemmap 和 vmlinuz。

我尝试过:

yum install kernel-devel kernel-headers

对于给定的 F20 版本。

但当我去

/usr/src/kernel/<my_desired_kernel_version>/

并尝试制作,但我总是收到有关丢失文件的错误。对目录和文件的仔细检查表明,与 Vanilla 内核目录相比,带有 fedora 内核源的 dir 丢失了很多文件。这是否意味着 fedora kernel-devels 文件只是补丁?

我的最终目标是通过对 .config 文件进行一些编辑来编译特定的 Fedora 内核。我也希望了解一些我做错事的基本背景。问候

答案1

kernel-devel 软件包仅包含为内核构建附加模块所需的内容,而不是整个内核源代码。您需要获取源 rpm 来构建整个内核。您可以坚持使用普通内核,就像您所说的那样,或者如果您想构建自己的内核 rpm,请参阅这些说明

答案2

您可以从 Fedora 的构建系统 Koji 获取特定的源 RPM。在这种情况下,它位于https://kojipkgs.fedoraproject.org/packages/kernel/3.17.7/200.fc20/。 (有多种方法可以找到它,但在本例中,我只是在 Google 上搜索“kernel-3.17.7-200.fc20.x86_64 koji”。)

安装源 rpm(以非 root 身份)— 安装并运行rpmdev-setuptree以在您的主目录中创建必要的环境(如果需要)。然后,您可以直接修改源代码和补丁,也可以使用kernel.spec附加补丁修改文件,从而更改您所需的配置。

相关内容