Webcamera failure

Hello all!

I have a Philips SPC 700NC web-camera which worked alright on OS 11.2. I have recently upgraded (re-installed) to OS 11.4 and I can’t have it working anymore. Neither wxCam, Kopete, WebKam, KDenlive, Cheese, Linphone or luvcview is able to use it.

Here is some output from Konsole:

lsusb

olav@DDAmt:~> lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 009 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 010 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 011 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 0471:0328 Philips (or NXP) SPC 700NC PC Camera
Bus 004 Device 003: ID 046d:c517 Logitech, Inc. LX710 Cordless Desktop Laser
Bus 006 Device 002: ID 046d:c52f Logitech, Inc. Wireless Mouse M305
Bus 008 Device 002: ID 0af0:6971 Option Globetrotter HSDPA Modem

v4l-conf

olav@DDAmt:~> v4l-conf
v4l-conf: using X11 display :0
dga: version 2.0
WARNING: No DGA direct video mode for this display.
mode: 1680x1050, depth=24, bpp=32, bpl=6720, base=unknown
/dev/video0 [v4l2]: no overlay support

wxcam

olav@DDAmt:~> wxcam
Determining video4linux API version...
Using video4linux 2 API
VIDIOC_ENUM_FRAMESIZES: Invalid argument
Using V4L2_PIX_FMT_JPEG pixel format
VIDIOC_DQBUF: Input/output error

Any ideas anyone?

Thanks,
Olav

Take a look at this thread where I tried to help a fedora user, but quickly learned they knew more than I about this: Philips PWC kernel webcam driver not working correctly - FedoraForum.org

In their case, it appears the driver with newer kernels can cause problems with this webcam (they could only get it working with a lower resolution).

Frankly, unless you are an amateur astronomer (where some Phillips webcams are known for being excellent hardware to support such users) I recommend you dump that webcam (give it away to an MS-Windows user ) and purchase your self an inexpensive UVC compatible webcam. While I use the rather expensive Logitech 910 which is UVC compatible (and works with openSUSE-11.3 and 11.4), I gave my sister the Logitech 210 which is also UVC compatible and should work fine with openSUSE-11.4 Linux.

Thanks for the tip!
I am no amateur astronomer and the camera was in fact a bit poor on OS 11.2 as well. It did work, but it was a bit slow. Are you happy with your C910? I could perhaps consider buying one of those.

Cheers

The C910 is nice, but it does require a relatively new computer with a fair amount of CPU, as the C910 is an HD webcam. The pix it streams on the web are an incredibly high quality, part of the reason being it has an ‘auto-focus’ capability. The C210, on the otherhand, is not as demanding on CPU capabilities, but is still fairly good in pix quality. And since it is UVC compatible it works well with all apps.

We can still investigate your Phillips if you want. If the Phillips driver has deteriorated on openSUSE-11.4, I would like to know, so I can make future plans for my mother’s PC’s openSUSE updates (she has openSUSE-11.3 with her Phillips).

I’m currently on vacation with very limited Internet access so it won’t be until late Monday next week that I obtain the time to support this investigation further. Possibly someone else could chime in, in the mean time. The Fedora thread I quoted should provide a good indication of the things you can check (such as the dmesg , various logs, installed apps, their version numbers, etc … ).

Ok, we could make some effort into it if you like. I’ll read the post a bit more closely and see where I end.

Actually, I don’t think that your mother’s webcam would be affected with the same problem as mine is. It appears that I use some Sonix V4L version2 driver(gspca): http://mxhaard.free.fr/spca5xx.html

From boot.msg:

<6>    5.928481] Linux video capture interface: v2.00
<6>    5.937465] gspca: v2.10.0 registered
<6>    5.940842] gspca: probing 0471:0328
<6>    5.944911] sonixj: Sonix chip id: 11
<6>    5.964911] sonixj: Unknown sensor 0000 - forced to mi0360
<6>    5.966973] input: sonixj as /devices/pci0000:00/0000:00:1a.0/usb4/4-1/input/input8
<6>    5.967113] gspca: video0 created
<6>    5.967150] usbcore: registered new interface driver sonixj

