make menuconfig 中出现你新增加的驱动模块的操作,是基于ARM11 CPU
注:PWC 用户电源控制系统
1. 在drives目录下添加pwc目录,内含pwc.c Kconfig Makefile pwc.c内容: #include #include MODULE_LICENSE("GPL"); static int pwc_init(void) { //..控制部分
return 0; } static void pwc_exit(void) {
//..控制部分 } module_init(pwc_init); module_exit(pwc_exit); Kconfig内容: config HELLO tristate "PWC GPIO Driver" default n help test for adding driver to menuconfig. MakeFile内容: obj-$(CONFIG_PWC) += pwc.o //..CONFIG_PWC = CONFIG_+PWC; 2. 上面的Kconfig文件再加上下面的两个配置,可使PWC项出现在配置菜单中。 在arch/arm/Kconfig menu "Device Drivers"
endmenu之间添加 source "drivers/pwc/Kconfig" 在drivers/Kconfig menu "Device Drivers" endmenu之间添加 source "drivers/pwc/Kconfig" (不知为什么arch/arm/Kconfig中竟然含有Drivers里Kconfig内容的一个复本, 实验证明只对drivers/Kconfig中修改内容无效。) 3.修改Drivers目录下的Makefile文件,添加如下行, obj-$(CONFIG_PWC) += PWC/ 当CONFIG_PWC为y或m时,使系统能找到PWC驱动的makefile。 linux-2.6.25目录下make menuconfig,在Device Drivers菜单下选中PWC GPIO Driver项比如M,作为module。然后保存配置,执行make命令,就可以看到 CC [M] drivers/pwc/hello.o 的 log了,pwc目录里生成了pwc.o pwc.ko的等文件。 流程: 假如在make menuconfig时配置PWC GPIO Driver为M(即编为模块,而不是编进linux内核) 则.config中就会多一行CONFIG_PWC = m 如此一来,drivers/Makefile中obj-$(CONFIG_PWC) += PWC/就变成了obj-m +=PWC/ 于是执行make命令时,便会进入PWC目录里找makefile,MakeFile内容obj-$(CONFIG_PWC) += PWC.o 变成了obj-m +=pwc.o,所以pwc.c就被编译成模块了。
注:模块方式
insmod 加载模块
rmmod 卸载模块 |