第一次动手构建 Linux 内核

目录

  • 背景
    • 机器参数
  • 参考链接
  • 操作流程
    • 步骤1:下载 Linux 内核源码
    • 步骤 2:解压源码
    • 步骤 3:下载所需软件包
    • 步骤 4:内核配置
    • 步骤 5:开始构建!
      • 步骤 5.1:make
      • 步骤 5.2:make INSTALL_MOD_STRIP=1 modules_install
      • 步骤 5.3:make install
    • 步骤 6:更新 Bootloader(可跳过)
      • 步骤 6.1:update-initramfs
      • 步骤 6.2:update-grub
    • 步骤 7:重启并验证内核版本
  • 小结

背景

这两天读过《UNIX传奇:历史与回忆》,我深藏已久的 Linux 内核开发的理想又被一把点燃。

事不迟疑,赶紧动手干点什么。万一这次真坚持下去了呢/p>

不知为什么,“构建并替换内核”这件事在曾经的我眼中好似“活人换心脏”,吓得我打了退堂鼓;但如今看来不过是执行一连串命令而已,应该毫无难度。

机器参数

我手上是一台 2011 年左右家里人买的宏碁(Acer)笔记本,淘汰之后被我几番折腾,最后装了 Ubuntu 和 CentOS 双系统(参见:安装 Ubuntu 和 CentOS 双系统),但装完没两天也再没用过。

大致看一下 CPU 和 内存:

参考链接

以下步骤参考这篇文章:How to Build Linux Kernel From Scratch {Step-By-Step Guide}

操作流程

开始之前,首先查看一下当前的内核版本:

看来用的是 。

步骤1:下载 Linux 内核源码

截至写稿时,Linux 内核官 上的最新版本是 ,比参考文章上的又高了几个小版本。

步骤 4:内核配置

这一步也没啥好说的,把系统当前版本内核的配置文件,拿过来直接用。

是 verbose 的意思,把复制了什么、复制到哪儿都打印出来:

步骤 5:开始构建!

这一步就很有意思了:

步骤 5.1:make

输入 之后弹出来一堆选项,很多都标着 字样,估计是之前版本内核配置里没有的新参数吧。

一开始我还想看看这些配置都是啥意思,选一选,后来发现要选的参数实在太多了,怎么也得有几千个吧,就一路按回车了,按了也有好久!

最后终于停止向我问问题,开始编译了。

截至头天晚上要睡觉时 还在跑,估计要跑一晚上了。

第二天早上发现,终于跑完啦:

剩下的两个步骤就比较快了:

步骤 5.2:make INSTALL_MOD_STRIP=1 modules_install

注意!我第一次没加 这个参数(参考文章里没提),结果重启之后提示 ,因为 太大了。 上搜了下解决方法,重新加上这个参数再编译就好了。

具体请参考:Ubuntu 换内核后 错:couldn’t find suitable memory target

可以看到,该命令把各个模块安装到了 下,无需手动指定路径。真是太方便了!

步骤 5.3:make install

最后一步是这 3 个 命令中最快的:

倒数第二行 是因为我在这个机器上还装着 ,哈哈。

步骤 6:更新 Bootloader(可跳过)

执行完这个步骤之后我才注意到,参考文章里说这一步完全可以略过。

步骤 6.1:update-initramfs

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月11日
下一篇 2021年6月11日

相关推荐