Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2476
  • 博文数量: 1
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2013-05-13 17:59
文章分类
文章存档

2015年(1)

我的朋友
最近访客

分类: LINUX

2015-01-04 21:23:20

在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
阅读(248) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~