欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ubuntu16.04重新编译linux内核

程序员文章站 2022-07-03 12:29:00
...

首先的首先,如果用的是虚拟机,那硬盘至少要分个40G,
硬盘太小的后果,你可以试试。。。

一、下载内核

首先到kernel官网获取linux源代码包。

我用的ubuntu版本是16.04

因此下载的包可以采用4.x
ubuntu16.04重新编译linux内核
如果从官网下载速度过慢(我这下载需要两个多小时,还经常掉线),可以找找国内的镜像站。
以下是北京大学镜像站的资源,可以选择4.20进行下载
Index of /kernel/linux/kernel/v4.x/
ubuntu16.04重新编译linux内核
下载完成后,依次进行如下步骤:
1、打开终端,输入sudo –s切换到root账户
2、cd到下载的目录后,输入mv linux-4.20.tar.xz /usr/src,把下载的内核源代码文件移到/usr/src目录。
3、输入cd /usr/src,切换到该目录下
4、输入tar xvJf linux-4.20.tar.xz,解压内核包
5、输入cd linux-4.20,切换到解压后目录下
ubuntu16.04重新编译linux内核
以上,下载内核完成。

二、下载依赖包

只有源码文件无法完成编译,我们还需要依赖包。

国外下载速度比狗爬还慢,我们需要换源

1、首先,备份现有源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak1

2、接着,打开源列表

sudo gedit /etc/apt/sources.list

3、然后修改文件内容为:

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates mainrestricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

完成之后,保存退出

4、更新源与软件

sudo apt-get update
sudo apt-get upgrade

5、安装依赖包

sudo apt-get install libncurses5-dev libssl-dev
sudo apt-get install build-essential openssl
sudo apt-get install zlibc minizip
sudo apt-get install libidn11-dev libidn11

完成效果如图所示
ubuntu16.04重新编译linux内核

三、编译内核

依次执行如下命令:

sudo make mrproper
sudo make clean
sudo make menuconfig

ubuntu16.04重新编译linux内核
接着,我们就可以进行内核配置

ubuntu16.04重新编译linux内核
直接退出,保存默认设置即可

这里我输了最后一条命令时,弹出了127号和2号错误,这里安装bison和flex两个依赖包就行了。安好后就可以弹出上面的窗口了

配置好之后,先使用lscpu查看cpu支持的线程数
这里我的电脑只有1个线程。。。
之后输入sudo make –j1命令,
使用1个线程进行编译

ubuntu16.04重新编译linux内核

编译速度根据线程数而定,像我就用了两个多小时,8线程的二十几分钟就能搞定。

四、安装内核

编译完成后输入:

sudo make modules_install

安装内核模块
ubuntu16.04重新编译linux内核
输入:

sudo make install

安装内核

ubuntu16.04重新编译linux内核
大功告成。

五、加载内核

安装完成后对内核进行加载

加载完成后,在控制台输入:

uname -r

查看内核版本,可见,linux已经换上了新的内核
ubuntu16.04重新编译linux内核

reference:
在Ubuntu16.04LTS下编译Linux-4.15.7内核
最全最详细:ubuntu16.04下linux内核编译升级更新
ubuntu的apt-get换清华源

步骤不复杂,实际操作还是挺累人的,尤其是中途出了一堆莫名其妙的错误