Gateway webcam not working properly in 11.4 fresh install

Bus 001 Device 002: ID 04f2:b027 Chicony Electronics Co., Ltd Gateway USB 2.0 Webcam

This device is not working properly. I am unable to identify what driver it is or should be using. When I open Cheese all I get is a black screen.

This webcam ist supported by the uvc-driver.

Please install (as root):

zypper in lib4vl luvcview

Then start from terminal:

luvcview

‘lib4vl’ not found in package names. Trying capabilities.
No provider of ‘lib4vl’ found.
Resolving package dependencies…

The following NEW package is going to be installed:
luvcview

1 new package to install.

I could have sworn I installed it from webcam repo already.

roger@SUSE-AMD:~> luvcview
luvcview version 0.2.1
Video driver: x11
A window manager is available
video /dev/video0
ERROR opening V4L interface
: No such file or directory

My fault, try as root:

zypper in libv4l

Then schow if it works with

luvcview

as user.

If after installing ‘libv4l’ and rebooting, and webcam still does not work, please advise:

  • application you are using to test webcam ?
  • whether your openSUSE is 32-bit or 64-bit ?
  • output of sending in a terminal as a regular user:

rpm -qa '*v4l*' '*uvc*'
dmesg | grep uvc -iA1
lsmod | grep uvc

I found several packages of lib4vl and installed them all.

roger@SUSE-AMD:~> luvcview
luvcview version 0.2.1
Video driver: x11
A window manager is available
video /dev/video0
ERROR opening V4L interface
: No such file or directory
roger@SUSE-AMD:~> sudo !!
sudo luvcview
root’s password:
luvcview version 0.2.1
Video driver: fbcon
Hardware surfaces are available (4000K video memory)
video /dev/video0
ERROR opening V4L interface
: No such file or directory

roger@SUSE-AMD:~> rpm -qa ‘v4l’ ‘uvc
libv4l2-0-0.6.4-9.1.i586
v4l-tools-3.95-217.1.i586
luvcview-20070512-12.1.i586
v4l-conf-3.95-217.1.i586
libv4l1-0-0.6.4-9.1.i586
libv4l-0.6.4-2.4.i586
roger@SUSE-AMD:~> dmesg | grep uvc -iA1
roger@SUSE-AMD:~> lsmod | grep uvc

The light for the camera had turned on once… but now does not again.

Linux SUSE-AMD.site 2.6.37.6-0.11-desktop #1 SMP PREEMPT 2011-12-19 23:39:38 +0100 i686 athlon i386 GNU/Linux
32 bit Gnome

I would like to focus on the output of the dmesg and lsmod commands. Those outputs suggest to me that the uvc driver is not loading.

Here is what I get for a different UVC webcam (from those two commands):


oldcpu@corei7:~> dmesg | grep uvc -iA1
    7.276397] uvcvideo: Found UVC 1.00 device <unnamed> (046d:0821)
    7.288948] input: UVC Camera (046d:0821) as /devices/pci0000:00/0000:00:1d.7/usb2/2-3/2-3:1.2/input/input5
    7.289002] usbcore: registered new interface driver uvcvideo
    7.289004] USB Video Class driver (v1.0.0)

and


oldcpu@corei7:~> lsmod | grep uvc
uvcvideo               69865  0 
videodev               81032  1 uvcvideo
v4l1_compat            17057  2 uvcvideo,videodev
usbcore               210466  9 usb_storage,uas,uvcvideo,usbhid,snd_usb_audio,snd_usbmidi_lib,uhci_hcd,ehci_hcd

You see none of that on your Gateway.

If one looks here: Linux UVC driver & tools one can see that the 04f2:b027 is purported to be a uvc webcam.

So the question is, why is the uvc driver not loading ? Is another driver loading instead ?

Now the uvc driver should come with the 2.6.37.6-0.11-desktop kernel on your PC as a ‘kernel module’. My system is a 64-bit system, and I have the kernel-default. So to locate my kernel module I would type:


oldcpu@corei7:~> rpm -qil kernel-default | grep uvc
/lib/modules/2.6.37.6-0.11-default/kernel/drivers/media/video/uvc                                                                                                                       
/lib/modules/2.6.37.6-0.11-default/kernel/drivers/media/video/uvc/uvcvideo.ko

So if you type (for your kernel-desktop kernel) :


rpm -qil kernel-desktop | grep uvc

