内核编译

简介:

1、下载源码文件wKiom1nCUhiBrw82AAJUentEdKc022.png


2、导入Linux

wKioL1nCUeSCUYz-AAArEoOaAn8574.png


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

wKioL1nCUeTzKs0tAAAi-K4pfN4183.png


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

wKiom1nCUhjje585AAAfaZP7hOU869.png


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

wKioL1nCUeSRCpqrAABlQqJKdDw601.png

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

wKiom1nCUhiSaqrxAAAUBJ2qhqs032.png

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

 

6、装包组

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

 

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

 

8make menuconfig配置内核选项

wKiom1nCUhnhlfE5AABEWqiD1vc674.png

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

然后再次make menuconfig

wKioL1nCUeXxtLduAADEDTDMisY695.png

显示界面

wKiom1nCUhmh1ADdAAAy8KtBEGc290.png

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

进入General setup

wKioL1nCUeWidrBfAABfkVOWPDc217.png

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

wKiom1nCUhnTLk5DAABK9h-jWYw565.png

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

 

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

wKioL1nCUeXzBbvKAAAQ6S7tWFI760.png

进入File systems

wKioL1nCUeXwpUeHAAAeTgHH9rE347.png

进入DOS/FAT/NT Filesystems

wKiom1nCUhqiex_hAAAqX8XRWec883.png

将这一项改为M

wKiom1nCUhqz89J2AAAgXyN1_d0577.png

将最后一行打上星号。

然后Exit退出退出退出

wKioL1nCUeaxYDkoAAAVjfraK2k560.png

Yes保存

wKioL1nCUeaxnZB0AAAbcWxED1Q973.png

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

wKiom1nCUhqQBvPoAAAV_7IgGk0992.png

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

然后我们要开始编译啦!

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

wKioL1nCUebRLVqQAAAm4Fl1tDU315.png

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

然后再次make -j 4

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

wKiom1nCUhriiJDMAAARvKKgONQ192.png

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

wKiom1nCUhqw1Si3AAAMUehS8Ac514.png

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

 

9、安装模块

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

wKioL1nCUebCCzPVAAARNO8XaCg552.png

运行make modules_install命令安装模块

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

wKiom1nCUhvy5SBhAAASLNx1hkk882.png


10、安装内核相关文件

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

wKioL1nCUeeDNhg3AABLWQ0aqUU510.png

然后运行make install

wKiom1nCUhuAh1J5AABpzAWhorQ526.png

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

wKioL1nCUefgw37MAADL6SJDDe4337.png

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

编译成功~~


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


相关文章
|
30天前
|
算法 数据可视化 Linux
Linux内核编译:深入理解`make menuconfig`命令
Linux内核编译:深入理解`make menuconfig`命令
32 0
|
3月前
|
Ubuntu Linux 虚拟化
Linux编译内核
Linux编译内核
21 0
|
8月前
|
Linux 编译器 C语言
Linux内核编译和LLVM的信息
Linux内核编译和LLVM的信息
114 1
|
Linux
16.8 Linux启动引导程序加载内核
在刚刚的启动过程中,我们已经知道启动引导程序(Boot Loader,也就是 GRUB)会在启动过程中加载内核,之后内核才能取代 BIOS 接管启动过程。如果没有启动引导程,那么内核是不能被加载的。
186 0
16.8 Linux启动引导程序加载内核
|
Shell Linux 开发者
Linux内核编译与安装
Linux内核编译与安装 Linux内核介绍 Linux内核是一个用C语言写成的,符合POSIX标准的类Unix操作系统。内核是操作系统中最基本的一部分,提供了众多应用程序访问计算机硬件的机制。
1235 0
|
存储 网络协议 Unix
Linux内核配置文档!!!(make menuconfig)
一、引言: 本文档的内容大部份内容都是从网上收集而来,然后配合一些新的截图(内核版本:V2.4.19)。在每一配置项后会有一个选择指南的部份,用来指导大家怎么样根据自己的情况来做相应的选择;还有在每一个大项和文档的最后会有一个经验谈,它是一些高手们在应对问题和处理特有硬件时的一些经验(这个还得靠各位)。文档最后会发到网上,到时会根据网友们的回复随时进行更新。 我们的目的是让我们有一个全面的、简单明了内核编译帮手。 [注:] 请大家能够发表自己的经验和想法,使本文能够不断充实!但是最好不要发一些从网cp过来的没有经过自己实践的文章! 1.Code maturity
646 0
|
存储 Linux C语言
Linux下的lds链接脚本详解【转】
转自:http://www.cnblogs.com/li-hao/p/4107964.html 转载自:http://linux.chinaunix.net/techdoc/beginner/2009/08/12/1129972.
1497 0