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