當咱們本身對內核代碼進行了添加,如添加了對某設備的支持,咱們就要添加內核編譯選項使得咱們能夠編譯咱們本身的代碼.源碼
一下順序能夠互換:編譯
1,拷貝源碼到相應類型的目錄下.file
2,在該目錄下找到Kconfig文件,在文件中添加選項:select
通常爲:引用
config config的名稱makefile
tristate 顯示的名稱 #用於顯示在選項中的名稱,能夠有三種選擇結果,不選擇,內建,模塊文件
bool 顯示的名稱 #用於顯示在選項中的名稱,能夠有兩種選擇結果,選中和不選中,不支持模塊,和tristate二者選一make
depends on 其餘選項名稱 #根據其餘選項是否被選擇而顯示或者不顯示co
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