I have experienced this bug today on a AMD64 Squeeze machine and the
same webcam. The Webcam work perfectly on the Lenny machines, but do not
outputs any image on Squeeze, unless you remove the pwc.ko module and
replug the camera.
There is a trace of what happens while the pwc.ko in inserted fir the
first time into the kernel:
strace -Ff vgrabbj -d /dev/video0 -i vga -f webcam.jpeg
execve("/usr/bin/vgrabbj", ["vgrabbj", "-d", "/dev/video0", "-i", "vga",
"-f", "webcam.jpeg"], [/* 34 vars */]) = 0
[...]
open("/dev/video0", O_RDWR) = 3
ioctl(3, VIDIOC_QUERYCAP or VT_OPENQRY, 0x7ffff41afa00) = 0
ioctl(3, VIDIOC_QUERYCAP or VT_OPENQRY, 0x7ffff41af7f0) = 0
ioctl(3, VIDIOC_G_FMT or VT_SENDSIG, 0x7ffff41af720) = 0
ioctl(3, VIDIOC_ENUM_FMT or VT_SETMODE, 0x7ffff41af600) = 0
ioctl(3, VIDIOC_ENUM_FMT or VT_SETMODE, 0x7ffff41af600) = 0
ioctl(3, VIDIOC_ENUM_FRAMESIZES, 0x7ffff41af640) = 0
ioctl(3, VIDIOC_ENUM_FRAMESIZES, 0x7ffff41af640) = 0
ioctl(3, VIDIOC_ENUM_FRAMESIZES, 0x7ffff41af640) = 0
ioctl(3, VIDIOC_ENUM_FRAMESIZES, 0x7ffff41af640) = -1 EINVAL (Invalid
argument)
ioctl(3, VIDIOC_ENUM_FMT or VT_SETMODE, 0x7ffff41af600) = -1 EINVAL
(Invalid argument)
ioctl(3, VIDIOC_QUERYCAP or VT_OPENQRY, 0x7ffff41af670) = 0
ioctl(3, VIDIOC_G_INPUT, 0x7ffff41aef40) = 0
ioctl(3, VIDIOC_ENUMINPUT, 0x7ffff41aef40) = 0
fstat(3, {st_mode=S_IFCHR|0660, st_rdev=makedev(81, 0), ...}) = 0
open("/sys/class/video4linux/video0/dev", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x7f9327464000
read(4, "81:0\n", 4096) = 5
close(4) = 0
munmap(0x7f9327464000, 4096) = 0
open("/sys/class/video4linux/video0/device/modalias", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x7f9327464000
read(4, "usb:v046Dp08B2d0000dc00dsc00dp00"..., 4096) = 46
close(4) = 0
munmap(0x7f9327464000, 4096) = 0
open("/sys/class/dmi/id/sys_vendor", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x7f9327464000
read(4, "System manufacturer\n", 4096) = 20
close(4) = 0
munmap(0x7f9327464000, 4096) = 0
open("/sys/class/dmi/id/product_name", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x7f9327464000
read(4, "System Product Name\n", 4096) = 20
close(4) = 0
munmap(0x7f9327464000, 4096) = 0
open("/sys/class/dmi/id/product_version", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x7f9327464000
read(4, "System Version\n", 4096) = 15
close(4) = 0
munmap(0x7f9327464000, 4096) = 0
open("/sys/class/dmi/id/board_vendor", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x7f9327464000
read(4, "ASUSTeK Computer INC.\n", 4096) = 22
close(4) = 0
munmap(0x7f9327464000, 4096) = 0
open("/sys/class/dmi/id/board_name", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x7f9327464000
read(4, "M3A78-T\n", 4096) = 8
close(4) = 0
munmap(0x7f9327464000, 4096) = 0
open("/sys/class/dmi/id/board_version", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x7f9327464000
read(4, "Rev 1.xx\n", 4096) = 9
close(4) = 0
munmap(0x7f9327464000, 4096) = 0
ioctl(3, VIDIOC_QUERYCTRL, 0x7ffff41aefd0) = -1 EINVAL (Invalid argument)
ioctl(3, VIDIOC_ENUM_FMT or VT_SETMODE, 0x7ffff41af8a0) = 0
ioctl(3, VIDIOC_TRY_FMT, 0x7ffff41af930) = 0
ioctl(3, VIDIOC_TRY_FMT, 0x7ffff41af930) = 0
ioctl(3, VIDIOC_ENUM_FMT or VT_SETMODE, 0x7ffff41af8a0) = 0
ioctl(3, VIDIOC_TRY_FMT, 0x7ffff41af190) = 0
ioctl(3, VIDIOC_TRY_FMT, 0x7ffff41af190) = 0
ioctl(3, VIDIOC_TRY_FMT, 0x7ffff41af190) = 0
ioctl(3, VIDIOC_TRY_FMT, 0x7ffff41af190) = 0
ioctl(3, VIDIOC_TRY_FMT, 0x7ffff41af190) = 0
ioctl(3, VIDIOC_TRY_FMT, 0x7ffff41af190) = 0
ioctl(3, VIDIOC_TRY_FMT, 0x7ffff41af190) = 0
ioctl(3, VIDIOC_TRY_FMT, 0x7ffff41af190) = 0
ioctl(3, VIDIOC_TRY_FMT, 0x7ffff41af190) = 0
ioctl(3, VIDIOC_TRY_FMT, 0x7ffff41af190) = 0
ioctl(3, VIDIOC_TRY_FMT, 0x7ffff41af190) = 0
ioctl(3, VIDIOC_TRY_FMT, 0x7ffff41af190) = 0
ioctl(3, VIDIOC_TRY_FMT, 0x7ffff41af190) = 0
ioctl(3, VIDIOC_TRY_FMT, 0x7ffff41af190) = 0
ioctl(3, VIDIOC_TRY_FMT, 0x7ffff41af190) = 0
ioctl(3, VIDIOC_TRY_FMT, 0x7ffff41af190) = 0
ioctl(3, VIDIOC_ENUMINPUT, 0x7ffff41af8e0) = 0
ioctl(3, VIDIOC_ENUMSTD, 0x7ffff41af8e0) = 0
ioctl(3, FS_IOC32_GETVERSION or FS_IOC_GETVERSION or VIDIOCGCAP,
0x23d00f0) = 0
ioctl(3, VIDIOC_QUERYCTRL, 0x7ffff41af990) = -1 EINVAL (Invalid argument)
ioctl(3, VIDIOC_QUERYCTRL, 0x7ffff41af990) = 0
ioctl(3, VIDIOC_G_CTRL, 0x7ffff41af980) = 0
ioctl(3, VIDIOC_QUERYCTRL, 0x7ffff41af990) = 0
ioctl(3, VIDIOC_G_CTRL, 0x7ffff41af980) = 0
ioctl(3, VIDIOC_QUERYCTRL, 0x7ffff41af990) = 0
ioctl(3, VIDIOC_G_CTRL, 0x7ffff41af980) = 0
ioctl(3, VIDIOC_QUERYCTRL, 0x7ffff41af990) = 0
ioctl(3, VIDIOC_G_CTRL, 0x7ffff41af980) = 0
mmap(NULL, 67108864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0x7f9321960000
mmap(NULL, 462848, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x7f93273ce000
mmap(NULL, 925696, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x7f93272ec000
write(2, "Reading image from /dev/video0\n", 31Reading image from
/dev/video0
) = 31
read(3,
Any application I tried (xawtv, gstreamer, cheese, vgrabbj) wait
indefinitely a image from the webcam, but it never cam.
The bug was closed because the author suspected a version problem
between the kernel and the modules after observing that the webcam was
working after a reboot. But I carefully inspected the version of my
modules and there absolutely cam from the right kernel. So I tried this:
1) unplug the webcam.
2) rmmod pwc (as root).
3) replug the webcam.
And suddenly the vgrabbj command was working and write a clear picture.
But the other video applications start showing a stream of green
duplicated images were I can only recognize part of the scene.
So suspect a initialization problem into the pwc.ko module.
Jean-Christian de Rivaz
--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org