fedora 9下驱动摄像头采集图像手记

最近一个月,在做视屏图像采集方面的项目。我安装了的是fedora 9。在fedora 9下让摄像头采集数据可谓是费尽了我半个月的时间。看似简单的问题,不知道我为什么做了这么长时间。
   首先,摄像头要有保证。现在我发现市面上的摄像头芯片很多都是linux万能驱动无法无法驱动的。如果我没猜错的话,可能你现在手里的摄像头就是 linux万能摄像头驱动不支持的。为了能在linux下摄像头正常工作。最好是去买一个中星微3xx的摄像头(最常见的是中星微301,中星微303 等),这些都是linux万能摄像头驱动能支持的。中星微比较老版本的摄像头一般都能驱动。
   先说下如何看摄像头厂商和产品系列。在linux下用命令

其中带WebCam或者是USB Cammera字样的就是你的摄像头信息。上面橘黄色的是我摄像头信息。
ID:0ac8 :301b  其中0ac8中星微厂商代号,后面的301b是该产品系列号。厂商代号是全球唯一的。只要该代号是0ac8,就说明该摄像头是中星微的。
在windows下,看摄像头信息步骤如下:
我的电脑右键-->设备管理-->图像处理设备-->双击-->详细信息

上图中,VID_后面是厂商代号。PID_后面是产品系列号。
    摄像头有了之后就开始安装摄像头驱动。由于fedora 9,已经集成了UVC驱动,这个驱动里面其实是已经有了支持海量的摄像头的驱动。但是由于UVC不支持V4L1编程,支持持V4L2编程。现行了大多关于 图像采集的都是基于V4L1编程的。如果你的内核是自己下载的内核源码,那么在编译内核的时候,不要把UVC选上就是了。
    然后安装万能驱动,网上的linux摄像头万能驱动都很多。但是支持内核2.6.25或者更高版本内核的不多。经过我的多次试验,用不同的内核版本去安装 各种摄像头万能驱动,发现,只有gspcav1-20071224这个版本。其实这个版本应该是该驱动的终结版本,它原本是由一个德国医生开发的,现在已 经不对这个驱动做更新了。
   下载后直接安装这个驱动,编译的时候通不过。
   首先下载SDL-1.2.10.tar.gz。

然后下载spcaview-20051212.tar.gz

给spcaview添加环境变量

此过程中,会遇到asm/page.h找不到的问题,page.h这个文件在/usr/src/kernels /2.6.25-14.fc9.i686/include/asm-x86/page.h。把这个page.h文件复制到/usr/include /asm下就ok了。
 
安装方式USB摄像头驱动
下载安装gspcav1-20071224.tar.gz

检查时候安装成功方式如下

出现上面的信息说明安装成功了。
如果设备已经加载就会出现下列信息

现在可以来测试摄像头了

用上面的命令看看效果。
我的效果如下。哈哈
 
对于部分错误的解决办法参考下面内容
常见错误
如果运行spcaview命令后出现如下错误信息:
spcaview -d /dev/video0 -f jpg -s 320x240
Spcaview version: 1.1.7 date: 06:11:2006 (C) mxhaard@magic.fr
size width: 320 height: 240
Initializing SDL.
SDL initialized.
bpp 3 format 21
Using video device /dev/video0.
Initializing v4l.
ERROR opening V4L interface
: No space left on device
.
参考地址中对此问题的解释和解决方案是:
Problem
When other USB devices are present on the same host controller bus as the camera, the bandwidth requirements of the spca5xx driver are not being met, with some hardware configurations. The spca5xx driver is asking for more bandwidth than is available which results in the following error messages:

No space left on device
can't open /dev/video0: No space left on device.

There is a very good howto for the Spca5xx driver at https://help.ubuntu.com/community/Spca5xx
if you haven't encountered the “No space left on device” error message.
-----------------------------------------------
Solutions
1.    Solution 1 - Put the camera on a separate USB host controller bus.
2.    Solution 2 - Compile and install the modified spca5xx source code.
3.    Solution 3 - Buy an separate USB controller card. (This is a last resort solution which I wanted to avoid at all cost.)
----------------------------------------------
说明:usb总线占用带宽不够,
让摄像头独占一个usb卡可以解决。如果无条件,可以参考参考地址中的方法2解决。因为我有个USB卡,所以,简单的让摄像头独占这个卡就解决了。

 

 

 

 

 


 

版权申明:
转载文章请注明原文出处http://blog.csdn.net/feiyinzilgd/archive/2010/02/09/5303078.aspx

并请联系谭海燕本人或者前往谭海燕个人主页留言

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值