QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2177|回复: 8

有关linux下使用usb摄像头

[复制链接]
发表于 2005-5-5 00:14:21 | 显示全部楼层 |阅读模式
刚才搜索了一下论坛上关于 摄像头的文章,都没有我的问题,所以只好发新贴了


偶刚接触linux,是个菜鸟,大虾多多帮偶呵!

最近装了redhat9.0  kernel 版本2.4.20-8
usb摄像头是罗技
在网上找了个驱动叫spca5xx它的技术文档里写着支持我的摄像头

按照它的安装步骤, make   ---- make install 但是make 后出现如下错误,兄弟们帮我看看,怎么解决

[root@ylfc2000 spca5xx-20050419]# make
Compiling drivers/usb/spcadecoder.c
Compiling drivers/usb/spca5xx.c
In file included from /lib/modules/2.4.20-8/build/include/linux/pagemap.h:16,
                 from drivers/usb/spca5xx.c:54:
/lib/modules/2.4.20-8/build/include/linux/highmem.h: In function `bh_kmap':
/lib/modules/2.4.20-8/build/include/linux/highmem.h:20: warning: pointer of type `void *' used in arithmetic
drivers/usb/spca5xx.c: In function `spca5xx_mmap':
drivers/usb/spca5xx.c:5392: warning: passing arg 1 of `remap_page_range_R2baf18f2' makes pointer from integer without a cast
drivers/usb/spca5xx.c:5392: incompatible type for argument 4 of `remap_page_range_R2baf18f2'
drivers/usb/spca5xx.c:5392: too few arguments to function `remap_page_range_R2baf18f2'
drivers/usb/spca5xx.c: At top level:
drivers/usb/spca5xx.c:5435: warning: initialization from incompatible pointer type
drivers/usb/spca5xx.c:8382: warning: initialization from incompatible pointer type
drivers/usb/spca5xx.c:8384: warning: initialization from incompatible pointer type
drivers/usb/spca5xx.c:8385: warning: initialization from incompatible pointer type
drivers/usb/spca5xx.c:8386: warning: braces around scalar initializer
drivers/usb/spca5xx.c:8386: warning: (near initialization for `spca5xx_driver.disconnect')
drivers/usb/spca5xx.c:8386: warning: excess elements in scalar initializer
drivers/usb/spca5xx.c:8386: warning: (near initialization for `spca5xx_driver.disconnect')
发表于 2005-5-7 23:33:36 | 显示全部楼层
RedHat Linux 下安装、测试摄像头
1.到www.kernel.org. 下载新的内核 2.4.20的tar包。下载pwc-8.8.tar.gz包
       2.替换内核的部分USB驱动,并从新编译内核
       3.编辑/etc/modules.conf编辑系统启动加载的模块
       4.测试软件XawTv,GnomeMeeting,MainActor

现在就开始把:
第一步,我选用RedHat Linux 9.0作为实验平台,首先到www.kernel.org. 下载新的内核 2.4.20
的tar包。重新编译内核。
#tar zxvf linux-2.4.20.tar.gz -C /usr/src/
#tar zxvf pwcx-8.2.2.tar.gz -C /tmp
目的是用Philips webcams的驱动代替现有驱动
[root@rh9 tmp]#tar zxvf pwc-8.8.tar.gz -C /tmp
[root@rh9 tmp]#cd pwc-8.8/kernel-2.4/
ChangeLog         .philips.txt.swp  pwc.h             pwc-ioctl.h       pwc-misc.c        
pwc_timon.h       pwc-uncompress.h
philips.txt       pwc-ctrl.c        pwc-if.c          pwc_kiara.h       pwc_nala.h        
pwc-uncompress.c
[root@rh9 kernel-2.4]# cp * /usr/src/linux-2.4.20-8/drivers/usb/
[root@rh9 linux-2.4]#make menuconfig
注意要确保以下选项要选种
Multimedia devices --->Video for Linux --->V4L information in proc filesystem
                   ---> BT848 video for Linux

USB support --> Support of USB               
--> UHCI (Intel PIIX4, VIA, ...)  
          --->UHCI Alternate Driver (JE) support   
           ---> USB Audio support
           --->OHCI (Compaq,iMacs,OPTi.SiS,ALi,...) support   
         -->Preliminary USB device filesystem            
-->USB OV511 Camera support   
其他选项保持默认即可。 在很多时候,我们的USB设备驱动并不包含在内核中。其实我们只要根据
它所需要使用的模块,逐一加载。就可以使它启作用。 这是许多人对 Linux 的 USB 驱动感到有
些疑惑。 我就简单解释一下。Linux USB 驱动程序有三种不同的 USB 主控制器选项。
分别是:
A . "EHCI"驱动程序设计成为实现新的高速 USB 2.0 协议的芯片提供支持。
B . "OHCI"驱动程序用来为非 PC 系统上的(以及带有 SiS 和 ALi 芯片组的 PC 主板上
的)USB 芯片提供支持。 对应模块文件usb-ohci.o  
C . UHCI"驱动程序用来为大多数其它 PC 主板(包括 Intel 和 Via)上的 USB 实现提供
支持。对应模块文件usb-uhci.o
    只需选择与希望启用的 USB 支持的类型对应的"O(UE)HCI"驱动程序即可。如有疑
惑,单独加EHCI是不行的,通常我的做法是根据主板类型加载UHCI或OHCI后,再加载
EHCI这样才可以支持USB2.0设备)。为保险起见,可以启用"EHCI"、"UHCI" 和"OHCI"。
之后开始编译,完成之后reboot系统。一旦用新的已启用,新的内核重新加载后,在
/proc/bus/usb有相应USB设备信息,用lsmod可以查看系统已加载的模块。
[root@rh9 root]# lsmod
Module                  Size  Used by    Not tainted
ide-cd                 35708   0  (autoclean)
cdrom                  33728   0  (autoclean) [ide-cd]
radeon                116132   0
ohci1394               20168   0  (unused)
ieee1394               48780   0  [ohci1394]
audio                  46648   0  (unused)
soundcore               6404   2  [audio]
pwc                    47688   1
videodev                8288   2  [pwc]
keybdev                 2944   0  (unused)
mousedev                5492   1
第 12 页 共 28 页

