在linux内核文件中添加自己的驱动,添加自己的linux驱动,编译自己的linux驱动程序方法和例子图文

此文章为done原创,转载请写明出处,尊重原创。

写这个文章,我参考了网上的一些博客:

http://bbs.chinaunix.net/thread-3634524-1-1.html


http://www.bkjia.com/gjrj/800182.html


也参考了参考了 《linux驱动开发详解》3.4章节,实现建立自己驱动目录。


文章中的驱动范例是:linux设备驱动开发详解第二版 的 global mem tow,宋宝华主编的书本光盘源码



在我们学习了linux的驱动之后,我们都想编写一个linux驱动验证一下自己是否写的对,那么我们如何在Linux内核中编译自己的驱动呢?如何加自己的linux驱动?下面我们来试试:

目标内核  linux-kernel 2.6.28
 
 
 
1.进入你的内核源码文档,创建一个DoneLin_Driver文件夹来存放你的驱动,于是文件夹路径:drivers/DoneLin_Driver/:


2.复制你的范例驱动到刚刚建立的DoneLin_Driver文件夹中,我的范例名字叫global_mem_two.c:

3.在DoneLin_Driver文件夹中建立两个新文本文件:Kconfig 和 Makefile


4.修改DoneLin_Driver文件夹下的Kconfig文件,输入以下内容:

menu "DoneLin-driver "
comment "global_mem_two-driver "


config GLOBAL_MEM_TWO
	tristate "global_mem_two DriTst"
	help
	this is global mem 2 test programming
endmenu

5.接着修改DoneLin_Driver的另一个文件Makefile,输入以下内容:

obj-$(CONFIG_GLOBAL_MEM_TWO)	+= global_mem_two.o


6.修改上一层目录(Driver目录)中的Kconfig文件,声明自己的源代码:
在"menu "Device drivers""下面加入如下内容:
 
source "drivers/DoneLin_Driver/Kconfig"##...add my tst driver module
 

 
7.修改arch/arm/Kconfig

 
同样,跟在driver/Kconfig一样,在"menu device drivers"下面加入同样的语句:
 
source "drivers/DoneLin_Driver/Kconfig"
 
就是说:在arch/arm/Kconfig menu "Device Drivers" endmenu之间添加source "drivers/DoneLin_Driver/Kconfig"
在drivers/Kconfig menu "Device Drivers" endmenu之间添加source "drivers/hello/Kconfig"
(不知为什么arch/arm/Kconfig中竟然含有Drivers里Kconfig内容的一个复本,实验证明只对drivers/Kconfig中修改内容无效。)
 
8.修改Drivers目录下的Makefile,在如图位置,加入:

obj-$(CONFIG_GLOBAL_MEM_TWO)				+= DoneLin_Driver/#ADD FOR TEST add_for_test add for test测试的驱动

 

 
 
8.都修改好,保存好之后,回到linux内核根目录,make menuconfig,奇迹出现了,我自己的linux驱动程序出现在内核的device drivers选项里面了:


 

 
选择global_mem_tow_DriTst为m,表示编译成模块,编译成ko文件
 
然后,保存退出,make,  make zImage,  make modules即可生成新的内核和新的modules,
 

 
完成了,停笔,自己写的内核驱动通过了,是不是很爽?
 
global_mem_two.c是宋宝华的书 linux设备驱动开发详解 中的光盘源码,我的另外一个博客里面有,地址是:
http://blog.csdn.net/mynameislinduan/article/details/42495619
编译通过,直接复制可用

                
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mynameislinduan

你的鼓励是我最大动力写博客不易

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值