在menuconfig中添加编译驱动设备

 

我采用的是2.6.26的内核。

例:在drivers里添加个设备文件夹如(buzzer文件夹),里面有buzzer.c和buzzer.h文件把他们变成模块。

1.       在arch/arm/kconfig 和drivers/kconfig 里添加source "drivers/buzzer/Kconfig"选择模块的选项。

2.       在/drivers/里的makefiel文件添加编译的路径

     obj-$(CONFIG_NEW_BUZZERS)     += buzzer/

3.       在/drivers/buzzer/里编写Makefile文件。

     obj-$(CONFIG_NEW_BUZZERS)     += buzzer.o

4.       在/drivers/buzzer/里编写kconfig文件

    menuconfig NEW_BUZZERS

       bool "BUZZER Support"

       help

         Say Y to enable Linux BUZZER support.  This allows control of supported

         BUZZERs from both userspace and optionally, by kernel events (triggers).

 

         This is not related to standard keyboard BUZZERs which are controlBUZZER

         via the input system.

若没有选择相应的模块就不会被编译。

方法2

以模块的方式加载进去。其makefile文件如下:

obj-m := buzzer.o

 

 

KSRCDIR = ../linux-2.6.26.5

KOBJDIR = /home/s3c2410/

 

EXTRA_CFLAGS += -I../modules

 

default:

       $(MAKE) -C $(KSRCDIR) O=$(KOBJDIR) SUBDIRS=$(PWD) ARCH=arm CROSS_COMPILE=/usr/local/arm/3.4.1/bin/arm-linux- modules

 

clean:

       rm -f *.o *.ko *.mod.c .*.cmd Module.symvers .tmp_versions *.order

       rm -rf .tmp_versions

注意:

1.在编写driver/设备/   下的Makefile 时,生成的.O要和.C文件同名,否则编译会出错。


2.编译的设备文件和编译的内核要处于同一个目录下,而且内核要先进行编译过

你可能感兴趣的:(linux,input,makefile,events,keyboard,triggers)