ubuntu16.04重新编译linux内核
首先的首先,如果用的是虚拟机,那硬盘至少要分个40G,
硬盘太小的后果,你可以试试。。。
一、下载内核
首先到kernel官网获取linux源代码包。
我用的ubuntu版本是16.04
因此下载的包可以采用4.x
如果从官网下载速度过慢(我这下载需要两个多小时,还经常掉线),可以找找国内的镜像站。
以下是北京大学镜像站的资源,可以选择4.20进行下载
Index of /kernel/linux/kernel/v4.x/
下载完成后,依次进行如下步骤:
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
,切换到解压后目录下
以上,下载内核完成。
二、下载依赖包
只有源码文件无法完成编译,我们还需要依赖包。
国外下载速度比狗爬还慢,我们需要换源
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
完成效果如图所示
三、编译内核
依次执行如下命令:
sudo make mrproper
sudo make clean
sudo make menuconfig
接着,我们就可以进行内核配置
直接退出,保存默认设置即可
这里我输了最后一条命令时,弹出了127号和2号错误,这里安装bison和flex两个依赖包就行了。安好后就可以弹出上面的窗口了
配置好之后,先使用lscpu查看cpu支持的线程数
这里我的电脑只有1个线程。。。
之后输入sudo make –j1命令,
使用1个线程进行编译
编译速度根据线程数而定,像我就用了两个多小时,8线程的二十几分钟就能搞定。
四、安装内核
编译完成后输入:
sudo make modules_install
安装内核模块
输入:
sudo make install
安装内核
大功告成。
五、加载内核
安装完成后对内核进行加载
加载完成后,在控制台输入:
uname -r
查看内核版本,可见,linux已经换上了新的内核
reference:
在Ubuntu16.04LTS下编译Linux-4.15.7内核
最全最详细:ubuntu16.04下linux内核编译升级更新
ubuntu的apt-get换清华源
步骤不复杂,实际操作还是挺累人的,尤其是中途出了一堆莫名其妙的错误
上一篇: Xshell连接虚拟机
下一篇: 虚拟机+Linux+PHP
推荐阅读
-
Centos下编译Linux内核的具体实现方法
-
linux编译内核的方法
-
linux内核编译常常出现的问题的解决办法
-
Linux内核编译时出现fatal error: openssl/opensslv.h: No such file or directory错误的解决办法
-
Linux内核编译时出现fatal error: openssl/opensslv.h: No such file or directory错误的解决办法
-
编译Linux内核 4.13
-
linux内核编译基础知识储备 --- 过渡篇(四)
-
ubuntu16.04 安装交叉编译工具aarch64-linux-gnu-gcc/g++
-
linux系统下lvs-fullnat-内核编译
-
linux 系统重新编译 bitcoin (比特币)