降级fedora 20内核


0

我想将fedora的20内核(3.11)降级到2.6版,因为我有一个仅支持该内核的软件包。我到处都在寻找Fedora 20的2.6内核,但是没有运气。如果我尝试使用旨在用于fedora核心16的内核2.6,则fedora不会启动。有没有人有什么建议?


1
什么是仅支持2.6的软件包?
Dan D.

它是一个没有替代方案的硬件驱动程序,正式只支持Red Hat,但是Red Hat仅支持内核2.6。
ASIS911'4

Answers:


1

Fedora(相对)在使用较旧的内核启动时应该没有问题,我们一直在不运行主流内核编译的ARM平台上一直运行Fedora。

为了使系统正常工作,必须解决两个关键问题。

第一个是引导加载程序(很可能是GRUB)。如果您没有为内核安装正式的RPM,这实际上只是一个问题-正式的RPM将为您生成initramfs并创建一个引导程序条目。

第二个涉及固件加载。大多数发行版都从用户空间固件加载切换到3.10左右的内核内固件加载。当前所有受支持的Fedora版本都以这种方式加载固件。因此,切换到较旧的内核意味着内核期望操作系统加载固件,而操作系统期望内核加载固件。我们需要在某个用户空间中重新启用固件加载。

因此,首先,通过您喜欢的任何方式安装旧内核。为了使事情变得容易,我安装了为Fedora构建的最新的2.6内核(f15是正式支持2.6的最新版本)。这些软件包仍然可以在Fedora构建系统[1] Koji上获得。

接下来,我验证了GRUB条目已创建。您应该在/boot/grub/grub.cfg(假设您不在EFI系统上)中看到对内核2.6的提及。

最后,我们需要解决固件问题。我已经看到了两种解决方案:1.安装或编译已启用内部固件加载的udev的旧版本(现已包含在systemd中)。2. firmware.sh像糟糕的过去一样使用。

在这种情况下,后者要容易得多。要使其正常工作,需要添加两个文件:/usr/lib/udev/firmware.sh/usr/lib/udev/rules.d/50-firmware.rules。在Google上四处搜寻以查找这些文件的副本[2]-我不想直接链接到任何文件。

将它们放在您的系统上后,您将需要重新生成initramfs,以便可以在挂载根之前加载固件(如有必要)。在Fedora中,使用dracut很容易。跑:

dracut /boot/initramfs-2.6.43.8-2.fc15.x86_64.img 2.6.43.8-2.fc15.x86_64 --force

第一个选项是目标initramfs文件,第二个是内核版本,并且它--force是覆盖我们已经制作的initramfs所必需的(很可能在RPM安装过程中)。

那应该做到的。我刚刚在VM中进行了测试,效果很好。最后,请注意驱动程序对硬件的支持。它可能在内核2.6中不存在。我的VM的Hyper-V网络适配器就是这种情况。但是,切换到“传统”网络适配器会产生结果。

[1] http://koji.fedoraproject.org/koji/buildinfo?buildID=327165

[2] https://www.google.com/search?q=%22firmware.sh%22+%2250-firmware.rules%22

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.