在linux内核驱动树中添加自己的驱动

在linux内核驱动树中添加自己的驱动

例如在linux-2.6.x.x/drivers/char中添加驱动目录lzp_iic

1、在linux-2.6.x.x/drivers/char目录下添加lzp_iic目录,并在lzp_iic目录添加Kconfig和Makefile
/*******************Kconfig 内容******************************************/
#
# AT24C02A device configuration
#

#用menuconfig建一个菜单项LZP_IIC,显示的字符是tristate后面跟的字符串
menuconfig LZP_IIC
    tristate "lzp AT24C02A IIC EEPROM Support"
    #depends on HAS_IOMEM
    #depends on EXPERIMENTAL

#判断LZP_IIC菜单项是否被选中,选中则显示具体的驱动项
if LZP_IIC

#具体的驱动项LZP_AT24C02A,依赖于ARCH_S3C2440
config LZP_AT24C02A
    tristate "lzp AT24C02A driver"
    depends on ARCH_S3C2440
    ---help---
      liuzhiping first linux driver for AT24C02A use iic interface.
     
endif # LZP_IIC
/*******************Kconfig end******************************************/

/*******************Makefile 内容******************************************/
#
# Makefile for the kernel AT24C02A iic drivers.
#

obj-$(CONFIG_LZP_AT24C02A) += lzp_iic.o
/*******************Makefile end******************************************/

2、定位到linux-2.6.x.x/drivers/char,编辑Kconfig和Makefile
/*******************Kconfig 内容******************************************/
menu "Character devices"
...
...
#添加如下命令
source "drivers/char/lzp_iic/Kconfig"
...
...
endmenu
/*******************Kconfig end******************************************/
/*******************Makefile 内容******************************************/
...
...
#在添加.o文件的部分添加如下命令
obj-$(CONFIG_LZP_IIC)    += lzp_iic/
...
...
/*******************Makefile end******************************************/

3、配置编译驱动
#选中lzp_iic驱动为模块
make menuconfig

#编译lzp_iic驱动,得到lzp_iic.ko
make SUBDIR=drivers/char/lzp_iic modules

小提示:
用SlickEdit编辑代码时,要保存为如下格式
UNIX format
UTF-8 no signature
格式,否则编译会出错

4、登录开发板,测试驱动,

#加载NFS文件系统
mount -t nfs -o nolock 192.168.0.5:/ /mnt/debian

#拷贝NFS服务器上的驱动模块到开发板的/lib目录
cp /mnt/debian/home/transistor/Desktop/lzp_iic.ko /lib/

#加载驱动
insmod /lib/lzp_iic.ko

#卸载驱动
rmmod /lib/lzp_iic.ko

至此一个驱动模块就添加完成了。

系统:debian 5.0.7

编辑器:SlickEdit

<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>

阅读(412) | 评论(0) | 转发(1) |

0

上一篇:debian下启动telnet服务

下一篇:windows ssh登录debian

相关热门文章
  • unknown symbols in module
  • 修改gem源
  • 腾讯手机QQ常见问题解答...
  • 山东省以72
  • 台湾兴霖食品下架回收的三种菠...
  • linux 常见服务端口
  • 【ROOTFS搭建】busybox的httpd...
  • 什么是shell
  • linux socket的bug??
  • linux的线程是否受到了保护?...
  • 修改默认端口为222,centos自...
  • 用PHP做一个ftp登录页面...
  • Toad for Oracle工具,为什么在...
  • 本地win7安装vmw9系统winserv...
  • powermt config是所什么用的...
给主人留下些什么吧!~~
评论热议