2018-11-15 10:43:39

by Paul Menzel

[permalink] [raw]
Subject: Logitech QuickCam USB detected by Linux, but not user space applications

Dear Linux folks,


I tried to get a Logitech QuickCam USB camera working, but unfortunately, it is
not detected by user space (Cheese, MPlayer).

It’s an old device, so it could be broken, but as it’s detected by the Linux
kernel, I wanted to check with you first.

Linux 4.18.10 from Debian Sid/unstable is used.

```
$ dmesg
[…]
[ 2891.404361] usb 3-3: new full-speed USB device number 4 using ohci-pci
[ 2891.626934] usb 3-3: New USB device found, idVendor=046d, idProduct=092e, bcdDevice= 0.00
[ 2891.626945] usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 2891.626951] usb 3-3: Product: Camera
[ 2891.626957] usb 3-3: Manufacturer:
[ 2893.110249] calling media_devnode_init+0x0/0x1000 [media] @ 11704
[ 2893.110256] media: Linux media interface: v0.10
[ 2893.110329] initcall media_devnode_init+0x0/0x1000 [media] returned 0 after 56 usecs
[ 2893.210078] calling videodev_init+0x0/0x79 [videodev] @ 11704
[ 2893.210084] videodev: Linux video capture interface: v2.00
[ 2893.210123] initcall videodev_init+0x0/0x79 [videodev] returned 0 after 21 usecs
[ 2893.333140] calling gspca_init+0x0/0x1000 [gspca_main] @ 11704
[ 2893.333148] gspca_main: v2.14.0 registered
[ 2893.333161] initcall gspca_init+0x0/0x1000 [gspca_main] returned 0 after 3 usecs
[ 2893.370672] calling sd_driver_init+0x0/0x1000 [gspca_spca561] @ 11704
[ 2893.370751] gspca_main: spca561-2.14.0 probing 046d:092e
[ 2893.482675] input: spca561 as /devices/pci0000:00/0000:00:12.0/usb3/3-3/input/input17
[ 2893.485415] usbcore: registered new interface driver spca561
[ 2893.485434] initcall sd_driver_init+0x0/0x1000 [gspca_spca561] returned 0 after 112054 usecs
[…]
$ ls -l /dev/video*
crw-rw----+ 1 root video 81, 0 Nov 15 09:26 /dev/video0

$ mplayer tv:// -tv driver=v4l2:device=/dev/video0
MPlayer 1.3.0 (Debian), built with gcc-8 (C) 2000-2016 MPlayer Team
do_connect: could not connect to socket
connect: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing tv://.
TV file format detected.
Selected driver: v4l2
name: Video 4 Linux 2 input
author: Martin Olschewski <[email protected]>
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: Camera
Capabilities: video capture read/write streaming
supported norms:
inputs: 0 = spca561;
Current input: 0
Current format: unknown (0x31363553)
tv.c: norm_from_string(pal): Bogus norm parameter, setting default.
v4l2: ioctl enum norm failed: Inappropriate ioctl for device
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
v4l2: ioctl query control failed: Invalid argument
==========================================================================
Cannot find codec matching selected -vo and video format 0x31363553.
==========================================================================
No stream found.

v4l2: ioctl set mute failed: Invalid argument
v4l2: 0 frames successfully processed, 0 frames dropped.

Exiting... (End of file)
```

Do you have an idea, what the issue. I know it worked fine several years
ago.


Kind regards,

Paul


Attachments:
smime.p7s (5.05 kB)
S/MIME Cryptographic Signature

2018-11-15 11:40:04

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: Logitech QuickCam USB detected by Linux, but not user space applications

Em Thu, 15 Nov 2018 11:42:32 +0100
Paul Menzel <[email protected]> escreveu:

> Dear Linux folks,
>
>
> I tried to get a Logitech QuickCam USB camera working, but unfortunately, it is
> not detected by user space (Cheese, MPlayer).

Could you please try it with Camorama?

https://github.com/alessio/camorama

