一、make menuconfig 相关文件
1 根目录下 script
2 各层目录下的 Kconfig文件
3 各层下的makefile 文件
4 根目录下的 .config 文件,arm/arch/下的 config文件
5 linux 根目录下的 include/generated/autoconf.h
二、各文件作用
1 script 下面是图形绘制相关脚本,无需关心
2 Kconfig, 配置界面选项。首先读取 arch/ARCH/Kconfig文件,生成框架。ARCH/Kconfig文件,生成框架。ARCH由根目录下Makefile文件得到。或者 make ARCH=arm menuconfig
3 arch/ARCH/configs默认配置选项。选项很多,内核会最终选取.config文件作为默认选项。4.config 我们在make menuconfig时会把相应的选择保存在.config中,可以手动copy保存。5makefile,autoconf,当我们执行makemenuconfig 中的选项时,系统除了自动保存.config外,还会将选项已宏的形式保存在include/generated/autoconf.h中。内核中的代码会根据条件中的宏进行选择编译。在Makefile中,要自己手动添加这个模块,obj−ARCH/configs默认配置选项。选项很多,内核会最终选取.config文件作为默认选项。4.config 我们在make menuconfig时会把相应的选择保存在.config中,可以手动copy保存。5makefile,autoconf,当我们执行makemenuconfig 中的选项时,系统除了自动保存.config外,还会将选项已宏的形式保存在include/generated/autoconf.h中。内核中的代码会根据条件中的宏进行选择编译。在Makefile中,要自己手动添加这个模块,obj−(CONFIG_MODULES)+= modules.o,其中 CONFIG_MODULES就是我们在Kconfig中添加的选项。
三、总结一下添加一个驱动模块的步骤
1 编写一个驱动.c文件 eg.c, 将 eg.c放到内核中的驱动中
2 按照Kconfig 规则,在这个模块中添加相应模块信息,环境变量。
3 执行make menuconfig 选中该选项
4 在Makefile 中添加这个编译模块,注意环境变量和Kconfig中一致,编译出的 .o文件和.c文件文件名一致。
以上
谢谢
linan101