linux内核中的.config

本文解析了Linux内核配置文件.config的作用及其如何影响内核编译过程,特别是驱动程序的编译方式。通过具体实例说明了不同配置选项如何在源代码中体现,并最终决定了驱动是编译进内核还是作为模块。

经过make menuconfig 生成 .config 决定哪些驱动编译到内核,哪些驱动编译为模块

那为什么呢?举个例子分析一下


eg: 在.config 中有 CONFIG_DM9000 = y

grep "CONFIG_DM9000 " * -R

发现相关的三类:
1. c文件中
arch/arm/mach-s5pv210/mach-tq210.c:#ifdef CONFIG_DM9000  
2. defconfig文件
arch/arm/configs/tq210_defconfig:CONFIG_DM9000=y
3. 子目录中
drivers/net/Makefile:obj-$(CONFIG_DM9000) += dm9000.o //联系到obj-m,obj-y的含义
4. include文件夹
include/config/auto.conf:CONFIG_DM9000=y
include/generated/autoconf.h:#define CONFIG_DM9000 1


联系:

联系1,4 c文件使用的宏 被定义在 include下面的 autoconf.h,c文件编译时会包含此头文件,使.c中的宏有效。
联系2.3 顶层Makefile会include auto.conf 在编译子目录下的Makefile 时决定驱动该编译为ko文件还是编译进入内核。

联系4和.config 可以认为 .config生成了auto.conf与autoconf.h 这两个文件


make menuconfig 配置Kconfig之后产生.config  ,.config编译时产生 auto.conf 和autoconf.h

auto.conf 被顶层Makefile include

autoconf.h被C源代码的头文件包含

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值