以Fedora 6为例。首先下载驱动程序 ,使用svn进行下载,如果没有这个命令,则需要安装svn,下载命令:
svn checkout svn://svn.berlios.de/linux-uvc/linux-uvc/trunk
之后就会在~/下生成一个文件夹 linux-uvc。
然后下载视频查看工具:luvcview
先编译uvc driver:
#su
# make
# make install
在执行 make 这一步时我遇到的错误是:
/lib/modules/2.6.18-1.2798.fc6/build 不存在
结果我按照网上的搜索用yum装了一个kernel-header的rpm包。估计当时没有看清楚就直接装了,最后的结果是不但make没有通过,而且系统重启之后出现了很多的问题。没有办法只好把硬盘挂在别的机器上拷贝了一份modules文件。
原来是这样的,/lib/modules/2.6.18-1.2798.fc6/build 是一个指向 /usr/src/kernels/... 的一个链接。我之前优化过系统,把src里的文件都删除了。所以会导致这个错误。
解决办法是安装:kernel-devel-2.6.18-1.2798.fc6.i586.rpm
之后一切正常
如果没有以上的错误,就可以加载uvc驱动:
# modprobe uvcvideo
或者:
# /sbin/modprobe uvcvideo
我这这步遇到的问题是:
加载模块时出现:Invalid module format。
这主要由一下原因引起的:所用内核源码版本号与目前使用的内核不同; 编译目标不同,比如编译的是i686,装好的是i386; 使用编译器版本不同;目前使用的内核不是自己编译出来的。
我的解决办法是使用modprobe的选项--force-vermagic,当然这是有风险的,你可以先使用dmesg查看日志,如果有dmesg中提示的是:
version magic '2.6.12 686 gcc-3.3' should be '2.6.12-10-686 686 gcc-3.4'
用--force-vermagic解决,不过这样风险比较大。
如果dmesg提示的是:
disagrees about version of symbol struct_module
可以用--force-modversion,风险比较小,很不幸,我的是前者,也不过什么大风险了,我直接用了下面的命令:
#modprobe --force-modversion uvcvideo
还好,一切顺利。
最后编译luvcview:
#tar -xzvf luvcview-20070107.tar.gz
#cd ../luvcview-20070107
#make
在这里为遇到的问题是:找不到命令 sdl-config。于是我用 yum 安装SDL开发包:#yum install SDL-devel.i386之后在进行make,顺利通过。
最后我们先将摄像头插入USB端口,然后到luvcview-20070107目录下执行命令:这时就会弹出一个小窗口,能显示图像了。