在Ubuntu16.04LTS下编译Linux-4.15.7内核

操作系统原理-课后作业1

在Ubuntu16.04LTS下编译Linux-4.15.7内核


一、下载内核

官网:https://www.kernel.org/

我下载的是Linux-4.15.7版本。

在Ubuntu16.04LTS下编译Linux-4.15.7内核_第1张图片

·在终端输入sudosu切换到root账户。

·输入mv linux-4.15.7.tar.gz  /usr/src,把下载的内核源代码文件移到/usr/src目录。

·输入cd /usr/src,切换到该目录下。

·输入tar zxvf linux,4.15.7.tar.gz,解压内核包,生成的源代码放在linux-2.6.36目录下。

·输入cd linux-4.15.7,切换到该目录下。


二、下载软件依赖包

一般的内核编译依赖软件包主要有以下几个:

· libncurses5-dev :主要是在make menuconfig时能够出现图形化的选择菜单所依赖的的库;

· libssl-dev : openssl的依赖包;

· build-essential:建立debian软件包的工具;

· openssl:涉及到系统安全的编译过程中的相关程序的依赖库;

· zlibc:允许运行中的文件能够实现解压缩数据文件的一个工具;

· minizip:是一个轻量级的支持库,能够支持压缩、提取、查看和操作ZIP文件。该软件包包括minizipminiunzip工具;

· libidn11-dev : 涉及到系统帮助等文档以及软件库等信息的一个软件包;

如果没有下载依赖包就会报错:

在Ubuntu16.04LTS下编译Linux-4.15.7内核_第2张图片

软件依赖包安装命令:

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

如过安装过程中按Y嫌麻烦,可以在安装命令后面加上个-y参数。


三、编译内核

依次使用命令:

sudo make mrproper
sudo make clean
sudo make menuconfig

实现完全干净的第一次编译。

其中mrproper为清除编译过程中产生的所有中间文件。

clean为清除上一次产生的编译中间文件。

menuconfig中出现选择的图形化界面后,直接按右方向键选择到exit退出,退出提示中选择保存,实现内核的默认配置。

进入Menuconfig界面,进行内核裁剪:

在Ubuntu16.04LTS下编译Linux-4.15.7内核_第3张图片

内核裁剪中参数的具体含义见以下博客:

http://blog.csdn.net/zhanjianshinian/article/details/9143349 

剪裁完毕后即可使用make命令进行内核编译。

先使用lscpu命令看看你的cpu支持几个线程:

在Ubuntu16.04LTS下编译Linux-4.15.7内核_第4张图片

输入make –j3命令,使用三个线程进行编译:

编译过程:

在Ubuntu16.04LTS下编译Linux-4.15.7内核_第5张图片


四、安装内核

编译完成后使用:

sudo make modules_install
sudo make install

依次安装内核模块和内核。

在Ubuntu16.04LTS下编译Linux-4.15.7内核_第6张图片

安装完成:

在Ubuntu16.04LTS下编译Linux-4.15.7内核_第7张图片


五、加载内核

重新启动系统,选择高级选项,进入内核选择加载界面,选择自己编译的内核的正常模式。

在Ubuntu16.04LTS下编译Linux-4.15.7内核_第8张图片

成功!

你可能感兴趣的:(操作系统原理)