目录
- 背景
-
- 机器参数
- 参考链接
- 操作流程
-
- 步骤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进行处理,非常感谢!