本文主要是介绍在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.编译的设备文件和编译的内核要处于同一个目录下,而且内核要先进行编译过
这篇关于在menuconfig中添加编译驱动设备的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!