红联Linux门户
Linux帮助

在linux内核文件中添加自己的驱动,添加自己的linux驱动

发布时间:2016-09-29 11:03:46来源:blog.csdn.net/mynameislinduan作者:DoneLin
在我们学习了linux的驱动之后,我们都想编写一个linux驱动验证一下自己是否写的对,那么我们如何在Linux内核中编译自己的驱动呢?如何加自己的linux驱动?下面我们来试试:
目标内核:linux-kernel 2.6.28;
 
1.进入你的内核源码文档,创建一个DoneLin_Driver文件夹来存放你的驱动,于是文件夹路径:drivers/DoneLin_Driver/:
在linux内核文件中添加自己的驱动,添加自己的linux驱动
 
2.复制你的范例驱动到刚刚建立的DoneLin_Driver文件夹中,我的范例名字叫global_mem_two.c:
 
3.在DoneLin_Driver文件夹中建立两个新文本文件:Kconfig 和 Makefile
在linux内核文件中添加自己的驱动,添加自己的linux驱动
 
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
在linux内核文件中添加自己的驱动,添加自己的linux驱动
 
5.接着修改DoneLin_Driver的另一个文件Makefile,输入以下内容:
obj-$(CONFIG_GLOBAL_MEM_TWO) += global_mem_two.o
在linux内核文件中添加自己的驱动,添加自己的linux驱动
 
6.修改上一层目录(Driver目录)中的Kconfig文件,声明自己的源代码:
在"menu "Device drivers""下面加入如下内容:
source "drivers/DoneLin_Driver/Kconfig"##...add my tst driver module
在linux内核文件中添加自己的驱动,添加自己的linux驱动
 
7.修改arch/arm/Kconfig
在linux内核文件中添加自己的驱动,添加自己的linux驱动
同样,跟在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测试的驱动
在linux内核文件中添加自己的驱动,添加自己的linux驱动
在linux内核文件中添加自己的驱动,添加自己的linux驱动
 
8.都修改好,保存好之后,回到linux内核根目录,make menuconfig,奇迹出现了,我自己的linux驱动程序出现在内核的device drivers选项里面了:
在linux内核文件中添加自己的驱动,添加自己的linux驱动
在linux内核文件中添加自己的驱动,添加自己的linux驱动
选择global_mem_tow_DriTst为m,表示编译成模块,编译成ko文件。
然后,保存退出,make,  make zImage,  make modules即可生成新的内核和新的modules
在linux内核文件中添加自己的驱动,添加自己的linux驱动
 
完成了,停笔,自己写的内核驱动通过了,是不是很爽?
 
本文永久更新地址:http://www.linuxdiyf.com/linux/24586.html