以字元裝置驅動為例:
1、首先将驅動源碼拷貝進linux源碼目錄下的/drivers/char下
2、修改char目錄下的Kconfig
在menu "Character devices"下面添加如下内容:
config FS4412_LED
tristate "FS4412LED Device Support"
depends onARCH_EXYNOS4
help
support leddevice on FS4412develop board
其中config FS4412_LED用在Makefile中的obj-$(CONFIG_FS4412_LED) +=fs4412_led_drv.o
tristate是三個選項,*為編譯進核心,m為子產品, 空格為不編譯
tristate也可以用bool ,則為兩個選項,沒有子產品選項
depends on 表示依賴
help是幫助
3、修改drivers/char/Makefile
在檔案最後添加如下代碼:
obj-$(CONFIG_FS4412_LED) += fs4412_led_drv.o
4、編譯LED驅動到核心中
配置核心時按“空格”選擇,配置完成後儲存退出
$ make menuconfig
Device Drivers --->
Character devices --->
<*>FS4412 LED Device Support
儲存退出,重新編譯後把uImage拷貝到tftpboot下
$ make uImage
$ cp arch/arm/boot/uImage/tftpboot
menuconfig:配置選項菜單檔案
.config:執行menuconfig後的實際配置選項檔案
Kconfig:是生成menuconfig的源碼
Kconfig---->menuconfig—>.config
Kconfig文法:
menu~endmenu:用于生成一個菜單選項
source:用于讀取另外一個Kconfig檔案内容。類似于C的#include
choice~endchoice:将多個類似的配置選項組合在一起,供使用者單選或者多選