以字符设备驱动为例:
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:将多个类似的配置选项组合在一起,供用户单选或者多选