示例:將Add_Sub模塊編譯進內核
在內核源碼的driver下新建AddSub_Kconfig子目錄並將該模塊源碼放入該目錄
can@ubuntu:~/tiny4412/linux-3.8_test/drivers$ tree AddSub_Kconfig/
AddSub_Kconfig/
|– Add_Sub.c
|– Add_Sub.h
`– test.c0 directories, 3 files
爲目錄創建Kconfig和Makefile文件,同時修改子目錄的父目錄中的Kconfig及Makefile文件,使得子目錄中的Kconig和Makefile文件能夠被引用
AddSub_Kconfig目錄中的Kconfig文件
#
# Add_Sub confirguration
#
menu "Add_Sub" #主菜單
comment "Add_Sub"
config CONFIG_ADD_SUB #子菜單,添加Add_Sub模塊的功能
boolean "ADD_SUB support"
default n
#子菜單中,添加test模塊的功能,只有配置CONFIG_ADD_SUB選項時,該菜單纔會顯示
config CONFIG_TEST
tristate "ADD_SUB test support"
depends on CONFIG_ADD_SUB #依賴CONFIG_ADD_SUB
default n
endmenu #主菜單結束
修改driver目錄下的Kconfig文件,在文件的末尾增加以下內容:
source “drivers/AddSub_Kconfig/Kconfig”
腳本中source表示引用新的Kconfig文件,參數爲文件的相對路徑名,同時爲了使AddSub和test模塊被編譯,需要在AddSub_Kconfig目錄下增加一個Makefile文件,文件如下
obj-$(CONFIG_ADD_SUB)+=AddSub.o
obj-$(CONFIG_TEST)+=test.o
變量CONFIG_ADD_SUB和CONFIG_TEST就是Kconfig文件中定義的變量,根據腳本配置得到
obj-y:構建模塊並編譯進內核
obj-n:不構建模塊
obj-m:單獨編譯模塊,不放入內核
同時修改drivers目錄下的Makefile,增加以下腳本
obj-$(Add_Sub)+=AddSub_Kconfig/
使得在內核編譯的時候能夠進入AddSub_Kconfig目錄中。
最終的目錄樹如下:
can@ubuntu:~/tiny4412/linux-3.8_test/drivers$ tree AddSub_Kconfig/
AddSub_Kconfig/
|– Add_Sub.c
|– Add_Sub.h
|– Kconfig
|– Makefile
`– test.c0 directories, 5 files
3.進入內核代碼目錄中執行 make menuconfig命令
選擇Device Driver選項,進入即可配置