>
> It’s an old device, so it could be broken, but as it’s detected by the Linux
> kernel, I wanted to check with you first.
>
> Linux 4.18.10 from Debian Sid/unstable is used.
>
> ```
> $ dmesg
> […]
> [ 2891.404361] usb 3-3: new full-speed USB device number 4 using ohci-pci
> [ 2891.626934] usb 3-3: New USB device found, idVendor=046d, idProduct=092e, bcdDevice= 0.00
> [ 2891.626945] usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
> [ 2891.626951] usb 3-3: Product: Camera
> [ 2891.626957] usb 3-3: Manufacturer:
> [ 2893.110249] calling media_devnode_init+0x0/0x1000 [media] @ 11704
> [ 2893.110256] media: Linux media interface: v0.10
> [ 2893.110329] initcall media_devnode_init+0x0/0x1000 [media] returned 0 after 56 usecs
> [ 2893.210078] calling videodev_init+0x0/0x79 [videodev] @ 11704
> [ 2893.210084] videodev: Linux video capture interface: v2.00
> [ 2893.210123] initcall videodev_init+0x0/0x79 [videodev] returned 0 after 21 usecs
> [ 2893.333140] calling gspca_init+0x0/0x1000 [gspca_main] @ 11704
> [ 2893.333148] gspca_main: v2.14.0 registered
> [ 2893.333161] initcall gspca_init+0x0/0x1000 [gspca_main] returned 0 after 3 usecs
> [ 2893.370672] calling sd_driver_init+0x0/0x1000 [gspca_spca561] @ 11704
> [ 2893.370751] gspca_main: spca561-2.14.0 probing 046d:092e
> [ 2893.482675] input: spca561 as /devices/pci0000:00/0000:00:12.0/usb3/3-3/input/input17
> [ 2893.485415] usbcore: registered new interface driver spca561
> [ 2893.485434] initcall sd_driver_init+0x0/0x1000 [gspca_spca561] returned 0 after 112054 usecs
> […]
> $ ls -l /dev/video*
> crw-rw----+ 1 root video 81, 0 Nov 15 09:26 /dev/video0
>
> $ mplayer tv:// -tv driver=v4l2:device=/dev/video0
> MPlayer 1.3.0 (Debian), built with gcc-8 (C) 2000-2016 MPlayer Team
> do_connect: could not connect to socket
> connect: No such file or directory
> Failed to open LIRC support. You will not be able to use your remote control.
>
> Playing tv://.
> TV file format detected.
> Selected driver: v4l2
> name: Video 4 Linux 2 input
> author: Martin Olschewski <[email protected]>
> 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: Camera
> Capabilities: video capture read/write streaming
> supported norms:
> inputs: 0 = spca561;
> Current input: 0
> Current format: unknown (0x31363553)

The problem is likely here: mplayer is probably not using libv4l2. Without
that, it can't decode the spca561 specific output format. It is probably
due to some option used when mplayer was built.

In the case of Cheese, it uses Gstreamer, with defaults to not use libv4l2
either. On newest versions of it, there is an environment var that would
allow enabling it (I don't remember what var).

Anyway, Camorama is always built with libv4l2, so it should work out of
the box (although I recommend it to use the latest version, as we did
lots of improvements there, including support for the latest Gtk libraries).

> tv.c: norm_from_string(pal): Bogus norm parameter, setting default.
> v4l2: ioctl enum norm failed: Inappropriate ioctl for device
> 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
> v4l2: ioctl query control failed: Invalid argument
> ==========================================================================
> Cannot find codec matching selected -vo and video format 0x31363553.
> ==========================================================================
> No stream found.
>
> v4l2: ioctl set mute failed: Invalid argument
> v4l2: 0 frames successfully processed, 0 frames dropped.
>
> Exiting... (End of file)
> ```
>
> Do you have an idea, what the issue. I know it worked fine several years
> ago.



Cheers,
Mauro

2018-11-16 14:40:18

by Paul Menzel

[permalink] [raw]
Subject: Re: Logitech QuickCam USB detected by Linux, but not user space applications

Dear Mauro,


Thank you very much for the quick reply.


On 11/15/18 12:38, Mauro Carvalho Chehab wrote:
> Em Thu, 15 Nov 2018 11:42:32 +0100 Paul Menzel escreveu:

>> I tried to get a Logitech QuickCam USB camera working, but unfortunately, it is
>> not detected by user space (Cheese, MPlayer).
>
> Could you please try it with Camorama?
>
> https://github.com/alessio/camorama

Thank you for the suggestion. At first, I only saw a black image, but changing the
resolution made it work. See the status below.

1. does *not* work

a) 160x120
b) 176x144

2. works

a) 320x240
b) 352x288

