打印
[嵌入式linux]

RK3568驱动指南|第二篇 字符设备基础-第7章 menuconfig图形化配置实验(三)

[复制链接]
1793|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
遥寄山川|  楼主 | 2024-3-4 10:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
7.3 .config配置文件介绍
我们在图形化配置界面配置好了以后,会得到一个.config配置文件。在编译内核的时候会根据这个.config文件来编译内核。这样是不是就实现了通过图像化界面的配置来配置内核呀。用通俗的话来说,Kconfig就是饭店的菜单,.config就是客人点完的菜。然后厨师会根据客人点的菜,也就是.config来做菜,对应的操作就是编译内核。
那.config是如何产生的呢?对应上面的例子就是要有服务员给我们点菜呀。
当我们使用make menuconfig的时候,会通过mconf程序去解析Kconfig文件,然后生成对应的配置文件.config。所以这个mconf就是服务员。
mconf程序源码在内核源码scripts/kconfig目录下,如下图所示,这里不对Kconfig文件的解析流程进行分析,感兴趣的同学可以自行分析下mconf的源码。

有了.config配置文件以后,内核就可以根据这个配置文件来编译内核,比如控制某些驱动编译进内核,或者控制某些驱动不编译内核。那他是怎么实现的呢?
.config会通过syncconfig目标将.config作为输入然后输出需要文件,这里我们重点更关注auto.conf和autoconf.h。如下图(图7-19)所示:

在auto.conf文件中,存放的是配置信息。如下图(图7-20)所示:

在内核源码的顶层Makefile中会包含auto.conf文件,以此引用其中的变量来控制Makefile的动作,如哪些驱动编译,哪些驱动不编译。如:

auto.conf文件中


Makefile中包含auto.conf文件

内核源码下drivers/A/Makefile引用这个变量

注:obj-y就是编译进内核,obj-m就是编译成ko文件。

在autoconf.h中,是C语言代码。用来配合编译时的条件选择。如下图(图7-21)所示:


更多内容可以B站搜索北京迅为/CSDN搜索迅为RK3568开发板


使用特权

评论回复

相关帖子

沙发
zwsam| | 2024-3-4 10:55 | 只看该作者
不错不错

使用特权

评论回复
板凳
WoodData| | 2024-4-2 17:19 | 只看该作者
学习学习

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

176

主题

183

帖子

0

粉丝