操作系统作业——Ubuntu编译linux内核
要求:
从网上下载新的内核源代码开始,写出编译新内核的具体过程,Step by step,包括每一个命令的使用。
Step 1:
查看自己的 Ubuntu 内核版本(笔者的版本为 4.15.0);并安装相关依赖
sudo apt-get install build-essential kernel-package libncurses5-dev libncurses-dev
Step 2:
官网下载新内核源码(最好下载最新的稳定版本),笔者就是下载了5.0.1版本。
Step 3:
下载的压缩包解压后,将linux-5.0.1文件夹移动到 /usr/src 目录下
sudo mv linux-5.0.1 /usr/src
Step 4:
开始配置
cd /usr/src/linux-5.0.1
sudo make mrproper //清除曾经编译过的旧文件,第一次编译可不执行
sudo make clean //清除编译中间文件
sudo make menuconfig //基于ncurse库编制的图形工具界面
注:可能出现的问题
- 执行 sudo make menuconfig 出现问题时,根据错误提示下载相应安装包即可,例如:
可执行 apt-get 命令:
sudo apt-get install ncurses package
正确安装后的图形工具界面如图,可在此设置将要编译的内核,也可以直接保存。
Step 5:
生成新内核,将配置过程中选中编入内核中的程序编译链接产生 linux 内核
sudo make j2 //2核
注:可能出现的问题
- 若出现问题如下图,则是因为未安装 libssl-dev 所致,安装即可
(libssl-dev 包含 libraries,header files and manpages,它是 openssl 的一部分,而 openssl 对ssl 进行了实现)
Step 6:
生成modules,将配置过程中选中编成 modules 的程序编译链接成 modules
sudo make modules
Step 7:
安装 modules,将上一步产生的modules 拷到系统文件下,以供新内核调用
sudo make modules_install
Step 8:
安装内核
sudo make install
Step 9:
安装成功,重启系统 --> Ubuntu 高级选项
–> 选择内核版本
注:可能出现的问题
- 若出现: System is deadlocked on memory,则是因为分配的内存不够
增加内存:
编辑虚拟机设置 --> 内存,增大即可
Step 10:检查新内核版本
uname -r
注:解决系统启动时的界面选择问题
sudo gedit /etc/default/grub //编辑文件
#GRUB_HIDDEN_TIMEOUT=0 //注释该行
#GRUB_HIDDEN_TIMEOUT_QUIET=0 //注释该行
sudo update-grub //更新 grub