首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 网络安全-> 黑客攻防
linux系统中如何正确安装摄像头驱动_linux教程
作者:网友供稿 点击:0
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 

  1、摄像头(Webcam)驱动说明;

  摄像头在Windows的驱动极为容易,最多是点几下鼠标,没有什么太大的难度。但在Linux中,驱动起来是有点困难,这并不是说Linux多高雅。只能说开发商唯利是图,没有好处的事,他们的确不怎么积极。Linux 的用户比较少,所以他们也不把用户当回事。

  目前看来摄像头(Webcam)在 Linux 中驱动基本成熟,缺少的是应用程序的支持,比如即时通讯工具支持视频的好程序比较少。有些芯片组是没有任何问题,在国内,大多摄像头的芯片组是Z-Star,也有显示为Vimmicro(和Z-Star是同样的芯片)的。在Fedora 5.0或SuSE 10.x中,已经支持了很多摄像头,应该说即插即用。对于我们来说,是不是即插即用,那是另一回事,只有幸运儿才有这个的福气。如果您的摄像头接上还是用不了,那您就有必要看一下我写的这个文档了。

  本文操作环境: Fedora Core 5.0 。由于大部份是用源码包编译 ,所以还是有通用性的;

  1.1 摄像头在Linux中是如何支持的;

  在 Linux中,硬件的驱动程序,都是由内核支持的;目前比较新内核版本也集成了一些的摄像头驱动。就是Fedora、SuSE最新版本所支持的内核也是来自由 kernel.org 。所以支持也是极为正常的。内核对硬件的支持分为内置于和外挂模块两种方便。对于摄像头来说,大多是模块支持的;

  1.2 摄像头(Webcam)驱动网址;

  http://mxhaard.free.fr

  目前最新版本的摄像头驱动,已经到了 spca5xx-20060501.tar.gz 版本;您可以在上面的地址下载;

  2、驱动摄像头详细过程;

  2.1 查看摄像头型号;

  我们用用到 lshal 工具,在老版本的Linux是没有这个工具的。在最新版本的Linux都有这个工具;

  [root@localhost ~]# lshal |grep WebCam

  info.product = ZC0303 WebCam (string)

  usb_device.product = ZC0303 WebCam (string)

  上面这个命令是列出系统硬件设备,然后从输出中,提取WebCam字样的信息。这说明这个摄像头是ZC0303芯片组的;如果想更详细的,就用下面的命令,找到带有ZC0303 WebCam设备的详细信息,就把所有USB设备都列出来;

  [root@localhost ~]# lshal |grep usb

  然后就找 ZC0303字样的设备 ,那一大段都要仔细的看;

  也可以这样的方法;

  [root@localhost ~]# lshal -s |grep usbusb_device_0_0_0000_00_1d_0usb_device_0_0_0000_00_1d_0_if0usb_device_4fc_3_noserialusb_device_4fc_3_noserial_if0usb_
