Linux下成功安装摄像头 :-)

    一直 酝酿了很久,资料软件也找得差不多了,动手开始做事情拉.
    首先要下载的是摄像头驱动程序,推荐使用spca5xx webcam drivers,可以到网站FreeWorld libland http://mxhaard.free.fr/download.html (这个网站虽然简陋,但是相当有水准,推荐!)上下载最新版本的驱动程序,我使用的是spca5xx-20060101.tar.gz,顺便说一下,在加载spca5xx驱动时,必需阅读README,主要看两处:1.该版本的spca5xx是否支持现版本的linux内核,比如说spca5xx-20060101.tar.gz就不支持2.4.22的内核,我的内核是2.6.11-1.1369_FC4-i686; 2.版本的spca5xx是否支持摄像头芯片,可以lsusb一下
root@localhost ~]# lsusb
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 002: ID 0ac8:301b Z-Star Microelectronics Corp. Sansun SN-510 WebCam [hv713d]
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
我的摄像头芯片是由中微星电子公司生产的(我试过实验室多个摄像头,结果都是一样的,可见低端摄像头芯片市场大部分被中微星所占),再查看一下spca5xx的README,通过ID号0ac8:301b,可以发现该驱动支持Z-Star的芯片.
    然后重新编译内核,make menuconfig ->Multimedia devices ->Video For Linux,选择加载V4L模块.
    接下来解压缩编译spca5xx-20060101.tar.gz,指令tar zxvf spca5xx-20060101.tar.gz,然后 make,make install,一般是README里面说明支持的内核都是能编译通过的.检查spca5xx是否加载,执行lsmod
    spca5xx               673040  0
    videodev                9537  1 spca5xx
 在/proc/devices里面也可以找到dev设备,一般设备号为83.

    摄像头驱动程序模块加载完成了,现在要找几个videoGrabber软件,编译安装他们也是一件相当令人头疼的事情.推荐两款:spcaview-20051212.tar.gz & xawtv-3.94.tar.tar
    先看xawtv-3.94.tar.tar,解压缩 tar zxvf xawtv-3.94.tar.tar,首先阅读一下README(这是个好习惯),大概了解安装步骤,./configure->make->make install,问题出现了:-( 在make这一步出错了:
root@localhost xawtv-3.91]# make
CC console/fbtv.o
In file included from console/fbtv.c:31:
./libng/grab-ng.h:28:1: warning: "bool" redefined
In file included from /usr/include/curses.h:143,
from console/fbtv.c:24:
/usr/lib/gcc/i386-redhat-linux/4.0.1/include/stdbool.h:36:1: warning: this is the location of the previous definition
console/fbtv.c:190: 错误:对 ‘snapbase’ 的静态声明出现在非静态声明之后
./common/commands.h:53: 错误:‘snapbase’ 的上一个声明在此
console/fbtv.c: 在函数 ‘text_out’ 中:
console/fbtv.c:329: 警告:传递参数 4 (属于 ‘fs_puts’) 给指针时目标与指针有/无符 号不一致
console/fbtv.c: 在函数 ‘text_width’ 中:
console/fbtv.c:335: 警告:传递参数 2 (属于 ‘fs_textwidth’) 给指针时目标与指针有/无符号不一致
console/fbtv.c: 在函数 ‘main’ 中:
console/fbtv.c:801: 警告:对指针赋值时目标与指针有/无符号不一致
make: *** [console/fbtv.o] 错误 1

郁闷,百思不得其解,索性打开看里面的源代码,在console/fbtv.c的190行定义了static char *snapbase,在fbtv.c里include了commands.h,该头文件也定义了snapbase,extern char *snapbase;
修改fbtv.c,把static char *snapbase改为char  *snapbase,再make, Done and then ->make install,Done!!!!!
直接运行xawtv即可看到视频,但是效果好像捕食很好,色彩偏灰,不甚理想.


而spcaview就好多了,而且编译安装一路绿灯,以下摘至README:
BASIC INSTALLATION:
-------------------
These are generic installation instructions.
You need sdl installed with the headers http://www.libsdl.org for spcaview
to compile all type:
make
to install in /usr/local/bin as root:
make install
to clean the last compile work:
make clean
to compile and install as root only spcaserv (No dependance)
make install_spcaserv
to compile and install only spcacat  (No dependance)
make install_spcacat
编译安装成功,简单运行spcaview,
[root@localhost ~]# spcaview
 Spcaview version: 1.1.5 date: 12:12:2005 (C) mxhaard@magic.fr
Initializing SDL.
SDL initialized.
bpp 3 format 15
Using video device /dev/video0.
Initializing v4l.
**************** PROBING CAMERA *********************
Camera found: Z-star Vimicro zc0301p
Bridge found: ZC301-2
Bridge find ZC301-2 number 13
StreamId: JPEG Camera
quality 1 autoexpo 1 Timeframe 0
Bridge find ZC301-2 number 13
Available Resolutions width 640  heigth 480 native
Available Resolutions width 352  heigth 288 decoded
Available Resolutions width 320  heigth 240 native *
Available Resolutions width 176  heigth 144 decoded
*****************************************************
 grabbing method default MMAP asked
VIDIOCGMBUF size 2457616  frames 2  offets[0]=0 offsets[1]=1228808
VIDIOCGPICT
brightnes=32768 hue=0 color=0 contrast=32768 whiteness=0
depth=12 palette=15
VIDIOCSPICT
brightness=32768 hue=0 color=0 contrast=32768 whiteness=0
depth=24 palette=15
                

heihei,嚼着口香糖摆个pose :-)

打开看了一下spcaview的源码,发现还有很多好玩的功能,现在学到的只是初步的东西,嘿嘿,相当值得研究研究,网上搜到一些资料,在我的收藏里面有Spcaview的HOWTO,这两天好好研究研究,今天先到这里,洗个澡去...........................

 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值