>> It’s an old device, so it could be broken, but as it’s detected by the Linux
>> kernel, I wanted to check with you first.
>>
>> Linux 4.18.10 from Debian Sid/unstable is used.
>>
>> ```
>> $ dmesg
>> […]
>> [ 2891.404361] usb 3-3: new full-speed USB device number 4 using ohci-pci
>> [ 2891.626934] usb 3-3: New USB device found, idVendor=046d, idProduct=092e, bcdDevice= 0.00
>> [ 2891.626945] usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
>> [ 2891.626951] usb 3-3: Product: Camera
>> [ 2891.626957] usb 3-3: Manufacturer:
>> [ 2893.110249] calling media_devnode_init+0x0/0x1000 [media] @ 11704
>> [ 2893.110256] media: Linux media interface: v0.10
>> [ 2893.110329] initcall media_devnode_init+0x0/0x1000 [media] returned 0 after 56 usecs
>> [ 2893.210078] calling videodev_init+0x0/0x79 [videodev] @ 11704
>> [ 2893.210084] videodev: Linux video capture interface: v2.00
>> [ 2893.210123] initcall videodev_init+0x0/0x79 [videodev] returned 0 after 21 usecs
>> [ 2893.333140] calling gspca_init+0x0/0x1000 [gspca_main] @ 11704
>> [ 2893.333148] gspca_main: v2.14.0 registered
>> [ 2893.333161] initcall gspca_init+0x0/0x1000 [gspca_main] returned 0 after 3 usecs
>> [ 2893.370672] calling sd_driver_init+0x0/0x1000 [gspca_spca561] @ 11704
>> [ 2893.370751] gspca_main: spca561-2.14.0 probing 046d:092e
>> [ 2893.482675] input: spca561 as /devices/pci0000:00/0000:00:12.0/usb3/3-3/input/input17
>> [ 2893.485415] usbcore: registered new interface driver spca561
>> [ 2893.485434] initcall sd_driver_init+0x0/0x1000 [gspca_spca561] returned 0 after 112054 usecs
>> […]
>> $ ls -l /dev/video*
>> crw-rw----+ 1 root video 81, 0 Nov 15 09:26 /dev/video0
>>
>> $ mplayer tv:// -tv driver=v4l2:device=/dev/video0
>> MPlayer 1.3.0 (Debian), built with gcc-8 (C) 2000-2016 MPlayer Team
>> do_connect: could not connect to socket
>> connect: No such file or directory
>> Failed to open LIRC support. You will not be able to use your remote control.
>>
>> Playing tv://.
>> TV file format detected.
>> Selected driver: v4l2
>> name: Video 4 Linux 2 input
>> author: Martin Olschewski <[email protected]>
>> 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: Camera
>> Capabilities: video capture read/write streaming
>> supported norms:
>> inputs: 0 = spca561;
>> Current input: 0
>> Current format: unknown (0x31363553)
>
> The problem is likely here: mplayer is probably not using libv4l2. Without
> that, it can't decode the spca561 specific output format. It is probably
> due to some option used when mplayer was built.

I’ll try to look more into that in the next weeks.

> In the case of Cheese, it uses Gstreamer, with defaults to not use libv4l2
> either. On newest versions of it, there is an environment var that would
> allow enabling it (I don't remember what var).

Thank you for the details. I’ll test that next week.

[…]


Kind regards,

Paul


Attachments:
smime.p7s (5.05 kB)
S/MIME Cryptographic Signature

2018-11-23 16:12:16

by Hans Verkuil

[permalink] [raw]
Subject: Re: Logitech QuickCam USB detected by Linux, but not user space applications

Hi Paul,

On 11/16/2018 03:39 PM, Paul Menzel wrote:
> Dear Mauro,
>
>
> Thank you very much for the quick reply.
>
>
> On 11/15/18 12:38, Mauro Carvalho Chehab wrote:
>> Em Thu, 15 Nov 2018 11:42:32 +0100 Paul Menzel escreveu:
>
>>> I tried to get a Logitech QuickCam USB camera working, but unfortunately, it is
>>> not detected by user space (Cheese, MPlayer).
>>
>> Could you please try it with Camorama?
>>
>> https://github.com/alessio/camorama
>
> Thank you for the suggestion. At first, I only saw a black image, but changing the
> resolution made it work. See the status below.
>
> 1. does *not* work
>
> a) 160x120
> b) 176x144
>
> 2. works
>
> a) 320x240
> b) 352x288

Try this patch:

https://patchwork.linuxtv.org/patch/53043/

It probably fixes the same problem you are experiencing.

Regards,

Hans

>
>>> It’s an old device, so it could be broken, but as it’s detected by the Linux
>>> kernel, I wanted to check with you first.
>>>
>>> Linux 4.18.10 from Debian Sid/unstable is used.
>>>
>>> ```
>>> $ dmesg
>>> […]
>>> [ 2891.404361] usb 3-3: new full-speed USB device number 4 using ohci-pci
>>> [ 2891.626934] usb 3-3: New USB device found, idVendor=046d, idProduct=092e, bcdDevice= 0.00
>>> [ 2891.626945] usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
>>> [ 2891.626951] usb 3-3: Product: Camera
>>> [ 2891.626957] usb 3-3: Manufacturer:
>>> [ 2893.110249] calling media_devnode_init+0x0/0x1000 [media] @ 11704
>>> [ 2893.110256] media: Linux media interface: v0.10
>>> [ 2893.110329] initcall media_devnode_init+0x0/0x1000 [media] returned 0 after 56 usecs
>>> [ 2893.210078] calling videodev_init+0x0/0x79 [videodev] @ 11704
>>> [ 2893.210084] videodev: Linux video capture interface: v2.00
>>> [ 2893.210123] initcall videodev_init+0x0/0x79 [videodev] returned 0 after 21 usecs
>>> [ 2893.333140] calling gspca_init+0x0/0x1000 [gspca_main] @ 11704
>>> [ 2893.333148] gspca_main: v2.14.0 registered
>>> [ 2893.333161] initcall gspca_init+0x0/0x1000 [gspca_main] returned 0 after 3 usecs
>>> [ 2893.370672] calling sd_driver_init+0x0/0x1000 [gspca_spca561] @ 11704
>>> [ 2893.370751] gspca_main: spca561-2.14.0 probing 046d:092e
>>> [ 2893.482675] input: spca561 as /devices/pci0000:00/0000:00:12.0/usb3/3-3/input/input17
>>> [ 2893.485415] usbcore: registered new interface driver spca561
>>> [ 2893.485434] initcall sd_driver_init+0x0/0x1000 [gspca_spca561] returned 0 after 112054 usecs
>>> […]
>>> $ ls -l /dev/video*
>>> crw-rw----+ 1 root video 81, 0 Nov 15 09:26 /dev/video0
>>>
>>> $ mplayer tv:// -tv driver=v4l2:device=/dev/video0
>>> MPlayer 1.3.0 (Debian), built with gcc-8 (C) 2000-2016 MPlayer Team
>>> do_connect: could not connect to socket
>>> connect: No such file or directory
>>> Failed to open LIRC support. You will not be able to use your remote control.
>>>
>>> Playing tv://.
>>> TV file format detected.
>>> Selected driver: v4l2
>>> name: Video 4 Linux 2 input
>>> author: Martin Olschewski <[email protected]>
>>> 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: Camera
>>> Capabilities: video capture read/write streaming
>>> supported norms:
>>> inputs: 0 = spca561;
>>> Current input: 0
>>> Current format: unknown (0x31363553)
>>
>> The problem is likely here: mplayer is probably not using libv4l2. Without
>> that, it can't decode the spca561 specific output format. It is probably
>> due to some option used when mplayer was built.
>
> I’ll try to look more into that in the next weeks.
>
>> In the case of Cheese, it uses Gstreamer, with defaults to not use libv4l2
>> either. On newest versions of it, there is an environment var that would
>> allow enabling it (I don't remember what var).
>
> Thank you for the details. I’ll test that next week.
>
> […]
>
>
> Kind regards,
>
> Paul
>


2018-11-24 07:41:34

by Paul Menzel

[permalink] [raw]
Subject: Re: Logitech QuickCam USB detected by Linux, but not user space applications

Dear Hans,


Am 22.11.18 um 13:43 schrieb Hans Verkuil:

> On 11/16/2018 03:39 PM, Paul Menzel wrote:

>> On 11/15/18 12:38, Mauro Carvalho Chehab wrote:
>>> Em Thu, 15 Nov 2018 11:42:32 +0100 Paul Menzel escreveu:
>>
>>>> I tried to get a Logitech QuickCam USB camera working, but unfortunately, it is
>>>> not detected by user space (Cheese, MPlayer).
>>>
>>> Could you please try it with Camorama?
>>>
>>> https://github.com/alessio/camorama
>>
>> Thank you for the suggestion. At first, I only saw a black image, but changing the
>> resolution made it work. See the status below.
>>
>> 1. does *not* work
>>
>> a) 160x120
>> b) 176x144
>>
>> 2. works
>>
>> a) 320x240
>> b) 352x288
>
> Try this patch:
>
> https://patchwork.linuxtv.org/patch/53043/
>
> It probably fixes the same problem you are experiencing.

It indeed does. I cherry picked it to Linus’ master branch, and it fixed
the problem.

Tested-by: Paul Menzel <[email protected]> (Logitech QuickCam 046d:092e)

[…]


Kind regards,

Paul