it should show you that the uvcvideo.ko module is on your PC. Assuming that is the case, then we need to figure out :
(1) why that module is not loading, and
(2) is another webcam module loading and
(3) what happens if you manually load the module

Lets check the dmesg file to see if we can see an error message as to why the webcam module is not loading, and if another module is loading instead. Try these two commands:


dmesg | grep video -iA1
dmesg | grep cam -iA1

Lets also check to see if another webcam driver such as gspca is loading instead:


dmesg | grep gspca

that should give nothing. If it gives something, the wrong driver may be loading.

Let us know if the wrong driver is being loaded, … for if it is being incorrectly loaded, then we may need to blacklist its loading.

I also read an old Ubuntu bug report and an article (with a solution at the end) that complained on a T-1616 Gateway, that the UVC driver would not load when the wireless was active. Lets hope that is not the case for openSUSE.

To load and unload drivers, there is lots of articles on the web, such as Linux Kernel Modules - Load, Unload, Configure - Edoceo, Inc. (but I am not saying that the best article, its simple the top of the list when I surfed with google). Hence to load the uvc driver, with root permissions, something like:


modprobe uvc

or


insmod uvc

one can learn more about each by typing:


man modprobe
man insmod


hopefully that will get you on track a bit. Let us know if the wrong driver is being loaded.

I have upgraded to 12.1 64 bit.

Launching Cheese gives this output.

(cheese:2262): Gtk-WARNING **: Attempting to add a widget with type GtkImage to a GtkToggleButton, but as a GtkBin subclass a GtkToggleButton can only contain one widget at a time; it already contains a widget of type GtkLabel 

(cheese:2262): Gtk-WARNING **: Attempting to add a widget with type GtkImage to a GtkToggleButton, but as a GtkBin subclass a GtkToggleButton can only contain one widget at a time; it already contains a widget of type GtkLabel 

(cheese:2262): Gtk-WARNING **: Attempting to add a widget with type GtkImage to a GtkToggleButton, but as a GtkBin subclass a GtkToggleButton can only contain one widget at a time; it already contains a widget of type GtkLabel 

(cheese:2262): Gtk-WARNING **: Attempting to add a widget with type GtkHBox to a GtkButton, but as a GtkBin subclass a GtkButton can only contain one widget at a time; it already contains a widget of type GtkLabel 

(cheese:2262): Gtk-WARNING **: Attempting to add a widget with type GtkImage to a GtkButton, but as a GtkBin subclass a GtkButton can only contain one widget at a time; it already contains a widget of type GtkLabel 

(cheese:2262): Gtk-WARNING **: Attempting to add a widget with type GtkHBox to a GtkToggleButton, but as a GtkBin subclass a GtkToggleButton can only contain one widget at a time; it already contains a widget of type GtkLabel 

(cheese:2262): Gtk-WARNING **: Attempting to add a widget with type GtkImage to a GtkButton, but as a GtkBin subclass a GtkButton can only contain one widget at a time; it already contains a widget of type GtkLabel 

Strangely it also totally kills my wifi and I have to reboot to get it back.

CLI stuff shows thus.

linux-dbnp:/home/roger # modprobe uvc
FATAL: Module uvc not found.
linux-dbnp:/home/roger # insmod uvc
insmod: can't read 'uvc': No such file or directory
linux-dbnp:/home/roger # 

I don’t use Cheese. None of that means anything to me. Can you help me understand here what it is there you think will help here and why you posted that (I’m keen to learn) ?

Not found ?? That is strange.

How can that be ? Do you have a custom kernel installed ?

Lets follow up on that. Did you read all of my post ? Did you read the bit where I explained HOW to find out if the UVC kernel module is installed on your PC ? ie on my PC’s openSUSE-11.4 partition:


oldcpu@corei7:~> rpm -qil kernel-default | grep uvc
/lib/modules/2.6.37.6-0.11-default/kernel/drivers/media/video/uvc                                                                                                                       
/lib/modules/2.6.37.6-0.11-default/kernel/drivers/media/video/uvc/uvcvideo.ko

so … try that on your PC ! Do you know what kernel you have ? To find out type:


uname -a

on my openSUSE-12.1 partition I get:


oldcpu@corei7:~> uname -a
Linux corei7 3.1.9-1.4-**desktop** #1 SMP PREEMPT Fri Jan 27 08:55:10 UTC 2012 (efb5ff4) x86_64 x86_64 x86_64 GNU/Linux

