Ubuntu18.04 LTS编译内核
Ubuntu18.04 LTS编译内核
特别提示:本文档中所有操作推荐在root权限下操作
使用root权限的方法:在命令行输入sudo su
建议做完这个以后,了解一下Linux内核编译原理传送门
以前从来没有了解过关于Linux内核编译的知识,今年因为有一门课叫《操作系统》,老师让我们多多去了解一下Linux内核编译的知识,顺便以后做实验方便,所以我就网上找了好多好多教程,我觉得对于新手来说,网上的部分教程还是过于复杂的
首先咱们要准备一下:我所使用的版本:Ubuntu 18.04 LTS版下载链接 (内核版本Linux 5.3.0) 因为我安装的新安装的系统编译完成至少需要33G空间 加上安装的空间所以我建议至少预留40G空间,虚拟机CPU 4核(i7-8750H)内存 3G。准备Liunx 5.5.5的内核网站 内核下载链接下载链接 (建议迅雷下载)
首先看一下编译内核前,我的系统内核版本还有我呢存储使用空间啊
在这些工作之前首先要更新软件数据库
sudo apt-get update
sudo apt-get upgrade
接下来首先我们要做准备工作安装编译工具
sudo apt-get install build-essential openssl
sudo apt-get install zlibc minizip
sudo apt-get install libidn11-dev libidn11
sudo apt-get install libncurses5-dev libssl-dev
sudo apt-get install gcc
sudo apt-get install make
sudo apt-get install make-guile
sudo apt-get install ncurses-dev
sudo apt-get install flex
sudo apt-get install bison
哦哦对了,我刚才漏了一个东西:如果我们在虚拟机下进行编译的话首先要安装VMware-tools,这样可以方便主机于虚拟机之间互传文件。
WMware-tools安装教程传送门
接下来就要开始正式编译了,首先我们要吧刚才下载的压缩包解压一下,千万要记得这次的要用管理员权限操作哦
注意:下面的命令当中有cd和cp命令千万要分清
解压到如下路径:/usr/src
tar -xvf linux-5.5.5.tar.xz -C /usr/src
然后如下操作:
cd /usr/src/linux-5.5.5
然后接下来:
cp /boot/config-(按下Tab键可以自动补全)
有些人的可能按Tab键可能不会出来,那是因为可能存在两个文件(Ubuntu会自己升级内核),所以记得选择最新的版本
例如我的是:
cp /boot/config-5.3.0-28-generic .config
接下来开始正式的编译了
输入make menuconfig
命令出现以下界面:
直接上下键以及Tab键,跳转至"Exit",即所有都为默认选项(记得保存)
接下来要输入以下指令:
sudo make
建议使用sudo make -j4
命令,因为这样可以添加四个[job]具体见下图(速度可以快一点)
亲测可以节约差不多一个小时时间
接下来就是一个等待非常非常漫长的时间了
当然你可以去做其他的事情,最好去喝一杯咖啡或者去多多学习一会。
差不多进行了两个小时以后,我回来了,看到了如下场景
这就代表编译已经完成了,接下来就可以开始安装了
这是编译完成以后的磁盘占用情况
所以编译的时候必须留足空间(至少30G)
安装过程
模块安装
输入make modules_install
就开始准备安装了
下图是模块正在安装中
这是模块安装完成的情况
接下来开始正式安装内核
内核安装
在Terminal当中输入make install
正式开始内核安装
正在安装当中······
安装完成以后
看看是否有安装成功,所以就到boot
目录下面查看是否有5.5.5的内核
当然是有的,那就算是安装成功了,但是这个过程有没有成功呢,还要重启看一下
经过重启,我们使用uname -a
查看内核是否加载成功
所以可以看到,这就已经升级成功了
后续工作
接下来,我们看一下升级以后磁盘的占用情况
磁盘占用有点大,所以我们得想办法释放我的空间
先要转移到编译目录下面cd /usr/src/linux-5.5.5
接下来就要用到这条命令了make clean
清理完成以后我们可以看到磁盘占用情况
这时就可以恢复正常了
错误解决方法
当启动时遇到Kernel panic not syncing : System is deadlocked on memory 的错误时 参考如下链接:https://unix.stackexchange.com/questions/492667/compiled-kernel-4-19-will-not-boot-kernel-panic-not-syncing-system-is-deadlo
其他错误后面慢慢会有完善,请大家谅解
参考教程和感谢
https://blog.csdn.net/qq_34870631/article/details/80653589
https://blog.csdn.net/qq_36290650/article/details/83052315
感谢杭州电子科技大学张祯老师的指导
感谢我父母和女朋友的支持

