打印

LINUX Kernel 文件系统中增加驱动模块

[复制链接]
201|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一亚麻怡|  楼主 | 2018-9-28 12:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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   卸载模块

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

404

主题

404

帖子

0

粉丝