天天看点

内核编译

2、导入Linux

<a href="https://s3.51cto.com/wyfs02/M01/A5/BA/wKioL1nCUeSCUYz-AAArEoOaAn8574.png" target="_blank"></a>

3、为了方便实验,先清空/app文件夹,将源码文件移动到文件夹下,解压

<a href="https://s3.51cto.com/wyfs02/M00/A5/BA/wKioL1nCUeTzKs0tAAAi-K4pfN4183.png" target="_blank"></a>

4、解压成功,顺便看一下大小为875M

<a href="https://s3.51cto.com/wyfs02/M02/07/09/wKiom1nCUhjje585AAAfaZP7hOU869.png" target="_blank"></a>

5、接下来我们需要一个模板,在/boot下有一个config-xxxxx文件,这个文件定义了编译的时候哪些特性启用了,启用上的是什么模式,都写在这个文件里。我们可以以它为模板。

<a href="https://s3.51cto.com/wyfs02/M01/A5/BA/wKioL1nCUeSRCpqrAABlQqJKdDw601.png" target="_blank"></a>

将这个文件拷贝到app/linux-4.13.2文件夹下,并且命名为.config的隐藏文件

<a href="https://s3.51cto.com/wyfs02/M02/07/09/wKiom1nCUhiSaqrxAAAUBJ2qhqs032.png" target="_blank"></a>

这样,等会我们去制作选择的功能启用的时候,它会自动的从这个目录下找这个.config文件,自动列出来它需要的哪些功能项,我们就可以在它的基础上进行修改了。

6、装包组

yum groupinstall "developmenttools" 包组大小写不敏感,可以都写成小写

7、然后进入/app/linux-4.13.2目录下(一定要进入目录!)

8、make menuconfig配置内核选项

<a href="https://s3.51cto.com/wyfs02/M00/07/09/wKiom1nCUhnhlfE5AABEWqiD1vc674.png" target="_blank"></a>

显示缺少ncurses-devel包,那我们就来安装它yum install ncurses-devel

然后再次make menuconfig

<a href="https://s3.51cto.com/wyfs02/M02/A5/BA/wKioL1nCUeXxtLduAADEDTDMisY695.png" target="_blank"></a>

显示界面

<a href="https://s3.51cto.com/wyfs02/M01/07/09/wKiom1nCUhmh1ADdAAAy8KtBEGc290.png" target="_blank"></a>

我们可以先改个内核本地名:

进入General setup

<a href="https://s3.51cto.com/wyfs02/M00/A5/BA/wKioL1nCUeWidrBfAABfkVOWPDc217.png" target="_blank"></a>

有一个本地版本,就是本来内核名字只有4.13.2,我们可以在后面加上自己定制的名字

<a href="https://s3.51cto.com/wyfs02/M02/07/09/wKiom1nCUhnTLk5DAABK9h-jWYw565.png" target="_blank"></a>

我们在里面输入内容-1.0-lkylinux。

然后还要再启用一个NTFS功能:

<a href="https://s3.51cto.com/wyfs02/M02/A5/BA/wKioL1nCUeXzBbvKAAAQ6S7tWFI760.png" target="_blank"></a>

进入File systems

<a href="https://s3.51cto.com/wyfs02/M01/A5/BA/wKioL1nCUeXwpUeHAAAeTgHH9rE347.png" target="_blank"></a>

进入DOS/FAT/NT Filesystems

<a href="https://s3.51cto.com/wyfs02/M00/07/09/wKiom1nCUhqiex_hAAAqX8XRWec883.png" target="_blank"></a>

将这一项改为M

<a href="https://s3.51cto.com/wyfs02/M00/07/09/wKiom1nCUhqz89J2AAAgXyN1_d0577.png" target="_blank"></a>

将最后一行打上星号。

然后Exit退出退出退出

<a href="https://s1.51cto.com/wyfs02/M02/A5/BA/wKioL1nCUeaxYDkoAAAVjfraK2k560.png" target="_blank"></a>

Yes保存

<a href="https://s1.51cto.com/wyfs02/M00/A5/BA/wKioL1nCUeaxnZB0AAAbcWxED1Q973.png" target="_blank"></a>

然后我们查看一下.config文件,发现它确实是刚刚被改过的,我们刚才做的设置就是改了这个文件。

<a href="https://s1.51cto.com/wyfs02/M01/07/09/wKiom1nCUhqQBvPoAAAV_7IgGk0992.png" target="_blank"></a>

我们查看一下文档,可以看到我们刚才改的NTFS确实变成了y。

然后我们要开始编译啦!

使用make -j 4命令,4个内核一起编译

<a href="https://s1.51cto.com/wyfs02/M00/A5/BA/wKioL1nCUebRLVqQAAAm4Fl1tDU315.png" target="_blank"></a>

发现现实缺少软件包,于是我们还要安装软件包yum install openssl-devel

然后再次make -j 4

(我在命令前后都加了个显示时间存到文档里date &gt;&gt; /app/date.log ;make -j 4 ;date &gt;&gt; /app/date.log)

<a href="https://s1.51cto.com/wyfs02/M02/07/09/wKiom1nCUhriiJDMAAARvKKgONQ192.png" target="_blank"></a>

查看了一下时间,编译了一个多小时啊喂!

<a href="https://s1.51cto.com/wyfs02/M01/07/09/wKiom1nCUhqw1Si3AAAMUehS8Ac514.png" target="_blank"></a>

再查看一下大小,9个多G。

9、安装模块

在安装之前先看一下/lib/modules下,目前只有一个3.10.0版本

<a href="https://s1.51cto.com/wyfs02/M01/A5/BA/wKioL1nCUebCCzPVAAARNO8XaCg552.png" target="_blank"></a>

运行make modules_install命令安装模块

运行完之后可以再查看一下/lib/modules,已经多了一个我们新的内核4.13.2,后面跟的-lkylinux就是我之前定义的本地版本名。

<a href="https://s1.51cto.com/wyfs02/M02/07/09/wKiom1nCUhvy5SBhAAASLNx1hkk882.png" target="_blank"></a>

10、安装内核相关文件

同样的,安装前我们先看一下/lib/modules下文件,只有一些3.10.0的文件

<a href="https://s4.51cto.com/wyfs02/M01/A5/BA/wKioL1nCUeeDNhg3AABLWQ0aqUU510.png" target="_blank"></a>

然后运行make install

<a href="https://s4.51cto.com/wyfs02/M00/07/09/wKiom1nCUhuAh1J5AABpzAWhorQ526.png" target="_blank"></a>

运行完之后再去查看/lib/modules下的文件,就多了一些4.13.2的文件了。

<a href="https://s4.51cto.com/wyfs02/M02/A5/BA/wKioL1nCUefgw37MAADL6SJDDe4337.png" target="_blank"></a>

再使用cat /boot/grub2/grub.cfg看一下启动菜单,也多了4的菜单。

编译成功~~

本文转自 Ty_endless 51CTO博客,原文链接:http://blog.51cto.com/tyendless/1967254

继续阅读