导读:
在Linux下驱动USB摄像头一直不是容易的事情,尽管其内核中就集成了对0V511系列摄像头的支持,开源驱动spca5xx/gspca也提供了对大部分主流摄像头的支持,但还是无法涵盖所有品牌的各种型号的摄像头,尤其是对于国内的中低端用户,很难找到直接可用的Linux下的驱动。
本文简单介绍了gspca驱动程序、spcagui和spcaview等测试程序的安装过程,并以在gspca中添加对Logitech QuickCam Easy/Cool(快看灵讯版)摄像头的支持为例,给出了在gspca驱动程序中添加新的摄像头支持的一般方法。
1 安装gspca驱动程序
gspca用于2.6.17以上的内核版本,以前的版本使用spca5xx驱动程序。gspca可直接支持的摄像头列表可见http://mxhaard.free.fr/spca5xx.html。
(1)安装内核头文件
#uname -r
2.6.20-1.2962.fc6
#arch
i686
#wget http://fedora.fastbull.org/updates/testing/6/i386/kernel-
devel-2.6.20-1.2962.fc6.i686.rpm
#rpm -ivh kernel-devel-2.6.20-1.2962.fc6.i686.rpm
这样,内核头文件被安装到/usr/src/kernels/2.6.20-1.2962.fc6-i686目录下。
(2)安装gspca驱动:
#wget http://mxhaard.free.fr/spca50x/Download/gspcav1-
20070508.tar.gz
#tar xfv gspcav1-20070508.tar.gz
#cd gspcav1-20070508
#./gspca_build
gspca_build是一个自动编译、安装、加载驱动模块的腳本。可以使用命令“depmod -ae”来检查内核模块的依赖关系是否冲突。
注意,安装好驱动并加载gspca.ko模块后,一般会有/dev/video和/dev/video0等设备文件的存在,否则可能是驱动程序对本机的摄像头的支持有问题。另外,要正常使用摄像头,内核中应有video for linux的支持(Fedora内核一般是默认支持)。
(3)安装spcagui、spcaview等摄像头测试程序
实际上,只要正确安装好驱动之后,就可以使用"应用程序->Internet->Kopete"或gnome-netmeeting等程序来测试摄像头是否能正常工作了。当然也可以使用spcagui、spcaview等专门的摄像头工具软件。
要安装spcagui或spcaview,必须先安装SDL、SDL-devel、SDL_image和SDL_image-devel软件包。然后直接make并make install即可。
2 gspca不能直接支持Logitech QuickCam Easy/Cool(快看灵讯版,046d:08af)
Logitech的摄像头有个“特点”,一个英文名有好几个中文名,例如快看灵讯版和快看酷讯版,包装盒上都写的是Logitech QuickCam Cool,由于在gspca的摄像头支持列表中看到了Logitech QuickCam Cool,于是买了个灵讯版。
首先在Windows上试验摄像头效果,插入USB口,显示设备为Logitech QuickCam Easy/Cool,就感觉情况不妙,一看Vendor ID:Product ID是046d:08af,果然不在gspca的摄像头支持列表内。不管怎么样,先到Fedora下试试再说。
#lsusb
Bus 002 Device 001: ID 0000:0000
Bus 002 Device 003: ID 046d:08af Logitech, Inc.
Bus 001 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
可见设备ID的确是046d:08af。加载gspca驱动模块后,运行spcagui或者spcaview,提示“No such file or directory.”
“ls /dev/video*”发现没有任何相应的设备文件,于是手动建立:
#mknod /dev/video0 c 81 0
#ln -s /dev/video0 /dev/video
之后再运行spcagui或者spcaview,提示“Device not found.”
在Google上搜了两个晚上,还是没能找到解决问题的办法。看来唯一能找到问题所在并加以解决的办法就是从gspca驱动程序的源代码入手了。
3 使gspca驱动程序支持Logitech QuickCam Easy/Cool
(1)gspca驱动程序结构简析
gspca驱动程序的核心代码是gspca_core.c,包括了设备注册、注销、各种操作方法集(定义了所支持的摄像头设备列表,设备检测和初始化,设备打开、参数设置、关闭等各种操作函数)。
gspca.h是一个核心头文件,它的主要内容有:
a)定义所
在Linux下驱动USB摄像头一直不是容易的事情,尽管其内核中就集成了对0V511系列摄像头的支持,开源驱动spca5xx/gspca也提供了对大部分主流摄像头的支持,但还是无法涵盖所有品牌的各种型号的摄像头,尤其是对于国内的中低端用户,很难找到直接可用的Linux下的驱动。
本文简单介绍了gspca驱动程序、spcagui和spcaview等测试程序的安装过程,并以在gspca中添加对Logitech QuickCam Easy/Cool(快看灵讯版)摄像头的支持为例,给出了在gspca驱动程序中添加新的摄像头支持的一般方法。
1 安装gspca驱动程序
gspca用于2.6.17以上的内核版本,以前的版本使用spca5xx驱动程序。gspca可直接支持的摄像头列表可见http://mxhaard.free.fr/spca5xx.html。
(1)安装内核头文件
#uname -r
2.6.20-1.2962.fc6
#arch
i686
#wget http://fedora.fastbull.org/updates/testing/6/i386/kernel-
devel-2.6.20-1.2962.fc6.i686.rpm
#rpm -ivh kernel-devel-2.6.20-1.2962.fc6.i686.rpm
这样,内核头文件被安装到/usr/src/kernels/2.6.20-1.2962.fc6-i686目录下。
(2)安装gspca驱动:
#wget http://mxhaard.free.fr/spca50x/Download/gspcav1-
20070508.tar.gz
#tar xfv gspcav1-20070508.tar.gz
#cd gspcav1-20070508
#./gspca_build
gspca_build是一个自动编译、安装、加载驱动模块的腳本。可以使用命令“depmod -ae”来检查内核模块的依赖关系是否冲突。
注意,安装好驱动并加载gspca.ko模块后,一般会有/dev/video和/dev/video0等设备文件的存在,否则可能是驱动程序对本机的摄像头的支持有问题。另外,要正常使用摄像头,内核中应有video for linux的支持(Fedora内核一般是默认支持)。
(3)安装spcagui、spcaview等摄像头测试程序
实际上,只要正确安装好驱动之后,就可以使用"应用程序->Internet->Kopete"或gnome-netmeeting等程序来测试摄像头是否能正常工作了。当然也可以使用spcagui、spcaview等专门的摄像头工具软件。
要安装spcagui或spcaview,必须先安装SDL、SDL-devel、SDL_image和SDL_image-devel软件包。然后直接make并make install即可。
2 gspca不能直接支持Logitech QuickCam Easy/Cool(快看灵讯版,046d:08af)
Logitech的摄像头有个“特点”,一个英文名有好几个中文名,例如快看灵讯版和快看酷讯版,包装盒上都写的是Logitech QuickCam Cool,由于在gspca的摄像头支持列表中看到了Logitech QuickCam Cool,于是买了个灵讯版。
首先在Windows上试验摄像头效果,插入USB口,显示设备为Logitech QuickCam Easy/Cool,就感觉情况不妙,一看Vendor ID:Product ID是046d:08af,果然不在gspca的摄像头支持列表内。不管怎么样,先到Fedora下试试再说。
#lsusb
Bus 002 Device 001: ID 0000:0000
Bus 002 Device 003: ID 046d:08af Logitech, Inc.
Bus 001 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
可见设备ID的确是046d:08af。加载gspca驱动模块后,运行spcagui或者spcaview,提示“No such file or directory.”
“ls /dev/video*”发现没有任何相应的设备文件,于是手动建立:
#mknod /dev/video0 c 81 0
#ln -s /dev/video0 /dev/video
之后再运行spcagui或者spcaview,提示“Device not found.”
在Google上搜了两个晚上,还是没能找到解决问题的办法。看来唯一能找到问题所在并加以解决的办法就是从gspca驱动程序的源代码入手了。
3 使gspca驱动程序支持Logitech QuickCam Easy/Cool
(1)gspca驱动程序结构简析
gspca驱动程序的核心代码是gspca_core.c,包括了设备注册、注销、各种操作方法集(定义了所支持的摄像头设备列表,设备检测和初始化,设备打开、参数设置、关闭等各种操作函数)。
gspca.h是一个核心头文件,它的主要内容有:
a)定义所