I get a kernel panic when running the attached sample code. I run it as: $ gcc capture.c -o capture $ export LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so $ ./capture -d/dev/video0 -c1000 -r -r tells it to capture using read(), which libv4l emulates. In the example code, I use read() to fetch from the webcam directly, without using select() to wait for a frame. In the v4l documentation, it states that read() should block until it has a new frame available. This is a Bus 002 Device 005: ID 0c45:62c0 Microdia Sonix USB 2.0 Camera. I can't capture the kernel panic because everything hangs and I have no kernel debugger to try to get that info. I attach a poor quality image taken with a webcam from the screen. I even tried having a vmware virtual machine to try to better capture the panic, but in the virtual machine it doesn't hang. This is Ubuntu 9.10, Linux pablo-laptop 2.6.31-16-generic #52-Ubuntu SMP Thu Dec 3 22:00:22 UTC 2009 i686 GNU/Linux. But I got reports that the same camera on Debian 5.3 is also panicking. Please advice if you need more information to solve this problem.
Attachment:
capture.c
Description: Binary data
Attachment:
2009-10-15-182417.jpg
Description: JPEG image