PS
I am quite new to 11.4 and in Yast I could not find the log viewer, isn’t there a module for this anymore?

Good point. The gspca is included in the kernel. Take a note of this webpage: HCL:Web cameras - openSUSE

Some applications still don’t work very well together with the gspca drivers, a workaround is to preload a libv4l-compat library:


LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so <application> 

before starting the respective application, i.e. for kopete you would type:


 LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so kopete 

This compat-library can be found in the package “libv4l”, which is available from OSS-Repo or (recommended) from Packman. (see - Additional YaST Package Repositories](http://en.opensuse.org/Additional_YaST_Package_Repositories))

If you have a 64 bit system, you preload the library with:


 LD_PRELOAD=/usr/lib64/libv4l/v4l1compat.so <application> 

If you want to run a 32 bit application (i.e. skype) on a 64 bit system, you first need to install “libv4l-32bit” (only available in the Packman repository) and run the preload-command used for 32 bit.

If this works for you, you can add the LD_PRELOAD-command to the startup command of your menu entry/desktop shortcut via menu editor or with right-clicking the desktop icon => properties => application => command respectively.

You can use ksystemlog as log viewer.


PC: oS 11.3 64 bit | Intel Core2 Quad Q8300@2.50GHz | KDE 4.6.3 | GeForce
9600 GT | 4GB Ram
Eee PC 1201n: oS 11.4 64 bit | Intel Atom 330@1.60GHz | KDE 4.6.0 | nVidia
ION | 3GB Ram

Thanks! Yes I suppose I can use that one, I had just grown accustomed to the yast module:)

F Sauce wrote:

>
> Thanks! Yes I suppose I can use that one, I had just grown accustomed
> to the yast module:)
>
I think it was considered obsolete since there are other tools provided by
the desktop environments.


PC: oS 11.3 64 bit | Intel Core2 Quad Q8300@2.50GHz | KDE 4.6.3 | GeForce
9600 GT | 4GB Ram
Eee PC 1201n: oS 11.4 64 bit | Intel Atom 330@1.60GHz | KDE 4.6.0 | nVidia
ION | 3GB Ram

Hi oldcpu!

I have now tested these commands:

LD_PRELOAD=/usr/lib64/libv4l/v4l1compat.so wxcam:

olav@DDAmt:~>LD_PRELOAD=/usr/lib64/libv4l/v4l1compat.so wxcam
Determining video4linux API version...
Using video4linux 2 API
VIDIOC_ENUM_FRAMESIZES: Invalid argument
Determining pixel format...
pixel format: JPEG
Found V4L2_PIX_FMT_JPEG pixel format
pixel format: RGB3
pixel format: BGR3
Found V4L2_PIX_FMT_BGR24 pixel format
libv4l2: error dequeuing buf: Input/output error
VIDIOC_DQBUF: Input/output error
olav@DDAmt:~> 

LD_PRELOAD=/usr/lib64/libv4l/v4l2compat.so wxcam
LD_PRELOAD=/usr/lib64/libv4l/v4l1convert.so wxcam
LD_PRELOAD=/usr/lib64/libv4l/v42convert.so wxcam

Preloading the convert.so instead was something I picked up on the Ubuntu forum, and the ‘v1’, ‘v2’ testing thing was just an impulse. I also tested Kopete with the preload command.

I have tried setting the various framesizes available spesifically, tried setting the various formats instead of the default ‘auto’, tried different ports (usb), and more … but no success.

It does not matter though, I’m going to buy a new uvc compatible camera as you suggested. And I have an old pc running SuSE 9.1, I might use the Philips camera on that one instead; they are basically the same age and might make a nice couple :kiss:

If you are interested in some more output details I did run an mplayer test:

