博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

ly44770

arm+linux学习中
   ly44770.cublog.cn
关于作者  
姓名:ly44770
职业:嵌入式
年龄:*
位置:北京
个性介绍:arm+linux学习中

我的分类  




ARM开发板上中星微摄像头驱动的移植
  开发板是恒颐的9200cs,编译器是2.95.3,摄像头是海天地QQV8,数据处理芯片是中星微的301plh。:-),就是这个plh让我编译了三个不同版本的驱动才搞定。估计是芯片型号太高,只有到了最新版本的驱动才支持。现在的301v最新的驱动还没有支持,:-),所以还用不了。
驱动下载地址:http://mxhaard.free.fr/download.html。我编译的版本有:
 
 
 1. 开发板上跑的内核是2.4.27,所以首先想到1这个包了。根据戴小鼠的文章,没费多少力气就编译通过了。
(1)把它放到你的linux内核的driver/usb下,解压得到usb-2.4.31.patch包,打补丁(patch -p1 <usb-2.4.31.patch),就会在此目录下看到spca5xx文件夹了。我的没有什么错误,也不需要修改什么文件,patch都做好了,:-)。
(2)编译内核,进入内核根目录,make menuconfig。采用动态加载:
(M)选中SPCA5XX这一项。
( 3 ) make dep ;  make modules 。就会在
内核的driver/usb/spca5xx 中生成
spca5xx.o,spcadecoder.o,spca_core.o啦。这就是我们要的驱动。
(4)insmod这三个.o文件(可以不用加载spcadecoder.o),摄像
头就加载成功啦。有的摄像头就可以用了,可是我的还不行,呜呜。没办法谁让咱的摄像头好呢,继续努力。
 
2.spca5xx-20060402.tar.gz
很多哥们都推荐这个包,咱也编译一把试试。不就是修改makefile嘛,谁怕谁。下边是我对makefile的修改。
##########modified by ly44770################
#ifneq ($(shell uname -r | cut -d. -f1,2), 2.4)
#ifneq ($(KERNELRELEASE),)   # We were called by kbuild
#CFLAGS += $(DEFINES)
#obj-m += spca5xx.o
#spca5xx-objs := drivers/usb/spca5xx.o drivers/usb/spcadecoder.o
#else   # We were called from command line
#KERNEL_VERSION = `uname -r`
#KERNELDIR := /lib/modules/$(KERNEL_VERSION)/build
#PWD  := $(shell pwd)
#MODULE_INSTALLDIR = /lib/modules/$(KERNEL_VERSION)/kernel/drivers/usb/media/
# Targets, don't change!
#default:
# @echo '   Building SPCA5XX driver for 2.5/2.6 kernel.'
# @echo '   Remember: you must have read/write access to your kernel source tree.'
# $(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) CC=$(CC) modules
#install:
# mkdir -p $(MODULE_INSTALLDIR)
# rm -f $(MODULE_INSTALLDIR)spca50x.ko
# rm -f $(MODULE_INSTALLDIR)et61x.ko
# install -c -m 0644 spca5xx.ko $(MODULE_INSTALLDIR)
# /sbin/depmod -ae
#uninstall:
# rm -f $(MODULE_INSTALLDIR)/spca5xx.ko
# /sbin/depmod -aq
#endif
#else   # kernel version test
###############modified end########################
上边这一大段通通注释掉,:-)。
#KERNEL_VERSION = `uname -r`这句改成:
KERNEL_VERSION = 2.4.27
这几个变量根据自己的需要修改如下:
KINCLUDE   = /home/linux-2.4/include
KERNEL_ACFILE = $(KINCLUDE)/linux/autoconf.h
KERNEL_MODVERSIONSFILE = $(KINCLUDE)/linux/modversions.h
#MODULE_INSTALLDIR = /lib/modules/$(KERNEL_VERSION)/kernel/drivers/usb/
CC         = arm-linux-gcc
LD         = arm-linux-ld
#CFLAGS    += -mpreferred-stack-boundary=2 这个注释掉,否则编译通不过,:-)。
#CFLAGS    += -I$(KINCLUDE) -Idrivers/usb
CFLAGS    += -I/home/linux-2.4/include  -Idrivers/usb
别忘了这句注释掉:
#endif  # End kernel version test
好了make吧,:-)。于是得到了这个东西:spca5xx.o,我一阵激动,insmod后,:-)真是苦心人天不负呀。查看/dev目录下也出现了/v4l/video0,我心里那个美呀。赶紧抓一个图吧,:-)。一切正常。通过nfs查看一下,怎么黑乎乎的呀。看来还是驱动不管呀,:-)。可是在我的fedora上这款摄像头用起来没有问题。没办法了,看来只能试试最新的驱动包了。
 