device_4fc_3_noserial_if0_logicaldev_inputusb_device_4fc_3_noserial_usbrawusb_device_0_0_0000_00_1d_0_usbrawusb_device_
0_0_0000_00_1d_1usb_device_0_0_0000_00_1d_1_if0usb_device_ac8_303b_noserialusb_device_ac8_303b_noserial_if0usb_
device_ac8_303b_noserial_usbrawusb_device_ac8_303b_noserial_video4linuxusb_device_0_0_0000_00_1d_1_usbrawusb_
device_0_0_0000_00_1d_2usb_device_0_0_0000_00_1d_2_if0usb_device_0_0_0000_00_1d_2_usbrawusb_device_0_0_
0000_00_1d_7usb_device_0_0_0000_00_1d_7_if0usb_device_0_0_0000_00_1d_7_usbraw

  我们看到带有video4linux字样的,他的设备号是 usb_device_ac8_303b_noserial_video4linux字样的,在其前面还有几个差不多的编号的设备。比如 usb_device_ac8_303b_noserial。我们就先查这个设备,大多数这样的一组相似的设备号,查第一个就能知道是什么设备。于是用。。

  [root@localhost ~]# lshal -l -u usb_device_ac8_303b_noserial

  udi = /org/freedesktop/Hal/devices/usb_device_ac8_303b_noserial

  info.udi = /org/freedesktop/Hal/devices/usb_device_ac8_303b_noserial (string)

  linux.subsystem = usb (string)

  linux.hotplug_type = 1 (0x1) (int)

  usb_device.bus_number = 3 (0x3) (int)

  usb_device.can_wake_up = false (bool)

  usb_device.is_self_powered = false (bool)

  usb_device.version_bcd = 272 (0x110) (int)

  usb_device.speed_bcd = 4608 (0x1200) (int)

  usb_device.linux.device_number = 2 (0x2) (int)

  usb_device.num_ports = 0 (0x0) (int)

  usb_device.max_power = 160 (0xa0) (int)

  usb_device.device_revision_bcd = 256 (0x100) (int)

  info.product = ZC0303 WebCam (string)

  usb_device.product = ZC0303 WebCam (string)

  info.vendor = Z-Star Microelectronics Corp. (string)

  usb_device.vendor = Z-Star Microelectronics Corp. (string)

  usb_device.product_id = 12347 (0x303b) (int)

  usb_device.vendor_id = 2760 (0xac8) (int)

  usb_device.device_protocol = 0 (0x0) (int)

  usb_device.device_subclass = 0 (0x0) (int)

  usb_device.device_class = 255 (0xff) (int)

  usb_device.num_interfaces = 1 (0x1) (int)

  usb_device.num_configurations = 1 (0x1) (int)

  usb_device.configuration_value = 1 (0x1) (int)

  usb_device.linux.sysfs_path = /sys/devices/pci0000:00/0000:00:1d.1/usb3/3-1 (string)

  info.linux.driver = usb (string)

  info.bus = usb_device (string)

  info.parent = /org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_1 (string)

  linux.sysfs_path_device = /sys/devices/pci0000:00/0000:00:1d.1/usb3/3-1 (string)

  linux.sysfs_path = /sys/devices/pci0000:00/0000:00:1d.1/usb3/3-1 (string)

  这回应该详细了吧。看上面的设备是哪个厂出品的?

  usb_device.vendor_id = 2760 (0xac8) (int)

  usb_device.product_id = 12347 (0x303b) (int)

  info.product = ZC0303 WebCam (string)

  info.vendor = Z-Star Microelectronics Corp. (string)

  usb_device.product_id = 12347 (0x303b) (int)

  在Gnome桌面环境下,还用hal-gnome软件包工具可用;您可以通过下面的方式来安装此软件包

  [root@localhost ~]# yum install hal-gnome

  然后运行hal-device-manager工具;

  [root@localhost ~]# hal-device-manager

  点鼠标查看摄像头的详细信息还是没有问题吧。

  2.2 根据摄像头信息到驱动网站对号入座;

  请参见: http://mxhaard.free.fr/spca5xx.html

  请注意:这两个最重要的信息,也驱动网址摄像头芯片所对应地址对号入座,如果这张列表上没有摄像头,可能您得等一等了。不过也不是绝对的,给开发者捐赠一个不被支持的摄像头,肯定能解决。驱动开发者有捐赠主页,不妨捐一个看看。

  usb_device.vendor_id = 2760 (0xac8) (int)

  usb_device.product_id = 12347 (0x303b) (int)

  比如我的这款摄像头,在其网站上,显示为支持。

  2.3 摄像头驱动的选择;

  spca5xx-20060501.tar.gz

  对于Fedora Core 5.0 4.0 摄像头驱动RPM包:

  其实在Fedora Core 5.0 中已经有这款驱动的RPM包了,但我尝试后发现根本不能用。如果您也想尝试RPM包,请到下面的网址去下载;或用YUM在线安装也行,不过得设置YUM的源;

  http://mirrors.ircam.fr/pub/atrpms/fc5-i386/atrpms/RPMS.testing

  如果是Fedora 4.0的,就到下面的地址去下载;

  http://mirrors.ircam.fr/pub/atrpms/fc4-i386/atrpms/RPMS.testing/

  首先:要看自己的内核版本,然后再下载;

  [root@localhost ~]# uname -r -i

  其次:下载软件包选择;

  下载spca5xx开头的,要安装两个包左右,一个是 spca5xx-kmdl,另一个是 video4linux-kmdl,还有一个是 video4linux-kernheaders。根据软件包的时间、版本、内核版本对照下载安装。这方面不能说的太多。自己试试看,我是没有成功。

  2.4 下载并编译内核;

  由于RPM包安装上也不可用,所以我采用的是源码包安装的方法,当然因为我用的是比较新的内核,2.6.16.19。所以这个文档就是通用性了。源码包安装大多都差不多。所以其它发行版本也可以做为参考。

  2.41 下载内核;

  我测试摄像头所用的内的内核版本是 2.6.16.19;

  linux-2.6.16.19.tar.bz2

  下载内核配置文件:

  我从Slackware的FTP上,找到了2.6.16.19的配置文件。请到这里下载;kernel261619.txt

  2.42 编译内核;

  第一步:解压内核软件包;

  [root@localhost ~]# tar jxvf linux-2.6.16.19.tar.bz2

  [root@localhost ~]# mv linux-2.6.16.19 /usr/src

  把下载下来的内核配置文件改名复制到 /usr/src/linux-2.6.16.19

  [root@localhost ~]# cp kernel261619.txt /usr/src/linux-2.6.16.19/.config

  第二步:编译内核;

  [root@localhost ~]# cd /usr/src/linux-2.6.16.19/

  [root@localhost linux-2.6.16.19]# make

  [root@localhost linux-2.6.16.19]# make modules_install

  [root@localhost linux-2.6.16.19]# make install

  第三步:查看/boot/grub/menu.lst文件;

  一般的情况下,make install 安装内核后,系统会把启动写入GRUB的配置文件。/boot/grub/menu.lst。您可以看到有类似如下的一段;

  title Fedora Core (2.6.16.19)

  root (hd0,6)

  kernel /boot/vmlinuz-2.6.16.19 ro root=LABEL=/1 rhgb quiet

  initrd /boot/initrd-2.6.16.19.img

  对于其它发行版本,您可以修改menu.lst文件。

  2.5 编译摄像头驱动程序;

  在编译摄像头驱动的前题是,我们要用2.6.16.19这个内核来启动系统,然后在 2.6.16.19内核系统环境下编译摄像头驱动;

  2.51 下载摄像头驱动;

  http://mxhaard.free.fr

  spca5xx-20060501.tar.gz

  2.52 解压编译;

  再说一点,可能在编译的过程中需要各种开发库和或开发工具之类的,比如gcc、make、automake等,您要懂得自己把这些东西安装上;少什么就安装什么吧。

  [root@localhost ~]# tar zxvf spca5xx-20060501.tar.gz

  [root@localhost ~]# cd spca5xx-20060501

  [root@localhost spca5xx-20060501]# make

  [root@localhost spca5xx-20060501]# make install

  [root@localhost spca5xx-20060501]# depmod -a

  [root@localhost spca5xx-20060501]# modprobe spca5xx

  看看驱动模块挂载好了没有?

  [root@localhost spca5xx-20060501]# lsmod |grep spca5xx

  spca5xx 659920 0

  videodev 7040 1 spca5xx

  我们再查看一下设备/dev/video0是否存在?

  [root@localhost spca5xx-20060501]# ls -lh /dev/video0

  crw------- 1 beinan root 81, 0 06-08 09:33 /dev/video0

  3、摄像头应用程序 SpcaView;

  3.1 SpcaView 软件包,包括一组工具;

  spcaview工具是用来纪录数据流,也能用来播放数据;

  spcaserv 是流媒体服务器;

  spcacat 简单图片的抓取工具;

  SpcaView 下载和安装;

  下载地址:

  http://mxhaard.free.fr/spca50x/Download ,我下载的是目前这个版本:spcaview-20051212.tar.gz

  依赖关系;

  此软件依赖 libsdl,要先安装它才行,下载地址:http://www.libsdl.org ,我下载的是:SDL-1.2.10.tar.gz

  http://www.libsdl.org/download-1.2.php

  [root@localhost ~]# tar zxvf SDL-1.2.10.tar.gz

  [root@localhost ~]# cd SDL-1.2.10

  [root@localhost SDL-1.2.10]# ./configure ; make ;make install

  安装SpcaView:

  [root@localhost ~]# tar zxvf spcaview-20051212.tar.gz

  [root@localhost ~]# cd spcaview-20051212

  [root@localhost spcaview-20051212]# make ; make install

  配置可执行程序的路径:

  可执行的工具被安装到 /usr/local/bin目录中,所以我们还要配置一下用户的环境变量PATH 。配置命令执行路径,在当前用户家目录下的.bashrc文件中加入下面的一行;

  export PATH=".:/bin:/sbin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin"

  然后运行如下命令;

  [root@localhost ~]# source .bashrc

  3.2 通用spcaview来测试摄像头;

  [root@localhost ~]# spcaview -d /dev/video0 -f jpg -s 320x240

  如果您想看的图像分辨率,可以调整 -s后面的参数,比如 640x480

  如果抓取数据流,尝试用下面的命令,比如我们把抓取的数据流存在一个linuxsir.org.avi文件中;如果想播放,就用mplayer就行,xine也可以。

  [root@localhost ~]# spcaview -f yuv -o linuxsir.org.avi

  看一下图吧:



