Linux内核配置
Posted hellokitty2
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux内核配置相关的知识,希望对你有一定的参考价值。
1.autoconf.h文件
老版本的Linux内核中,执行make menuconfig后,编译系统会把所有的配置信息保存到源码顶层目录下的.config文件中,
然后将.config中的内容转换为C语言能识别的宏定义更新到include/generated目录下的autoconf.h文件中。
比如会将CONFIG_XXX =y的定义转换为#define CONFIG_XXX 1的模式写到autoconf.h文件当中。autoconf.h文件是被自动包含,
不需要C代码文件中显式包含。在内核源码的根目录下的Makefile中实现了自动包含,顶层Makefile中相关的内容如下:
# Use LINUXINCLUDE when you must reference the include/ directory.
# Needed to be compatible with the O= option
LINUXINCLUDE := -I$(srctree)/arch/$(hdr-arch)/include -Iarch/$(hdr-arch)/include/generated -Iinclude $(if $(KBUILD_SRC), -I$(srctree)/include) -include include/generated/autoconf.h
......
export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS
在LINUXINCLUDE赋值的最后一行包含了autoconf.h文件,然后通过export导出给其它的Makefile文件使用。
新内核中(4.14)中$(Q)test -e include/generated/autoconf.h
以上是关于Linux内核配置的主要内容,如果未能解决你的问题,请参考以下文章
Linux 内核编译 Linux 内核 ④ ( 打开 Linux 内核编译 菜单配置 |菜单配置中的光标移动与选中状态 | 保存配置 | 配置项帮助文档 )
Linux 内核编译 Linux 内核 ③ ( 安装 ncurses | 安装 flex | 安装 bison | 打开 Linux 内核编译配置菜单 )