在Linux2.28内核上使用摄像头

Ubuntu 8.04自带的驱动已经能够识别大多数摄像头,然而兼容性并不好,很多只能被Ekiga识别,而无法使用skype进行视频聊天。我们需要进行一些安装和调试工作来让摄像头更好的工作。

首先,,查看当前的usb口连接情况:

$ lsusbBus 005 Device 001: ID 0000:0000 Bus 004 Device 001: ID 0000:0000 Bus 003 Device 002: ID 0483:2016 SGS Thomson Microelectronics Fingerprint ReaderBus 003 Device 001: ID 0000:0000 Bus 002 Device 005: ID 0ac8:301b Z-Star Microelectronics Corp. ZC0301 WebCamBus 002 Device 003: ID 046d:c01f Logitech, Inc. Bus 002 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000

从这些信息我们可以看出摄像头的Vendor_id=0ac8,Product_id=301b;还可以看出图形界面已经使用的usb端口的情况及摄像头芯片的制造商Z-Star Microelectronics Corp.说明我们的摄像头已经被系统所识别,下面让我们开始吧:如果没有连接,重新插一下摄像头,在虚拟机上将会看到摄像头的图标,然后选择到linux中,这样在linux中就能发现USB摄像头设备。

然后安装摄像头的万能驱动,在linux2.6.18以上内核的都需要打补丁。1. 下载gspcav1-20071224.tar.gz并解压$ wget -c ~alien/slackbuilds/gspcav1/build/gspcav1-20071224.tar.gz$ tar zxvf gspcav1-20071224.tar.gz

2. 编译并安装驱动$ cd gspcav1-20071224$ make clean$ make$ sudo make install

若编译出现以下错误的解决办法/usr/src/gspcav1-20070508/gspca_core.c:2303: 错误: ‘VIDIOCSYNC’ 未声明 (在此函数内第一次使用)/usr/src/gspcav1-20070508/gspca_core.c:2354: 错误: ‘VIDIOCGFBUF’ 未声明 (在此函数内第一次使用)/usr/src/gspcav1-20070508/gspca_core.c:2357: 错误: ‘sizeof’ 不能用于不完全的类型 ‘struct video_buffer’/usr/src/gspcav1-20070508/gspca_core.c:2357: 错误: ‘sizeof’ 不能用于不完全的类型 ‘struct video_buffer’/usr/src/gspcav1-20070508/gspca_core.c:2357: 错误: ‘sizeof’ 不能用于不完全的类型 ‘struct video_buffer’/usr/src/gspcav1-20070508/gspca_core.c:2357: 错误: ‘sizeof’ 不能用于不完全的类型 ‘struct video_buffer’/usr/src/gspcav1-20070508/gspca_core.c:2357: 错误: ‘sizeof’ 不能用于不完全的类型 ‘struct video_buffer’/usr/src/gspcav1-20070508/gspca_core.c:2357: 错误: ‘sizeof’ 不能用于不完全的类型 ‘struct video_buffer’/usr/src/gspcav1-20070508/gspca_core.c:2358: 错误: 提领指向不完全类型的指针/usr/src/gspcav1-20070508/gspca_core.c:2361: 错误: ‘BASE_VIDIOCPRIVATE’ 未声明 (在此函数内第一次使用)/usr/src/gspcav1-20070508/gspca_core.c:2393: 错误: ‘VIDIOCKEY’ 未声明 (在此函数内第一次使用)/usr/src/gspcav1-20070508/gspca_core.c:2395: 错误: ‘VIDIOCCAPTURE’ 未声明 (在此函数内第一次使用)/usr/src/gspcav1-20070508/gspca_core.c:2397: 错误: ‘VIDIOCSFBUF’ 未声明 (在此函数内第一次使用)/usr/src/gspcav1-20070508/gspca_core.c:2399: 错误: ‘VIDIOCGTUNER’ 未声明 (在此函数内第一次使用)/usr/src/gspcav1-20070508/gspca_core.c:2400: 错误: ‘VIDIOCSTUNER’ 未声明 (在此函数内第一次使用)/usr/src/gspcav1-20070508/gspca_core.c:2402: 错误: ‘VIDIOCGFREQ’ 未声明 (在此函数内第一次使用)/usr/src/gspcav1-20070508/gspca_core.c:2403: 错误: ‘VIDIOCSFREQ’ 未声明 (在此函数内第一次使用)/usr/src/gspcav1-20070508/gspca_core.c:2405: 错误: ‘VIDIOCGAUDIO’ 未声明 (在此函数内第一次使用)/usr/src/gspcav1-20070508/gspca_core.c:2406: 错误: ‘VIDIOCSAUDIO’ 未声明 (在此函数内第一次使用)/usr/src/gspcav1-20070508/gspca_core.c: 在函数 ‘cd_to_spca50x’ 中:/usr/src/gspcav1-20070508/gspca_core.c:2616: 警告: 隐式声明函数 ‘to_video_device’/usr/src/gspcav1-20070508/gspca_core.c:2616: 警告: 初始化时将整数赋给指针,未作类型转换/usr/src/gspcav1-20070508/gspca_core.c: 在函数 ‘spca50x_create_sysfs’ 中:/usr/src/gspcav1-20070508/gspca_core.c:2655: 警告: 隐式声明函数 ‘video_device_create_file’/usr/src/gspcav1-20070508/gspca_core.c:2665: 警告: 隐式声明函数 ‘video_device_remove_file’make[2]: *** [/usr/src/gspcav1-20070508/gspca_core.o] 错误 1make[1]: *** [_module_/usr/src/gspcav1-20070508] 错误 2make[1]: Leaving directory `/usr/src/linux-2.6.21.2’make: *** [default] 错误 2

解决办法,打补丁

内核:linux2.6.27.11到这儿下载两个文件 ~alien/slackbuilds/gspcav1/build/

gspca_kernel_2.6.27.diffgspcav1-20071224.tar.gz第一个文件是补丁文件,LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18)用就用得上了。第二个是驱动文件。

解压:gspcav1-20071224.tar.gz并进入其目录,拷贝gspca_kernel_2.6.27.diff到此目录。

当前目录运行命令:patch -p1<gspca_kernel_2.6.27.diff进行补丁

孝敬父母、疼爱孩子、体贴爱人、善待朋友。

在Linux2.28内核上使用摄像头

相关文章:

你感兴趣的文章:

标签云: