曾经有一段时间,升级 Linux 内核让很多用户打心里有所畏惧。在那个时候,升级内核包含了很多步骤,也需要很多时间。现在,内核的安装可以轻易地通过像 apt
这样的包管理器来处理。通过添加特定的仓库,你能很轻易地安装实验版本的或者指定版本的内核(比如针对音频产品的实时内核)。
考虑一下,既然升级内核如此容易,为什么你不愿意自行编译一个呢?这里列举一些可能的原因:
![d47e62d2b349aca45e42305ed6714efbe5ed61d9](https://i-blog.csdnimg.cn/blog_migrate/7c59650c126b805387b8e03902a8f318.png)
![d47e62d2b349aca45e42305ed6714efbe5ed61d9](https://i-blog.csdnimg.cn/blog_migrate/7c59650c126b805387b8e03902a8f318.png)
![d47e62d2b349aca45e42305ed6714efbe5ed61d9](https://i-blog.csdnimg.cn/blog_migrate/7c59650c126b805387b8e03902a8f318.png)
![d47e62d2b349aca45e42305ed6714efbe5ed61d9](https://i-blog.csdnimg.cn/blog_migrate/7c59650c126b805387b8e03902a8f318.png)
![d47e62d2b349aca45e42305ed6714efbe5ed61d9](https://i-blog.csdnimg.cn/blog_migrate/7c59650c126b805387b8e03902a8f318.png)
不管出于什么原因,懂得如何编译内核是非常有用的,而且可以被视作一个通行权。当我第一次编译一个新的 Linux 内核(那是很久以前了),然后尝试从它启动,我从中(系统马上就崩溃了,然后不断地尝试和失败)感受到一种特定的兴奋。
我有几张阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧!快下手,马上就要抢光了。
既然这样,让我们来实验一下编译内核的过程。我将使用 Ubuntu 16.04 Server 来进行演示。在运行了一次常规的 sudo apt upgrade
之后,当前安装的内核版本是 4.4.0-121
。我想要升级内核版本到 4.17
, 让我们小心地开始吧。
有一个警告:强烈建议你在虚拟机里实验这个过程。基于虚拟机,你总能创建一个快照,然后轻松地从任何问题中回退出来。不要在产品机器上使用这种方式升级内核,除非你知道你在做什么。
下载内核
我们要做的第一件事是下载内核源码。在 Kernel.org 找到你要下载的所需内核的 URL。找到 URL 之后,使用如下命令(我以 4.17 RC2
内核为例) 来下载源码文件:
wget https://git.kernel.org/torvalds/t/linux-4.17-rc2.tar.gz
在下载期间,有一些事需要去考虑。
安装需要的环境
为了编译内核,我们首先得安装一些需要的环境。这可以通过一个命令来完成: