向内核添加自己的驱动程序(Kconfig&Makefile)

DIY:向内核添加自己的程序

A.在Linux内核中增加自己的程序步骤(注意这里只是程序文件):
1.将编写的源代码复制到Linux内核源代码的相应目录中。
2.在目录的Kconfig文件中增加新源代码对应项目的编译配置选项
3.在目录的Makefile文件中增加对新源代码的编译条目。

B.在Linux内核drivers/目录中增加目录和子目录步骤:
1.所加目录为daiq,文件如下:
[daiq@localhost daiq]$ tree
.
|-- Kconfig
|-- Makefile
|-- led
|   |-- Kconfig
|   |-- Makefile
|   `-- led.c
`-- test.c

#注意此时各个目录中的Makefile和Kconfig文件是空的
2.在新增的相应目录添加Kconfig和Makefile文件,上面的目录中已经添加。
3.修改新增目录的父目录的Kconfig和Makefile文件,以便新增的Kconfig和
Makefile能被引用。向父目录中的Makefile添加:
 obj-y                           += daiq/ 
表示在编译过程中包含子目录daiq目录。然后修改Kconfig文件,添加:
source “drivers/daiq/Kconfig”
表示在配置时引用子目录daiq中的配置文件Kconfig。
4.实际上, 要让drivers/daiq/Kconfig有效,要在arch/arm/Kconfig文件中添加:
source “drivers/daiq/Kconfig”
父目录drivers/Kconfig的修改可以不要。

5.经过上面一步,内核就可以找到所加的目录daiq了,然后就是编辑各个目录中的Makefile和Kconfig文件,在你添加的目录daiq中的Makefile加入:
  obj-$(CONFIG_TEST) += test.o #因为在daiq目录中要编译test.c文件
     #所以会根据CONFIG_TEST来决定编译选项
    obj-y += led/#编译daiq目录中的子目录led
 然后Kconfig文件是:

menu "DaiQ device support"   #在make menuconfig时要显示的菜单入口                                        
config DAIQ_TEST
 bool "Test"
 help
   DaiQ device support
source "drivers/daiq/led/Kconfig"
endmenu
注意:menu和endmenu的前后要加回车,不然make menuconfig的时候会出错。

再看led目录下的Makefile和Kconfig:
Makefile为文件:
obj-$(CONFIG_LED)+=led.o 
Kconfig文件:
 config LED
      tristate “led support” 

5.现在可以make menuconfig来配置添加自己目录daiq的驱动了!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值