0

I'm using ubuntu 18.10, and my laptop's (ThinkPad 25) built-in webcam image is distorted and pink. I tried in google hangouts and in cheese, and they both show the same kind of image.

Screenshot of cheese showing webcam image, which is distorted and pink.

Cheese doesn't show any errors on command line, just says this:

(cheese:5930): Gtk-WARNING **: 09:00:44.808: Theme parsing error: cheese.css:7:35: The style property GtkScrollbar:min-slider-length is deprecated and shouldn't be used anymore. It will be removed in a future version

which I imagine is not relevant(?).

I found this page: https://help.ubuntu.com/community/Webcam/Troubleshooting but it is very old and talks about Skype, and starting Skype with different options, but I can't use Skype, I need Google Hangouts to work.

I believe this may be what my webcam is:

product: Integrated Camera [4F2:B5AB]
vendor: SunplusIT Inc [4F2]
bus info: usb@1:8
version: 0.10
capabilities:
    USB 2.0
configuration:
    driver: uvcvideo
    maxpower: 500mA
    speed: 480Mbit/s

Any ideas what to do? Thanks!


Edit. Ok, it appears that my laptop actually has 2 different webcams, and the camera that is showing the bad image is actually named Integrated IR Camera. I found a webpage about it, too: https://blogs.gnome.org/jamesh/2017/10/22/thinkpad-infrared-camera/

I was randomly clicking on buttons in cheese, and there is a button that changes which camera it is using, and the other camera is showing picture just fine. The default camera seems to be the infrared camera -- how do I get rid of it in all programs, since it is not doing anything useful?

  • Thanks for the suggestion! There doesn't seem to be a place in Settings/Devices to change cameras. – Karl R. Feb 20 at 9:55
  • 1
    Thanks for the suggestion! I believe that command disables uvcvideo completely, which is not a good idea, as both cameras (the IR and the normal) are using the same driver. – Karl R. Feb 20 at 10:01
  • There is a suggestion about using the BIOS. Is both listed in there? – EODCraft Staff Feb 20 at 10:08
  • I checked, unfortunately the BIOS only has one line for Integrated Camera, it's either Enabled or Disabled. – Karl R. Feb 20 at 10:17
0

So I'll write this here if anyone else runs into this problem and needs my solution.

I ended up disabling the Integrated IR Camera with usb_modeswitch.

First I checked the vendor and product of the Integrated IR Camera with dmesg:

karl@penguin:~$ dmesg |grep "Integrated IR Camera"
[    1.341836] usb 1-5: Product: Integrated IR Camera
[    3.741357] uvcvideo: Found UVC 1.00 device Integrated IR Camera (04f2:b5ac)
[    3.767724] input: Integrated IR Camera: Integrate as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.0/input/input12

This 04f2:b5ac shows the vendor and product.

So I created a customized config file for this device, that will detach the driver from this usb device (the file name contains the vendor and product ids):

karl@penguin:~$ echo "echo DetachStorageOnly=1 > /etc/usb_modeswitch.d/04f2:b5ac" | sudo bash

And then I added a couple of lines into usb_modeswitch udev rules right before the 'LABEL="modeswitch_rules_end"' at the end of the file, so that the config is applied on startup:

karl@penguin:~$ sudo gedit /lib/udev/rules.d/40-usb_modeswitch.rules

(Note that the vendor id and product id still match the ones from dmesg.)

# TP25 IR Camera
ATTR{idVendor}=="04f2", ATTR{idProduct}=="b5ac", RUN+="usb_modeswitch '/%k'"

Rebooted, and now the default Integrated IR Camera is gone for good.

0

The OPs solution didn't work for me, but has given me a push to the right direction. Indeed, if the IR cam is separate from the main one, it can be detached by removing power from it.

Quick google for "ubuntu disable usb device" has shown this page - https://karlcode.owtelse.com/blog/2017/01/09/disabling-usb-ports-on-linux/

In short - find the USB port to which the camera is connected (1-1.6 in the example below, but it for 1-5 for my laptop):

$ for device in $(ls /sys/bus/usb/devices/*/product); do echo $device;cat $device;done
/sys/bus/usb/devices/1-1.2/product
Dell USB Entry Keyboard
/sys/bus/usb/devices/1-1.6/product
Webcam SC-13HDL11624N
/sys/bus/usb/devices/2-1/product
Amazon Kindle
/sys/bus/usb/devices/2-2/product
USB Receiver
/sys/bus/usb/devices/usb1/product
EHCI Host Controller
/sys/bus/usb/devices/usb2/product
xHCI Host Controller
/sys/bus/usb/devices/usb3/product
xHCI Host Controller

Then power it down:

echo '1-1.6' | sudo tee /sys/bus/usb/drivers/usb/unbind

Or do this on reboot via cron:

sudo crontab -e

and add the following there:

@reboot echo '1-1.6' > /sys/bus/usb/drivers/usb/unbind

(of course, replacing "1-1.6" with "1-5" or whatever port your camera is connected)

Similar question and solution is - Is it possible to turn off a specific USB port so it doesn't accept any device?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.