linux内核配置编译过程

文章介绍了Linux内核配置的三种主要方法,包括直接使用Makemenuconfig、选择预设的defconfig文件和复用已有的.config文件。Makemenuconfig的使用包括菜单导航和模块编译选项设置。.config文件在内核源码和子目录Makefile中起到关键作用,控制模块的编译状态。内核配置完成后,通过make命令编译生成uImage文件。
摘要由CSDN通过智能技术生成

1、linux内核配置

linux内核的配置,其本质是获取到.config文件,配置的方法一般分为以下三种:

(1)直接执行Make menuconfig,自行选择每一项(很少这样用);

(2)根据控制器类型在arcn/arm/configs中选择合适的xxx_defconfig文件,执行make xxx_defconfig,然后再执行make menuconfig进行简单修改即可(初次开发常用);

(3)别人已经开发完产品的.config文件直接复制过来,然后再根据需求执行make menuconfig进行简单修改(项目组开发常用)。

选择上述其中一种方法进行配置,然后执行make命令即可编译内核。

2、Make menuconfig用法

执行Make menuconfig的目的一般是对.config文件进行简单调整,执行该命令后会进入如下图文界面:

具体操作方法如下:

(1)按上、下、左、右键进行菜单选择

(2)按enter键进入当前菜单的子菜单 

(3)按esc返回上一级

(4)y键选择将模块编译进内核,n键不编译进,m键编译为模块(ko文件)

(5)?键查看帮助

(6)/键进入查找框,可以查询模块的路径

3、.config文件的使用

以DM9000网卡为例,首先在make menuconfig中将其配置为Y:

 退出menuconfig后在.config文件中可以查看到该项的配置:

3.1 内核源码的使用

在内核的源码中有类似如下的使用 :

CONFIG_DM9000这个宏定义位于include/linux/autoconf.h中, 该文件中定义的宏是根据.config中的配置来自动生成的,如果DM9000在执行make menuconfig的时候设置为n,那么在include/linux/autoconf.h文件中就不会出现#define CONFIG_DM9000 1这行代码。

 3.2 子目录的Makefile使用

在drivers/net/Makefile 中有以下使用:

 $(CONFIG_DM9000)即对CONFIG_DM9000变量进行取值,在进行编译的时候,obj-y表示编译进内核,obj-m则表示编译为模块,CONFIG_DM9000这个变量在include/config/auto.conf中定义,该文件也是根据.config生成的,查看该文件可以发现CONFIG_DM9000被赋值为y:

4、总结

内核的配置过程主要是为了生成.config文件,配置完成后执行make编译内核,内核源码和Makefile文件会根据配置对各个模块进行处理,最终生成uImage文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值