where in this case its clear I have kernel-desktop. I can also confirm that by typing:


rpm -qa '*kernel*'

which gives:


oldcpu@corei7:~> rpm -qa '*kernel*'
kernel-devel-3.1.9-1.4.1.noarch
**kernel-desktop-3.1.9-1.4.1.x86_64**
kernel-source-3.1.9-1.4.1.noarch
kernel-desktop-devel-3.1.9-1.4.1.x86_64
kernel-xen-devel-3.1.9-1.4.1.x86_64
kernel-syms-3.1.9-1.4.1.x86_64
kernel-default-devel-3.1.9-1.4.1.x86_64

again, it shows ‘kernel-desktop’ on my openSUSE-12.1 system.

So to find out where UVC video driver should be located I type:


rpm -qil kernel-desktop | grep uvc

which gives:


/lib/modules/3.1.9-1.4-desktop/kernel/drivers/media/video/uvc
/lib/modules/3.1.9-1.4-desktop/kernel/drivers/media/video/uvc/uvcvideo.ko

and its clear where the uvc video driver is located.

Please do something similar on your PC to check your pc and confirm the location of the uvc video driver. And post here the result.

Not finding the uvc driver makes no sense, unless you do not have a standard openSUSE kernel.

Thinking about this some more, I am thinking now the driver is not called ‘uvc’ but maybe called ‘uvcvideo’. So instead try:


modprobe uvcvideo

or if that fails try


insmod uvcvideo

and report here the errors you get.

I just switched to 12.1 64bit.

/lib/modules/3.1.9-1.4-desktop/kernel/drivers/media/video/uvc
/lib/modules/3.1.9-1.4-desktop/kernel/drivers/media/video/uvc/uvcvideo.ko

linux-dbnp:/home/roger # modprobe uvc
FATAL: Module uvc not found.
linux-dbnp:/home/roger # insmod uvc
insmod: can’t read ‘uvc’: No such file or directory
linux-dbnp:/home/roger # modprobe uvcvideo
linux-dbnp:/home/roger # insmod uvcvideo
insmod: can’t read ‘uvcvideo’: No such file or directory

Odd behavior. This cam worked when I tried an install of Ubuntu… unfortunately the rest of Ubuntu was horrid and broken.

Does that mean you re-installed ?

If so, the errors could be different. Please,can you then as a regular user, run in an terminal and provide the output of:


dmesg | grep uvc -iA1

and also


lsmod | grep uvc -iA1

and also


su -c 'cat /var/log/messages | grep uvc -iA1'

and enter root password in that last case. Post the output here please.

ok , so now we know the UVC drivers are present

that makes sense, as the driver syntax not called ‘uvc’ but rather it is ‘uvcvideo’

That looks promising

Now that “modprobe uvcvideo” appears to have worked (since there are no errors with ‘modprobe uvcvideo’ ) then you should not need to try ‘insmod’. Its also possible ‘insmod’ needs a path specified ? < don’t know > Lets stick with ‘modprobe’ for the time being and not use ‘insmod’ .

So after ‘modprobe uvcvideo’ what did you do wrt checking if the module/driver was loaded ? Did you try the webcam ? If so, in what apps ? And after trying the webcam, did you then look in /var/log/messages or in dmesg to see if there were any log messages giving hints as to what was working ? Also did you look for loaded modules (after ‘modprobe uvcvideo’ with the command ‘lsmod | grep uvc’ ) ?

Yes, I reinstalled the system with 12.1 64.

roger@linux-dbnp:~> dmesg | grep uvc -iA1
   13.652900] uvcvideo: Found UVC 1.00 device Gateway USB 2.0 Webcam (04f2:b027)
   13.656193] input: Gateway USB 2.0 Webcam as /devices/pci0000:00/0000:00:13.5/usb1/1-1/1-1:1.0/input/input8
   13.656331] usbcore: registered new interface driver uvcvideo
   13.656334] USB Video Class driver (1.1.1)
roger@linux-dbnp:~> lsmod | grep uvc -iA1
uvcvideo               76804  0 
snd_hda_intel          33441  4 
--
videodev              102250  1 uvcvideo
snd_hwdep              13613  1 snd_hda_codec

roger@linux-dbnp:~> su -c 'cat /var/log/messages | grep uvc -iA1'
Password: 
roger@linux-dbnp:~> 