hid                    22148   0  (unused)
input                   5856   0  [keybdev mousedev hid]
usb-uhci               26348   0  (unused)
ehci-hcd               19976   0  (unused)
usbcore                78784   1  [audio pwc hid usb-uhc
ext3                   70784   2
jbd                    51892   2  [ext3]
红色的标注表示是必须加载的modules.
[root@rh9 usb]# cat /proc/bus/usb/drivers
         usbdevfs
         hub
96-111: hiddev
         hid
         Philips webcam
        audio
第二步,编辑系统启动加载的模块
模块的配置方法.
[root@rh9 tmp]# vi /etc/modules.conf
确保一下两行存在
alias usb-controller ehci-hcd
("ehci"驱动程序设计成为实现新的高速 USB 2.0 协议的芯片提供支持)
alias usb-controller1 usb-uhci
添加如下几行
alias char-major-81    videodev
alias char-major-81-0  pwc  
options    pwc size=vga leds=250,250 fps=25 mbufs=3 compression=0  
none /proc/bus/usb usbdevfs defaults 0 0   (自动挂装 USB 设备文件系统)

第三步,测试摄像头
启动RedHat自带的网络视频软件GnomeMeeTing,经过简单配置就能看就你的形象了。你
可能没注意到只要驱动模块成功加载并起动GnomeMeeTing,摄像头的绿色指示灯就一直亮
着。
接下来我为大家推荐一款极为好用的视频编辑软件XawTV,他可以捕捉静态,动态的视频。XawTV
是简单的基于Xaw的TV软件,应用了bttv或者videor4linux驱动。包含各种命令行的程序,截取图片和AVI动画。
下载 xawtv-3.94.tar.gz 包,并安装
[root@rh9 mnt]# tar zxvf xawtv-3.94.tar.gz -C /tmp
[root@rh9 xawtv-3.94]# ./configure ;make ;make install ; xaw
他的配置很简单只要按“O”键就能调出如上图,功能大家
一看就一目了然了。而右边的字母就是相应功能的快捷
键。
处理方式:
对于捕捉的静态图片可以用Gimp进行编辑,而对于捕
捉的AVI文件可以用mplayer进行播放,用MainActor
进行非线性编辑。MainActor是强大的视频编辑软件,不论是数字信号还是模拟信号均能轻松
应付:输入/输出、连接、修整、加入专业过渡效果,注册后功能将十分强大。软件包括
Mainac
MainActor Sequencer(时间轴视频序列发生器)和MainActor Video Editor(在工业领域和多
媒体最终用户中久负盛名的视频编辑软件)。大家有兴趣可以到MainActor的网站上下载。
注意:和在windows 里一样 gnomemeeting和xawt不能同时用,否则就会出现
[root@rh9 root]# xawtv
This is xawtv-3.94, running on Linux/i686  
can't open /dev/video0: Device or resource busy
v4l-conf had some trouble, trying to continue anyway
v4l2: open /dev/video0: 设备或资源忙
v4l2: open /dev/video0: 设备或资源忙
v4l: open /dev/video0: 设备或资源忙
这样的错误提示。

    这样一来,有了一个摄像头和一些基本的软件大家就能在Linux上享受非编的乐趣了,大家快
试试吧。
回复

使用道具 举报

发表于 2005-5-13 09:51:36 | 显示全部楼层
请问楼上的高手,你提到的pwc-8.8.tar.gz就是Philips webcams的驱动吗?代替现有的usb驱动?我用的是mandrake10.1,kernel-2.6.8,用的也是罗技的摄像头,pwc-10.0.6a,安装时
[root@ljr pwc-10.0.6a]#make      后出现错误提示:
make –C /lib/modules/2.6.8.1-10mdksmp/build SUBDIRS=/home/ljr/pwcmodule/pwc-10.0.6a modules
make:  *** /lib/modules/2.6.8.1-10mdksmp/build: no such file or directory. 停止  .
make:  ***  [default] 错误 2
请问出现这个问题是什么原因?
回复

使用道具 举报

发表于 2005-5-15 16:38:37 | 显示全部楼层
我记德好像/lib/modules/2.6.8.1-10mdksmp/build是指向包含内核源代码目录的连接。编译驱动是需要内核源码的
回复

使用道具 举报

发表于 2005-5-20 11:36:58 | 显示全部楼层
对,上面这位大虾说的没错!在编译驱动之前要先安装内核源码,我已经安装了,并且用了下面的语句:
         make
         su
         make install
系统运行正常,但是连上摄像头后打开GNOME后仍然看不到图像。重启系统就出现了起不来大的现象了!
   为什么呢?那里处理问题?
回复

使用道具 举报

发表于 2005-5-24 20:14:44 | 显示全部楼层
很抱歉,我是转贴高手的文章
我自己也没试成功呢
关键linux支持的摄像头太少了
我们这种新手不容易安装成功啊
回复

使用道具 举报

发表于 2005-5-24 20:17:33 | 显示全部楼层
make: *** /lib/modules/2.6.8.1-10mdksmp/build: no such file or directory. 停止

并且确保/lib/modules/`uname -r`/build是正确指向内核源码目录的,如下所示:
[root@LFS ~]
#ls -l /lib/modules/2.6.10-lvm/build
lrwxrwxrwx  1 root root 21 Feb 22 12:50 /lib/modules/2.6.10-lvm/build -> /usr/src/linux-2.6.10/
如果没有正确指向内核源码目录,使用ln -s 命令建立链接:
[root@LFS ~]#ln -s /usr/src/linux-2.6.10 /lib/modules/2.6.10-lvm/build
生成需要的内核源文件:
[root@LFS ~]#cd /usr/src/linux-2.6.10
/root  ------------> /usr/src/linux-2.6.10
[root@LFS linux-2.6.10]#make mrproper
确保内核源码纯净,保证摄像头编译出来可用。
[root@LFS linux-2.6.10]#cp /boot/config-2.6.10 .config
将当前内核配置文件复制过来
[root@LFS linux-2.6.10]#make scripts/
没有这步,编译就会出错。


楼上的一定将再l"inux-2.6.10"改成自己用的内核版本号
再试试看
回复

使用道具 举报

发表于 2005-5-25 15:40:11 | 显示全部楼层
hotchise,我在这里不太明白:

[root@LFS linux-2.6.10]#cp /boot/config-2.6.10 .config

将当前内核配置文件复制过来
在我得/boot中并没有config-2.6.10 .config 的文件,而只有一个config-2.6.8.1-10mdksmp这个文件
这里要拷贝的目的地址是不是/usr/src/linux-2.6.8?
我直接运行了make scripts,结果出现了错误:
Makefile: 415; .config: No such file or directory
Scripts/kconfig/conf –s arch/i386/Kconfig
***
***you have not yet configured your kernel!
***
***please run some configruator (e.g “make menuconfig”)
***
make[2]: ***[silentoldconfig] 错误 1
make[2]:*** [silentoldconfig] 错误 2
make:***[linclude/linux/autoconf.h] 错误 2
从中确实可以看到没有.config 文件,而且是不是内核源码必须处于配置状态才能编译驱动?
回复

使用道具 举报

发表于 2005-5-26 11:49:54 | 显示全部楼层
在我得/boot中并没有config-2.6.10 .config 的文件,而只有一个config-2.6.8.1-10mdksmp这个文件

是将/boot/config-2.6.10这个文件拷到/usr/src/linux-2.6.10这个源码文件夹里,再将
config-2.6.10改为.config

你是mdk一定要先安装内核源码rpm包,你没有config-2.6.8.1这个文件应该没装内核源码rpm
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-24 03:32 , Processed in 0.136891 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表