Chinaunix首页 | 论坛 | 博客
  • 博客访问: 970580
  • 博文数量: 214
  • 博客积分: 10173
  • 博客等级: 上将
  • 技术积分: 1867
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-18 13:48
文章分类

全部博文(214)

文章存档

2012年(1)

2010年(13)

2009年(5)

2008年(98)

2007年(97)

分类: LINUX

2007-12-03 21:27:50

如何把spca5xx驱动安装到Redhat9上
   由于毕业设计的需要,我需要在Redhat9上把USB接口的摄像头Run起来,在接到任务之前以前一直在Redhat9上捣鼓,感觉Redhat9安装方便,支持CD-ROM,FTP,等多种安装方式,安装过程简单,软件基本够用,呵呵一直舍不得抛弃它,Fc4,5,6都出来了,我一直还在它上面玩,内核也是一直用它官方配送的 Kernel 2.4.20版.
    接到任务后,发现linux内核里居然已经支持了几款USB摄像头,呵呵,不过都是大厂的名牌摄像头,可惜我手上的廉价摄像头不在此之列.
    不过还好,对开发人员来说,USB摄像头不是按照摄像头的品牌来区分,而是按照摄像头内部的接口芯片和图像传感器型号来区分,每个接口芯片都有唯一的一个PID和VID,在linux系统下用lsusb命令即可看到这个值,然后到google里一搜索,就知道这个摄像头是那一家公司提供的芯片.我手上的这个摄像头是中星微出品的z-star 310b 型的,在网络上转了一圈,找到了spca5xx整个开源的项目.他们的这个项目提供了很多杂牌摄像头的驱动.
    down下最新版的spca5xx-20060501,编译不通过,呵呵,郁闷,跑到他们在sourceforge上的项目里,把它前两年的Document都看了看,原来它是从另一个项目发展过来的,经历了好多次改改改,终于在一张帖子里看到了一点有用的信息,开发人员强烈建议使用Linux的官方内核,使用发行版的内核会产生很多问题,不过他也没说到底它自己用的是那个发行版本的内核.
    于是从网上下载了linux-2.4.20官方发布的内核,按照机器的硬件,配置编译,呵呵别问我怎么从新编译内核,网上帖子多多,而且方法不一,这个你自己琢磨吧.
    编译好内核之后,把spca5xx重新编译,呵呵,再也不跟我报错了,再把测试摄像头的软件spcaview编译了,连上摄像头看看,效果还可以吧.
  

发表于: 2007-01-02 ,修改于: 2007-01-03 00:02,已浏览984次,有评论8条 推荐 投诉


网友评论
内容:
好啊,老兄,我现在也遇到了和老兄你一样的问题-----down下最新版的spca5xx-20060501,编译不通过,呵呵,郁闷,
也研究了好几天,可还是没有什么进展,老兄可以给在下一点指导说明吗?
谢谢!
本站网友评论于:2007-03-19 21:24:36 (211.90.132.★)
内容:
什么系统?内核版本?
如果是debian系列的,一般不会出问题。
如果是红帽公司的,去Kernel 官网上下载一个标准的内核,重新编译一下。
fifthV 评论于:2007-03-20 17:55:49 (218.104.96.★)
内容:
先谢谢老兄的回复,呵呵
我的系统是 Redhat 9.0   内核版本 2.4.20-8
执行make后出现:
 [root@localhost spca5xx-20060501]# make