I’ll open Cheese, which lags a bit shows a black screen and kills my Wifi forcing me to reboot.

when you reinstalled did you also reinstall v4l ?

I don’t recommend cheese if using kde. Try packman packaged guvcview and/or wxcam.

Using Gnome now. Yes I reinstalled v4l. I assume i did it right.

Do you have a tv-card or something else installed?

Please post the comlplete output of:

lsusb
/sbin/lspci
zypper se -si v4l luvcview
linux-dbnp:/home/roger # lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 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 001 Device 002: ID 04f2:b027 Chicony Electronics Co., Ltd Gateway USB 2.0 Webcam
Bus 001 Device 003: ID 0bda:8189 Realtek Semiconductor Corp. RTL8187B Wireless 802.11g 54Mbps Network Adapter
Bus 001 Device 004: ID 0bda:0158 Realtek Semiconductor Corp. USB 2.0 multicard reader

linux-dbnp:/home/roger # lspci
00:00.0 Host bridge: ATI Technologies Inc RS690 Host Bridge
00:01.0 PCI bridge: ATI Technologies Inc RS690 PCI to PCI Bridge (Internal gfx)
00:05.0 PCI bridge: ATI Technologies Inc RS690 PCI to PCI Bridge (PCI Express Port 1)
00:07.0 PCI bridge: ATI Technologies Inc RS690 PCI to PCI Bridge (PCI Express Port 3)
00:12.0 SATA controller: ATI Technologies Inc SB600 Non-Raid-5 SATA
00:13.0 USB Controller: ATI Technologies Inc SB600 USB (OHCI0)
00:13.1 USB Controller: ATI Technologies Inc SB600 USB (OHCI1)
00:13.2 USB Controller: ATI Technologies Inc SB600 USB (OHCI2)
00:13.3 USB Controller: ATI Technologies Inc SB600 USB (OHCI3)
00:13.4 USB Controller: ATI Technologies Inc SB600 USB (OHCI4)
00:13.5 USB Controller: ATI Technologies Inc SB600 USB Controller (EHCI)
00:14.0 SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 14)
00:14.1 IDE interface: ATI Technologies Inc SB600 IDE
00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA)
00:14.3 ISA bridge: ATI Technologies Inc SB600 PCI to LPC Bridge
00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
01:05.0 VGA compatible controller: ATI Technologies Inc RS690M [Radeon X1200 Series]
01:05.2 Audio device: ATI Technologies Inc Radeon X1200 Series Audio Controller
08:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 01)

linux-dbnp:/home/roger # zypper se -si v4l luvcview
Empty destination in URI: hd:///?device=/dev/disk/by-id/usb-USB_USB_2.0_Flash_50E65D9F-0:0-part1

Abort, retry, ignore? [a/r/i/?] (a): i
Error retrieving metadata for 'openSUSE-12.1-12.1-1.4':
SKIP request: User-requested skipping of a file
Warning: Disabling repository 'openSUSE-12.1-12.1-1.4' because of the above error.
Loading repository data...
Reading installed packages...

S | Name                 | Type    | Version         | Arch   | Repository       
--+----------------------+---------+-----------------+--------+------------------
i | libv4l               | package | 0.8.5-2.1.2     | x86_64 | openSUSE-12.1-Oss
i | libv4l-32bit         | package | 0.8.5-2.1.2     | x86_64 | openSUSE-12.1-Oss
i | libv4l1-0            | package | 0.8.5-2.1.2     | x86_64 | openSUSE-12.1-Oss
i | libv4l1-0-32bit      | package | 0.8.5-2.1.2     | x86_64 | openSUSE-12.1-Oss
i | libv4l2-0            | package | 0.8.5-2.1.2     | x86_64 | openSUSE-12.1-Oss
i | libv4l2-0-32bit      | package | 0.8.5-2.1.2     | x86_64 | openSUSE-12.1-Oss
i | libv4lconvert0       | package | 0.8.5-2.1.2     | x86_64 | openSUSE-12.1-Oss
i | libv4lconvert0-32bit | package | 0.8.5-2.1.2     | x86_64 | openSUSE-12.1-Oss
i | luvcview             | package | 20070512-17.1.2 | x86_64 | openSUSE-12.1-Oss
i | v4l-conf             | package | 3.102-2.1.2     | x86_64 | openSUSE-12.1-Oss

Please post:

ls -l /dev | grep video

Please copy and paste!