linux内核的编译步骤及模块动态加载,linux内核裁剪及编译可加载模块

本文介绍了如何从Linux内核源码结构开始,详细讲解了内核编译流程,包括清理、配置、裁剪与编译zImage,重点涉及驱动程序编写和体系结构管理。使用ctags工具管理和编译参数。适合深入理解Linux内核的开发者阅读。
摘要由CSDN通过智能技术生成

一:linux内核裁剪:

(1):编译内核源码:

在邦飞的课程学习已经接近尾声;这周的重点内容是内核驱动的编写,在编写驱动之前首先的了解linux内核源码,linux主要是由五个子系统组成:进程调度,内存管理,文件系统,网络接口以及进程间通信;下面是解压的linux内核源码文件:

20180110181940853161.png

下面对linux内核里面的文件进行简单的说明:

arch目录中包含于体系结构有关的子目录和文件,arm的相关平台信息在arch/arm目录下。

scripts目录中存放着对核心配置的脚本文件。

crypto目录中包含着常见的加密算法。

drivers目录包含各种各样的驱动,包括字符型,快型,网络设备驱动程序。

fs目录中包括了linux系统所支持的文件系统类型,比如ext4 nfs

init目录中存放着与linux内核相关的启动代码。

kernel目录中包含许多linux进程调度子系统相关的源代码。

lib目录存放linux内核所用的库文件。

mm目录存放linux内存管理的源代码。

net目录存放有关网络协议的源代码。

编译linux内核源码,最重要的是Makefile,在linux内核中每个文件都有一个Makefile,统一由最外层的Makefile来调用:Makefile这个文件中包含了许多linux内核配置的信息,我们Linux内核要编译的平台,交叉编译器的选择(如下图),编译链接Linux内核的参数;

20180110181940856090.png

由于linux源代码非常庞大,我们找起来非常困难;在编译linux之前先介绍一个管理工具ctags

在linux源码中我们使用命令[[email protected] linux-3.5]# ctags -R ./

等它执行完毕(要几分钟),我们可以用vim任意打开一个文件,在命令模式下输入:ta 回车就可以了

20180110181940857067.png

二:linux源码编译

下面是linux源码编译步骤:

(1)在编译之前首先使用make clean, make distclean清除原编译和配置文件

(2)找到运行平台(arm)下面的配置文件拷贝到源码目录一命名为  .config,.config文件是在进行内核配置的时候,经过配置后生成的内核编译参考文件,命令如下

[[email protected] linux-3.5]# cp arch/arm/configs/exynos4_defconfig   .config

(3)拷贝完成之后就可以运行make命令,这个过程要等很久:

(4)编译完成之后就会在arch/armboot目录下生成zImage,生成的这个文件就是linux镜像

[[email protected] linux-3.5]# arch/arm/boot/zImage

之后我们就可以使用linux的镜像文件了

二:linux内核裁剪

以上编译的是没有裁剪过linux源码,如果我们不想使用源码里面的部分功能,我们就可以通过裁剪的方式阻止它编译:在linux源码包中我们可以使用make menuconfig,图形化界面很容易操作;就可以进行linux的源码的裁剪:

(1)首先在源码包中运行make menuconfig这个命令

20180110181940859020.png

如果不想使用它的某些功能,取消前面*即可,按空格键来控制选择

(2)保存退出,执行make

原文:http://www.cnblogs.com/wenqiang/p/4802745.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值