3.对于这个包的编译我就不多说了,和上边那个完全一样,修改makefile就行。这次又顺利的得到了spca5xx.o。也不知道行不行?试试再说了,:-)。一试之下都ok了,:-),幸福总是来的这么突然。OK,编译完成,中星微的摄像头终于为我所用了。
下边这个就是我编译的果实了,:-)。
 
 
 
 
文件: 中星微摄像头驱动模块.rar
大小: 392KB
下载: 下载

 发表于: 2007-08-18,修改于: 2007-08-18 15:35 已浏览2084次,有评论5条 推荐 投诉

  网友评论
  本站网友 时间:2007-09-20 14:47:12 IP地址:61.141.123.★
你好,我用的是2.4.18的内核,打上第一个补丁,编译内核放到板子里,在insmod spca5xx.o后出现:Using spca5xx.o

可是/dev目录下就是不出现了/v4l/video0,是什么原因呢,请指点,谢谢

  本站网友 时间:2007-09-20 18:06:54 IP地址:211.147.18.★
驱动不支持你都摄像头。

  本站网友 时间:2007-09-21 09:35:52 IP地址:61.141.123.★
已经解决,呵呵,用的是第一个LE版,只是抓的图效果很差,第二个和第三个加载后都出现严重错误,不知是不是我的内核不支持,2.4.18的,编译能正常通过,

  3931561 时间:2007-11-11 00:40:22 IP地址:124.17.4.★
你好看了你的文章感觉很好.我是个菜鸟现在想在at91rm9200上面挂载u盘内核 配置了启动信息如下请问问题在那里是不是要修改里面的文件啊.望不赐教不胜感谢如果你有文档记录的话能给我发一份么谢谢.
Freeing init memory: 72K
hub.c: USB new device connect on bus1/2, assigned device number 2
usb.c: USB device not accepting new address=2 (error=-110)
hub.c: USB new device connect on bus1/2, assigned device number 3
usb.c: USB device not accepting new address=3 (error=-110)
hub.c: USB new device connect on bus1/1, assigned device number 4
scsi0 : SCSI emulation for USB Mass Storage devices
  Vendor: SanDisk   Model: U3 Cruzer Micro   Rev: 2.18
  Type:   Direct-Access                      ANSI SCSI revision: 02
Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0
SCSI device sda: 2006673 512-byte hdwr sectors (1027 MB)
sda: Write Protect is off
Partition check:
 /dev/scsi/host0/bus0/target0/lun0: p1
WARNING: USB Mass Storage data integrity not assured
USB Mass Storage device found at 4
usb.c: USB disconnect on device 4
hub.c: USB new device connect on bus1/1, assigned device number 5
WARNING: USB Mass Storage data integrity not assured
USB Mass Storage device found at 5
# mkdir /mnt/usb
# mount /dev/sda /mnt/usb
mount: mounting /dev/sda on /mnt/usb failed
#

  本站网友 时间:2008-02-24 14:25:27 IP地址:219.133.24.★
能贴一下你下载的最新的驱动源码吗?


  发表评论



Copyright © 2001-2006 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们
页面生成时间:0.00883

京ICP证041476号