olav@DDAmt:~> mplayer tv://
MPlayer dev-SVN-r33321-4.5-openSUSE Linux 11.4 (x86_64)-Packman (C) 2000-2011 MPlayer Team
Can't open joystick device /dev/input/js0: No such file or directory
Can't init input joystick
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.
Loading extension-related profile 'vo.vdpau'

Playing tv://.
TV file format detected.
Selected driver: v4l2
 name: Video 4 Linux 2 input
 author: Martin Olschewski <olschewski@zpr.uni-koeln.de>
 comment: first try, more to come ;-)
v4l2: your device driver does not support VIDIOC_G_STD ioctl, VIDIOC_G_PARM was used instead.
Selected device: USB camera
 Capabilities:  video capture  read/write  streaming
 supported norms:
 inputs: 0 = sonixj;
 Current input: 0
 Current format: unknown (0x4745504a)
tv.c: norm_from_string(pal): Bogus norm parameter, setting default.
v4l2: ioctl enum norm failed: Invalid argument
Error: Cannot set norm!
Selected input hasn't got a tuner!
v4l2: ioctl set mute failed: Invalid argument
v4l2: ioctl query control failed: Invalid argument
==========================================================================
Forced video codec: ffmpeg12vdpau
Forced video codec: ffwmv3vdpau
Forced video codec: ffvc1vdpau
Forced video codec: ffh264vdpau
Forced video codec: ffodivxvdpau
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffmjpeg] vfm: ffmpeg (FFmpeg MJPEG)
==========================================================================
Audio: no sound
Starting playback...
v4l2: select timeout
v4l2: select timeout
v4l2: select timeout
v4l2: select timeout
v4l2: select timeout
V:   0.0  10/ 10 ??% ??% ??,?% 0 0 
v4l2: select timeout
V:   0.0  12/ 12 ??% ??% ??,?% 0 0 
v4l2: select timeout
V:   0.0  14/ 14 ??% ??% ??,?% 0 0 
v4l2: select timeout
V:   0.0  16/ 16 ??% ??% ??,?% 0 0 
v4l2: select timeout
V:   0.0  18/ 18 ??% ??% ??,?% 0 0 
v4l2: select timeout
V:   0.0  20/ 20 ??% ??% ??,?% 0 0 
v4l2: select timeout
V:   0.0  22/ 22 ??% ??% ??,?% 0 0 
v4l2: select timeout
V:   0.0  24/ 24 ??% ??% ??,?% 0 0 
v4l2: select timeout
V:   0.0  25/ 25 ??% ??% ??,?% 0 0 
v4l2: select timeout
V:   0.0  27/ 27 ??% ??% ??,?% 0 0 
v4l2: select timeout
V:   0.0  29/ 29 ??% ??% ??,?% 0 0 
v4l2: select timeout
V:   0.0  31/ 31 ??% ??% ??,?% 0 0 
v4l2: select timeout
V:   0.0  33/ 33 ??% ??% ??,?% 0 0 
v4l2: select timeout
V:   0.0  35/ 35 ??% ??% ??,?% 0 0 
v4l2: select timeout
v4l2: ioctl set mute failed: Invalid argument
v4l2: 0 frames successfully processed, 1 frames dropped.


Cheers,
Olav

Out of curiousity, what v4l apps do you have installed? What is output of:

rpm -qa '*v4l*' 

Here it is:

olav@DDAmt:~> rpm -qa '*v4l*'
libv4l1-0-0.6.4-9.1.x86_64
libv4lconvert0-0.6.4-9.1.x86_64
v4l-conf-3.95-217.1.x86_64
libv4l-0.6.4-9.1.x86_64
libv4l2-0-0.6.4-9.1.x86_64

that looks ok to me. I also have some 32-bit compatibility libraries installed for each of livb4l, libv4l1 and libv4l2, but I don’t think that should matter for 64-bit webcam apps.

I confess I also had hiccups with webcams that needed the gspca driver, which is why I switched some time back to only using uvc webcams if at all possible.

I have placed an order for a Logitech Webcam C310.

Cheers,
Olav