即使编译成功也无法安装内核

卡西姆汗

我正在尝试linux-Kernel version 4.9.228在Ubuntu 20.04中安装A。内核编译成功,没有任何错误。我还执行了命令:

sudo make modules_install install

重新引导系统时,要检查其输入是否正确,我检查了目录下的/boot/文件:

  • System.map-4.9.228
  • vmlinuz-4.9.228
  • initrd.img-4.9.228
  • config-4.9.228

我不知道为什么,但是我跑步的时候uname -r它尚未更新我的版本。它仍然说5.4.0-37-generic

如果我缺少某些东西,请指导我。

注意:完成所有这些操作的唯一目的是学习如何添加系统调用以及如何编译内核。如果您有任何建议,我欢迎您提出建议。谢谢。

马克·博内利

您可能已经成功安装了另一个内核版本,但是要引导进入该内核版本,您需要告诉引导加载程序进行安装。

我将假设您使用GRUB2作为引导程序,因为它在包括Ubuntu在内的大多数发行版中都是标准的。为了引导新内核,您有多种选择。

选项1

这是最安全和推荐的选项。

  1. 编辑GRUB配置文件/etc/default/grub(您需要是root用户,所以请使用sudo visudo nano),并确保您GRUB_TIMEOUT=N所在的位置N是几秒钟。如果不这样做,则只需将其添加到新行中。您希望N至少为5或10,以便在GRUB启动时有时间选择正确的内核版本。

    此外,请确保您没有以下任何行(您不应该拥有这些行,但如果有,请删除或注释它们):

    GRUB_DISABLE_RECOVERY="true"
    GRUB_DISABLE_SUBMENU=y
    GRUB_HIDDEN_TIMEOUT=N
    GRUB_TIMEOUT_STYLE=hidden
    
  2. 将更改保存到/etc/default/grub并运行sudo update-grub这将检测当前安装的内核,并在启动计算机并输入GRUB时将其添加到可引导列表中。

  3. 重新启动PC,当GRUB启动时,您将看到一个选项列表。如果您不执行任何操作,则默认内核将启动,否则,您可以使用箭头键和ENTER键导航到“ Ubuntu的高级选项”,您将在其中找到可用内核的列表,并且可以选择您喜欢的一个。

    它看起来应该像这样:

    grub1

    grub2

选项2

只用作备份,如果选项1不起作用(它应该,但你永远不知道)。这不如选项1干净,因为它更改了默认内核,并且当前内核的升级也可能会覆盖更改(从技术上讲,这样做完全是为了更新默认版本)。

  1. 通过更改两个符号链接,/initrd.img/vmilunuz使其指向正确的版本的内核和initrd映像,使内核成为默认内核。可以手动完成,也可以通过linux-update-symlinks命令完成。

    $ linux-version list --paths
      ... grab the correct VERSION and PATH ...
    
    $ sudo linux-update-symlinks install VERSION PATH
    
  2. 运行sudo update-grub以让GRUB检测到更改。

  3. 重新启动电脑。

选项3

从GRUB命令行手动引导到所需的内核。这是一个高级选项,我将其列为最后的选择,除非完全破坏了系统配置,否则您永远不需要这样做。

  1. 将PC重新启动到GRUB,并在看到后立即按C进入GRUB命令行。
  2. 从现在开始遵循此答案

无论如何,请记住,如果不确定自己在做什么,那么在自己的计算机上进行内核开发并不是一个好主意。我建议您使用虚拟机来测试内核,这样,如果出现任何问题,可以将其丢弃并创建一个新的虚拟机。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

即使编译成功,也无法安装内核

来自分类Dev

gradle编译成功,但无法运行项目

来自分类Dev

Eigen 程序无法从 Visual Studio 编译,但从命令行编译成功

来自分类Dev

尽管编译成功,f2py仍无法正确导入

来自分类Dev

gcc编译失败,但msc ++编译成功

来自分类Dev

gcc编译失败,但msc ++编译成功

来自分类Dev

Oracle过程编译成功但显示错误

来自分类Dev

IntelliJ编译成功,但未生成签名的apk

来自分类Dev

蚂蚁Java任务编译成功,NoClassDefFoundError

来自分类Dev

TypeScript编译成功,但输出JS显示错误

来自分类Dev

链接脚本.lds文件无效,但编译成功

来自分类Dev

蚂蚁Java任务编译成功,出现NoClassDefFoundError

来自分类Dev

IntelliJ编译成功,但未生成签名的apk

来自分类Dev

pip install 编译成功后执行导入报错

来自分类Dev

Future 不会编译成功和失败

来自分类Dev

编译成功,但Gradle依赖项中的运行时依赖项似乎不好

来自分类Dev

为什么第二个示例编译成功

来自分类Dev

一些定义在 gcc 中编译成功,但 g++ 失败

来自分类Dev

Webpack 编译成功但项目未在浏览器中加载

来自分类Dev

为什么从 Class[String] 到 Class[Any] 的类型转换编译成功?

来自分类Dev

为什么编译成功后执行c程序没有输出?

来自分类Dev

D3D11 着色器编译成功,但出现白屏

来自分类Dev

.jspf即使在jsp中也无法编译

来自分类Dev

.jspf即使在jsp中也无法编译

来自分类Dev

lambda被编译成什么类型?

来自分类Dev

LINQ实际编译成什么?

来自分类Dev

LINQ实际编译成什么?

来自分类Dev

Scala编译成机器代码

来自分类Dev

C ++ Struct被编译成类了吗?

Related 相关文章

热门标签

归档