添加内核编译选项

当我们自己对内核代码进行了添加,如添加了对某设备的支持,我们就要添加内核编译选项使得我们可以编译我们自己的代码.

一下顺序可以互换:

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

原文地址:https://www.cnblogs.com/CHYI1/p/5578025.html