Microsoft webcam "Device not found", has worked in previous versions

I have a Microsoft NX-6000 webcam. It has worked in previous distribution releases and now it doesn’t in any of the distributions so I suspect it is actually with the kernel. This was suggested by somebody though I cannot find nor remember where I posted this before.

I am trying this in openSUSE 13.2 running Xfce

When I plug in the camera, dmesg shows me


 1567.375112] usb 1-3: new high-speed USB device number 3 using ehci-pci
 1567.495127] usb 1-3: New USB device found, idVendor=045e, idProduct=00f8
 1567.495134] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
 1567.495139] usb 1-3: Product: Microsoft® LifeCam NX-6000
 1567.495143] usb 1-3: Manufacturer: Microsoft
 1567.495963] uvcvideo: Found UVC 1.00 device Microsoft® LifeCam NX-6000 (045e:00f8)
 1567.497392] uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling workaround.
 1567.497758] uvcvideo: Failed to query (129) UVC probe control : -32 (exp. 26).
 1567.497765] uvcvideo: Failed to initialize the device (-5).
 1567.499029] usb 1-3: 3:1 : sample bitwidth 24 in over sample bytes 2
 1567.951029] usb 1-3: 3:1: cannot get freq at ep 0x84
 1567.996121] usb 1-3: 3:1: cannot get freq at ep 0x84
 1567.996747] usb 1-3: 3:1: cannot get freq at ep 0x84
 1568.014879] usb 1-3: 3:1: cannot get freq at ep 0x84
 1568.015506] usb 1-3: 3:1: cannot get freq at ep 0x84

I am not sure if there is much I can do with it failing UVC probes.
lsudb shows it

Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 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 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 002: ID 046d:c530 Logitech, Inc. 
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 045e:00f8 Microsoft Corp. LifeCam NX-6000
Bus 001 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 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

and attempting to run Cheese comes out with


** (cheese:2136): WARNING **: Couldn't register with accessibility bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

(cheese:2136): GLib-GObject-CRITICAL **: g_object_ref_sink: assertion 'G_IS_OBJECT (object)' failed

(cheese:2136): GLib-GObject-CRITICAL **: g_object_ref_sink: assertion 'G_IS_OBJECT (object)' failed

(cheese:2136): GLib-GObject-CRITICAL **: g_object_ref_sink: assertion 'G_IS_OBJECT (object)' failed

(cheese:2136): GLib-GObject-CRITICAL **: g_object_ref_sink: assertion 'G_IS_OBJECT (object)' failed

(cheese:2136): GLib-GObject-CRITICAL **: g_object_ref_sink: assertion 'G_IS_OBJECT (object)' failed

(cheese:2136): GLib-GObject-CRITICAL **: g_object_ref_sink: assertion 'G_IS_OBJECT (object)' failed

(cheese:2136): GLib-GObject-CRITICAL **: g_object_ref_sink: assertion 'G_IS_OBJECT (object)' failed
** Message: cheese-application.vala:211: Error during camera setup: No device found


(cheese:2136): cheese-CRITICAL **: cheese_camera_device_get_device_node: assertion 'CHEESE_IS_CAMERA_DEVICE (device)' failed

(cheese:2136): GLib-CRITICAL **: g_variant_new_string: assertion 'string != NULL' failed

(cheese:2136): GLib-GIO-CRITICAL **: g_settings_schema_key_type_check: assertion 'value != NULL' failed

(cheese:2136): GLib-CRITICAL **: g_variant_get_type_string: assertion 'value != NULL' failed

(cheese:2136): GLib-GIO-CRITICAL **: g_settings_set_value: key 'camera' in 'org.gnome.Cheese' expects type 's', but a GVariant of type '(null)' was given

** (cheese:2136): CRITICAL **: cheese_preferences_dialog_setup_resolutions_for_device: assertion 'device != NULL' failed

And I tried it with

drew@linux-6flt:~> env LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so cheese
ERROR: ld.so: object '/usr/lib/libv4l/v4l1compat.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

** (cheese:3607): WARNING **: Couldn't register with accessibility bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

(cheese:3607): GLib-GObject-CRITICAL **: g_object_ref_sink: assertion 'G_IS_OBJECT (object)' failed

(cheese:3607): GLib-GObject-CRITICAL **: g_object_ref_sink: assertion 'G_IS_OBJECT (object)' failed

(cheese:3607): GLib-GObject-CRITICAL **: g_object_ref_sink: assertion 'G_IS_OBJECT (object)' failed

(cheese:3607): GLib-GObject-CRITICAL **: g_object_ref_sink: assertion 'G_IS_OBJECT (object)' failed

(cheese:3607): GLib-GObject-CRITICAL **: g_object_ref_sink: assertion 'G_IS_OBJECT (object)' failed

(cheese:3607): GLib-GObject-CRITICAL **: g_object_ref_sink: assertion 'G_IS_OBJECT (object)' failed

(cheese:3607): GLib-GObject-CRITICAL **: g_object_ref_sink: assertion 'G_IS_OBJECT (object)' failed
** Message: cheese-application.vala:211: Error during camera setup: No device found


(cheese:3607): cheese-CRITICAL **: cheese_camera_device_get_device_node: assertion 'CHEESE_IS_CAMERA_DEVICE (device)' failed

(cheese:3607): GLib-CRITICAL **: g_variant_new_string: assertion 'string != NULL' failed

(cheese:3607): GLib-GIO-CRITICAL **: g_settings_schema_key_type_check: assertion 'value != NULL' failed

(cheese:3607): GLib-CRITICAL **: g_variant_get_type_string: assertion 'value != NULL' failed

(cheese:3607): GLib-GIO-CRITICAL **: g_settings_set_value: key 'camera' in 'org.gnome.Cheese' expects type 's', but a GVariant of type '(null)' was given

** (cheese:3607): CRITICAL **: cheese_preferences_dialog_setup_resolutions_for_device: assertion 'device != NULL' failed
Failed to create secure directory (/run/user/1000/pulse): Permission denied
ERROR: ld.so: object '/usr/lib/libv4l/v4l1compat.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/usr/lib/libv4l/v4l1compat.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

So… is there any chance?

I wonder if this workaround could help?
http://askubuntu.com/questions/353533/webcam-not-working-in-13-04

Create /etc/modprobe.d/50-uvcvideo.conf with

options uvcvideo quirks=0x100

See how that goes.

The above was reported as helpful to at least one NX-6000 owner (ref post #37)
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1176126

ERROR: ld.so: object ‘/usr/lib/libv4l/v4l1compat.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

Please post:

uname -a
zypper se -si v4l

That was it!
I added the file /etc/modprobe.d/uvcvideo.conf with

options uvcvideo quirks=0x100

and it came right up!

It sounds like it was sent to the upstream for the kernel, so can I (hope) assume that it will be fixed in future kernels?

Amazing how one line, which I haven’t a clue what it is doing, fixes the whole thing.

Thanks for all the help!

Thanks for the update dragonbite. Glad to have been of help. :slight_smile:

Not sure if it will help, but if you look at: http://www.ideasonboard.org/uvc/faq/ there is a section entitled " What are quirks and how do I use them? " . To quote from that faq

The faq then goes on to give some explanations of different examples. For example , the value of 0x00000100 :

… having typed and quoted that, I myself do not know enough about video, webcams, and drivers, to understand what they mean when they state “the uvcvideo driver can then use the current values as default values”.

Please file a bug stating that you needed to use this quirk for your webcam (and that it used to work with older kernels)

This needs to go upstream so it’s fixed for “everyone”