自定义构建的内核无法正确安装-Centos7

时间:2019-05-20 18:11:07

标签: linux-kernel centos rpmbuild

我正在尝试在机器上构建并安装多个内核,所有内核都是完全相同的发行版(4.19.10,找到的here),但是具有不同的抢占模型(用于基准测试)。最初的原始内核构建和安装成功,但是所有后续安装都无法启动。

我正在将内核构建为rpm软件包。同样,除了make menuconfig中的2个更改之外,其他所有内容完全相同:

  • General Setup >> Local version - append to kernel release-在此处添加一个字符串来表示抢占模式,例如-lld用于低延迟桌面
  • General Setup >> Preemption Model-在这里我选择抢占模式

所有组件(带和不带CONFIG_RT_PREEMPT补丁)都可以正常运行,没有错误。 我正在使用rpm -ivh kernel-4.19.10_lld-1.x86_64.rpm进行安装,该安装似乎成功,直到达到100%并挂起。最终,我使用ctrl+c终止了安装,并检查了top正在运行什么,并且可以看到grub2-editenv仍在运行。

从这里开始,可能会发生一些不同的事情,但最终都是一样的。重新启动通常会挂起,第二次重新启动要么使我进入grub命令行,要么用Welcome to emergency mode!回到命令行。

我可以使用grub2-mkconfig -o /boot/grub2/grub.cfg将新内核添加到grub,这没有问题。但是,无论直接从grub命令行选择启动映像,还是将其添加到grub并在启动过程中选择它,我都会得到相同的文本:

error: invalid magic number.
error: you need to load the kernel first

我认识到这里可能没有足够的信息来确定我的问题,但我希望至少能有所指路并回答一些问题:

  • 利用General Setup >> Local version - append to kernel release足以使这些内核具有唯一性,以便它们可以并排安装吗?
  • 这些症状是否表示构建不良,rpm规范配置错误或grub配置不良?

谢谢


更新:我可以成功地用rpm -Uvh kernel-4.19.10_lld-1.x86_64.rpm升级内核并正确引导,尽管我不能用其他内核之一来这样做。不知道这表明什么,但是我认为问题可能是试图并行安装相同的内核版本,并且构建本身可能还可以。


更新2: 我放弃了rpm解决方案,仅尝试了make modules_installmake install。没有安装问题,但是运行grub2-mkconfig挂起。启动挂在黑屏,重新启动将我带到grub命令行。然后,手动加载内核不会产生任何错误,但是在识别出硬件之后,启动最终会导致内核崩溃。消息为Kernel Panic - not syncing: VFS: Unable to mount

可能与之相关-我在VM(intel i7硬件)上构建了第一个(正在运行的)内核,但其他内核均已在intel atom e3950芯片组上构建。我在想这可能是问题所在,因为menuconfig最终有所不同。我认为我在该芯片组上还没有一个健康的构建。

0 个答案:

没有答案