分页: 1 / 1

[问题] 摄像头 Lost sync on frames 的问题

发表于 : 2007-05-12 22:59
ccser
使用以下方法编译摄像头的驱动:
先是:apt-get source gspca-source

之后就是 make 和 install

加载:sudo modprobe gspca
用 lsusb 命令可以看到:
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 002: ID 04c8:0720 Konica Corp. Digital Color Camera
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
问题是使用 Ubuntu 7.04 内置的 “Ekiga 软电话” 测试摄像头时,预览窗口内没有图像,并且程序反应迟钝。

用 dmesg 命令查看,有以下错误不断出现。
drivers/media/video/usbvideo/konicawc.c: Lost sync on frames
drivers/media/video/usbvideo/konicawc.c: Lost sync on frames
drivers/media/video/usbvideo/konicawc.c: Lost sync on frames

上网查这个问题,好像是要重新编译 Kernel 才能解决。谁能告诉我怎样可以将这个 Patch 写进系统?
http://bugme.osdl.org/show_bug.cgi?id=3286
Distribution:Debian GNU/Linux 3.1
Hardware Environment: Intel YC76 USB webcam
Software Environment: kernel 2.6.8, konicawc kernel module
Problem Description:
The kernel keeps printing "Lost sync on frames" error messages as soon as a
program tries to access the webcam. No video data can be retrieved from the webcam.

The following patch seems enough to solve the problem. (just inverting the order
at which the old and new data blocks are sent to the user).

--- drivers/usb/media/konicawc.c.old 2004-08-27 10:37:43.000000000 +0200
+++ drivers/usb/media/konicawc.c 2004-08-27 11:51:00.000000000 +0200
@@ -362,8 +362,8 @@
else if (!urb->status && !cam->last_data_urb->status)
len = konicawc_compress_iso(uvd, cam->last_data_urb, urb);

- resubmit_urb(uvd, urb);
resubmit_urb(uvd, cam->last_data_urb);
+ resubmit_urb(uvd, urb);
cam->last_data_urb = NULL;
uvd->stats.urb_length = len;
uvd->stats.data_count += len;
另附上我的配置
Ubuntu 7.04
Intel YC76 USB Camera (接在USB1.1的端口上)
测试用 Ekiga软电话程序和 V4L 的解码。