更多的帮助: http://mxhaard.free.fr/sview.html

  4、即时通讯工具;

  即时通讯工具在 Linux 视频下比较少,其中有aMSN,不过aMSN虽然能简单的应用,但如果您的机器是接在路由器或防火墙之后,还要配置端口转发。由于我的路由器功能比较差,所以没有发现有哪块配端口转发。不过在公司内部局域网和同事聊天还是能用看到对方的。Mercury 也是MSN的客户端 ,需要Java虚拟机支持,安装起来有点麻烦。我在Fedora 5.0 Core 中没有安装成功。如果您想安装尝试,请自行安装一下。如果有问题,咱们再交流;

  4.1 aMSN ;

  主页:http://amsn.sourceforge.net

  aMSN 支持视频,不过在路由器或防火墙后的计算机需要配置路由器。我和公司同事聊天测试,无需配置路由器。由于我的路由器功能比较简单,还没有找到相应的选项。看两张图吧;—— 2006.06.08 北南南北;



  今天(2006.06.10),我换了一个路由器,总算把这个问题测试成功了;在路由器上找到 有ip forward 类似的选项,要把 6890 - 6900转发到您所用的计算机上上的端口上,协议是TCP/UDP。比如我用的计算机的IP地址是:192.168.1.3;我的路由器上有NAT 选项,我在NAT中的防火墙规则中设置的。也就是把 来自WAN的数据流,协议TCP/UDP ,端口 6890 - 6900,转发到 192.168.1.3 机器上的 6890 - 6900。—— 2006.06.08 北南南北;

  4.2 Mercury (MSN客户端)

  主页: http://www.mercury.to

  4.3 Gaimvv ;

  主页: http://gaim-vv.sourceforge.net

  Gaim-vv 包含支持YahooMessager 视频功能;目前Gaimvv已停止开发,据说在未来的Gaim 2.x中要做为重点开发;Gaim-vv效果还是不错的,遗憾的是只支持 YahooMessager 视频。我测试了 Gaim-vv 的YahooMessager 视频,性能还比较不错,对系统资源占用相对来说较少。

  5、关于本文;

  前年为了测试在Linux下是否能用摄像头,买了一个摄像头,由于没有驱动,被迫放弃。那个摄像头也没用几次就报废了。白白费掉一百多RMB。这次又去电子城,顺便弄回一只,这次的运气应该比上次要好的多,毕竟能驱动起来。虽然在Linux 中支持摄像头的程序不太多,我感觉只所以出现这样的情况,就是因为摄像头的驱动程序太少了。这次一个法国的老兄出手了,据说能N多芯片的。。。。。。。这是一个开头,并不是结局。好事在后头呢;


文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·J2EE平台介绍-JSP教程,J2ME开发
·自己制作友好的页面“确认对话框”-ASP教程,ASP应用
·DataAdapter是如何更新数据库数据的?-.NET教程,数据库应用
·jsp项目中实现关闭浏览器后吊线,只要不关闭不操作也保持在线-JSP教程,Jsp/Servlet
·企业Java技术开发技巧2则-JSP教程,Java技巧及代码
·刚刚整理好-汉字转拼音缩写的函数-.NET教程,评论及其它
·关于数据返回给调用页面-ASP教程,数据库相关
·如何使用C#压缩文件及注意的问题!-.NET教程,C#语言
·数据库安装程序-.NET教程,数据库应用
·DataGrid的自定义分页UserControl-.NET教程,数据库应用
最新文章
·王通:网站推广的18种秘笈_营销推广
·什么是mfa,以及停止mfa的好处_网赚技巧
·google adsense 域名保护功能是否作恶_网赚技巧
·关于无效点击-adsense团队资深专员如是说_网赚技巧
·google adsense将以人民币支付_站长访谈
·bbmao的神秘配方:打破中文聚类搜索的低迷_站长访谈
·你的网站为什么粘不住流量?_站长心得
·决定网站成败重要的六个因素_站长心得
·widnows vista是吃内存大户 优化vista攻略_windows vista
·首页所应该达到的几个目标(1)_站长心得
相关主题
  • linux操作系统上摄像头的使用小技巧_linux教程
  • linux下mysql的一点基本用法_数据库教程
  • linux攻略 dns服务器安装配置方法详细介绍_linux教程
  • linux学习(远程控制跟ip地址配置)_linux教程
  • linux系统下如何加载u盘或移动硬盘_linux教程
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