Linux内核配置原理及make menuconfig和.config文件分析

一,内核配置的必要性
Linux内核源代码中集成了很多功能,具体的某个用户只会用到其中的部分功能。该用户从中挑选自己需要的功能,这就叫内核配置。

二,如何进行内核如何进行内核配置
通过make menuconfig指令进行内核配置。 对于每一个配置选项,选"y"、“m"或"n”。其中"y"表示将相应特性的支持或设备驱动程序编译进内核;"m"表示将相应特性的支持或设备驱动程序编译成可加载模块,在需要时,可由系统或用户自行加入到内核中去;"n"表示内核不提供相应特性或驱动程序的支持。 以RTC配置为例进行讲解:Device Drivers->Real Time Clock

三,查看配置结果
.config文件保存配置结果。
选y的配置项,在.config文件中为: CONFIG_RTC_DRV_CMOS=y
选m的配置项,在.config文件中为:CONFIG_RTC_DRV_CMOS=m
选n的配置项,在.config文件中为:# CONFIG_RTC_DRV_CMOS is not set

四,make命令如何使用配置结果
/drivers/rtc/makefile
obj-$(CONFIG_RTC_DRV_CMOS) += rtc-cmos.o
相当于:
obj-y += rtc-cmos.o 编译进内核
obj-m += rtc-cmos.o 编译成模块
告诉make,在这目录里,有一个名为rtc-cmos.o的目标文件。rtc-cmos.o将从rtc-cmos.c 编译得到。
除了y、m以外的obj-x 形式的目标都不会被编译。

五,Linux源代码如何使用配置结果
相关的脚本程序根据.config文件,生成autoconf.h文件,供源程序使用。
#define CONFIG_RTC_DRV_CMOS 1
#define CONFIG_RTC_DRV_CMOS_MODULE 1

六,总结
make menuconfig 命令读取当前的.config文件,决定配置菜单的选项。
用户通过菜单配置相关功能。
保存退出后更新.config文件,供make内核使用。
Make根据.config文件,决定把那些功能编译进内核,哪些功能编译成模块。同时生产autoconf.h文件。
————————————————
版权声明:本文为CSDN博主「gaoyanli1972」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/gaoyanli1972/article/details/103304544

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值