当我们自己对内核代码进行了添加,如添加了对某设备的支持,我们就要添加内核编译选项使得我们可以编译我们自己的代码.
一下顺序可以互换:
1,拷贝源码到相应类型的目录下.
2,在该目录下找到Kconfig文件,在文件中添加选项:
一般为:
config config的名称
tristate 显示的名称 #用于显示在选项中的名称,可以有三种选择结果,不选择,内建,模块
bool 显示的名称 #用于显示在选项中的名称,可以有两种选择结果,选中和不选中,不支持模块,和tristate两者选一
depends on 其他选项名称 #根据其他选项是否被选择而显示或者不显示
select 其他选项名称 #这个和depends on相反,这个选项可以决定其他的选项的显示
default y #默认选项也是对应的不选择(n),内建(y),模块(m)三种结果,也可以根据其他的选择来决定,if 其他选项
help
help的内容 #帮助
如果我们是有一类很多的设备或者功能时,我们可以使用
menu 名称
config ....
config ...
endmenu
或者
choices
config ....
config ...
endchoice
跟menu与endmenu用法基本一样,唯一的区别在于,choices定义的“子菜单”(应该叫选项表)中的多个菜单项只能有一个被选中,相当于menu定义一个可多选的子菜单,choices定义一个单选的子菜单
comment 说明性的文字 #选项中显示一行说明性的文字,不能进行选择
source 其他的Kconfig文件 #引用其他的config文件
3,在makefile文件中添加
obj-y += 代码文件名.o #内建编译
obj-m += 代码文件名.o #模块编译
obj-$(自己添加的config名称) += 代码文件名.o #根据config选项进行编译
多文件编译:
obj-$(自己添加的config名称) += 目标.o
目标-y:= 代码1.o 代码2.o .....
或者根据其他选项来决定是否要集成某些 .o文件
目标-$(其他config选项) += 代码.o