Compiling drivers/usb/spcadecoder.c
Compiling drivers/usb/spca5xx.c
drivers/usb/spca5xx.c: In function `spca50x_read_proc':
drivers/usb/spca5xx.c:1096: structure has no member named `seq'
drivers/usb/spca5xx.c: In function `spca5xx_mmap':
drivers/usb/spca5xx.c:3235: warning: passing arg 1 of `remap_page_range_R9d4a2bb7' makes pointer from integer without a cast
drivers/usb/spca5xx.c:3235: incompatible type for argument 4 of `remap_page_range_R9d4a2bb7'
drivers/usb/spca5xx.c:3235: too few arguments to function `remap_page_range_R9d4a2bb7'
drivers/usb/spca5xx.c: At top level:
drivers/usb/spca5xx.c:3280: warning: initialization from incompatible pointer type
drivers/usb/spca5xx.c:5655: warning: initialization from incompatible pointer type
drivers/usb/spca5xx.c:5656: warning: initialization from incompatible pointer type
drivers/usb/spca5xx.c:5657: warning: initialization from incompatible pointer type
drivers/usb/spca5xx.c:5658: warning: braces around scalar initializer
drivers/usb/spca5xx.c:5658: warning: (near initialization for `spca5xx_driver.disconnect')
drivers/usb/spca5xx.c:5658: warning: excess elements in scalar initializer
drivers/usb/spca5xx.c:5658: warning: (near initialization for `spca5xx_driver.disconnect')
drivers/usb/spca5xx.c:150: warning: `bright' defined but not used
drivers/usb/spca5xx.c:151: warning: `contrast' defined but not used
make: *** [drivers/usb/spca5xx.o] Error 1

还请老兄多多指教,谢谢!

本站网友评论于:2007-03-20 21:18:27 (61.177.142.★)
内容:
呵呵,我最先用的也是Redhat 9.编译不通,看了sourceforge上的前几年的帖子,上面有人提出过同样的,最后版主给的回复是:Redhat 9 中带的2.4.20版的内核经过红帽公司修改,与Linus官方发布的内核存在不兼容所导致的。建议去上去下载一个原始版(由Linus发布)的2.4.20内核(或者2.4系列中更高版本的内核),重新编译内核。然后再编译就没问题。此外,还有一种解决办法,在spca5xx.c中83行处,找到“ //#define RH9_REMAP 1” ,打开它。

我自己试过两种方法,第一种解决办法比较管用,我试过用2.4.20或2.4.21版的内核源代码都行的通;第二种解决办法,我没试成功过,不推荐。
PS: 介绍编译内核的帖子很多,方法也不唯一,我就不多说了。你认定一种方法,搞懂它那几步的含义就行了。刚开始编译一次内核,我得读个把小时的Help,了解每个选项的含义,不过后来熟悉了就快多了。记着配置完了,把配置文件(名字叫.config,是个隐藏文件)备个份,下次就不用重头来了。
fifthv 评论于:2007-03-21 13:24:53 (218.104.96.★)
内容:
谢谢老兄了,呵呵
本站网友评论于:2007-03-21 14:30:10 (61.177.142.★)
内容:
为什么我用的FC4,内核版本是2.6.11-1.1369_FC4-i686,为什么在insmod spca5xx.ko 的时候就出错, 
提示: -1 unknown symbol in module

搞了好几天,都是说debian的没问题,这个是红帽的内核有问题吗?
老兄能给点意见吗?   多谢了!
本站网友评论于:2007-05-10 18:22:07 (219.236.208.★)
内容:
我在FC2和FC4上都试过,在没有换官方标准内核时,编译比较容易通过,但是运行gnome下的视频会议软件,跑着跑着就挂了。
后来,我把FC2的内核重新编译了,从kernel.org上下载官方标准内核源码包,版本是2.6.8,没有任何问题,到现在一直用的好好的。
fifthv 评论于:2007-05-23 03:56:04 (218.104.96.★)
内容:
我的解决办法:
1、取消//#define RH9_REMAP 1的注释
2、将函数spca5xx_mmap()前面的版本判断由(2,4,22)改为(2,4,20)
ghaha@21cn.com评论于:2007-09-30 11:27:36 (58.61.9.★)
阅读(1516) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chenzhufly2008-07-12 21:23:33

你是什么内核啊

chinaunix网友2008-07-12 18:33:36

我想请问,问什么我在配置内核时没有USB SPCA5X的这个选项啊? 我在linux/drivers/usb/下面用pathch -p1 < usb-2.4.31.patch.gz打了补丁, 然后也修改了该目录下的Makefile。 然后配置内核,但就是没看到这个选项。 是还有什么我没做么? 另外,Makefile.rej里给出的内容与Makefile里的不一致,就是前者给出的不带+号的行我在Makefile里也没看到完全匹配的行。