UVC


Tag/tag.png

Needs Expansion
This article is incomplete, and needs to be expanded. More info...

UVC stands for 'USB Video Class'. It defines video streaming functionality on the Universal Serial Bus. UVC compliant peripherals only need a generic driver; much like mass storage devices (USB flash disks, External disc enclosures, etc.) can be managed by a single driver because they conform to the USB Mass Storage specification.

UVC Linux Driver

The GNU/Linux UVC Driver page is at Linux USB Video Class device driver home (Supported Devices) and includes a list of supported devices. Instructions for downloading the driver are here Linux USB Video Class device driver home (Download). Only source code is available. Instructions for compiling the source code is included in this wiki.

UVC support in Ubuntu

WebCam SCB-0385N, SC-0311139N and SC-03FFL11939N

With WebCam SCB-0385N (usb ID 2232:1005), WebCam SC-0311139N (usb ID 2232:1020) and WebCam SC-03FFL11939N (usb ID 2232:1028), you might need to add some configuration to the module if the usage of the camera makes the system freeze. SCB-0385N usually works fine with cheese, vlc, skype and other applications, but google-chrome will have issues accesing it. Add the following like to /etc/modprobe.d/uvcvideo.conf to fix this:

options uvcvideo nodrop=1

After you added that line, reloading the driver should fix the issue:

sudo rmmod uvcvideo && sudo modprobe uvcvideo

10.04

In 10.04 the UVC module has been included, what I want to add here is how to change parameters for the driver like brightness and so on , I simply use guvcview install it and start it up using the command line if it is not working from the menu , try guvcview -d /dev/videoX change X to 0 1 2 and test, every change I make in the settings here remains active for other applications like Skype

UVC module included in Ubuntu might not be up to date and your webcam might not be recognized. This tutorial explains how to build the latest v4l-dvb modules from source. Works for Karmic and Lucid as well.

9.04

In 9.04 the UVC module has been included which means that some webcams 'just work' but it is recommended you still download the source code at LinuxTV uvcvideo development repository. On the left sidebar, choose your preferred compressed archive (they all contain the same files). Then build the UVC module as shown here:

Build for 9.04

Make sure you have kernel header files. In Ubuntu 9.04 the header files package should be at least 2.6.28-11 or later.

You can find out which version of Linux kernel you have by issuing the command:

uname -r

Then ensure you have the header files for building the UVC module with:

sudo apt-get install linux-headers-`uname -r`

Install for 9.04

Navigate to the 'uvcvideo-1b4c7a6b9d26' directory (or some similar name) containing the source. If you want to customize which drivers to compile, run:

make menuconfig

If you do not know what to do with the options that come up, just accept the defaults and exit by pressing ESC twice.

To compile the drivers, run

make

then, to install the compiled drivers to the appropriate module directories, run

sudo make install

followed by

sudo depmod -a

After that you should not even need to plug your webcam in, although ensure you can see it by running:

lsusb

If it is there, then run:

sudo modprobe uvcvideo

And you should now be done! See below for other versions.

7.10 to 8.x

From 7.10 the UVC module has been included which means that some webcams 'just work' however UVC is still at an early stage and device support and bugfixes are being added all the time. It may well be necessary to update to the latest version to get your hardware to work, in particular Skype will only work properly if you have uvc version 166 or above, earlier driver versions freeze up after a minute or so with some cameras.

7.04 and earlier

UVC support is not included and you'll have to install it yourself.

Installing UVC

UVC has not released any 'snapshots' yet and has not been packaged and included in the Ubuntu repositories. There is a debian package located here but the best way at the moment is to grab the latest build from the LinuxTV uvcvideo development repository and compile it yourself.

Checkout from SVN (this source is deprecated)

This section describes the steps to download the sources (which are now deprecated) from the Subversion repository. The best place to get the drivers instead: LinuxTV uvcvideo development repository.
If you do not already have subversion installed get it with:

sudo apt-get install subversion

Then get that latest source from the repository with:

svn checkout svn://svn.berlios.de/linux-uvc/linux-uvc/trunk

This will make the directory 'trunk' containing the source in your working directory

Build

Make sure you have kernel header files. In Ubuntu 7.10 and later, you need the header files package specific to your CPU architecture, for example, linux-headers-2.6.22-14-386 in addition to just linux-headers-2.6.22-14. You can do this with:

sudo apt-get install linux-headers-`uname -r`

Navigate to the 'trunk' directory containing the source and run:

make

Install

Ubuntu keeps the kernel module for UVC in /lib/modules/your kernel/ubuntu/media/usbvideo and the makefile has to be altered slightly to install to the correct directory. Open the the makefile in a text editor and change :

INSTALL_MOD_DIR := usb/media

to

INSTALL_MOD_DIR := ubuntu/media/usbvideo

then run

sudo make install

Update dependencies

sudo depmod -a

Insert Modules

Plug in your camera and enter the following command :

sudo modprobe uvcvideo

If you're running 7.10 this may complain that the module's already loaded. In that case unplug your camera and remove the old module with :

sudo modprobe -r uvcvideo

then insert the new one again as above.

UVC (last edited 2013-08-09 13:00:34 by 62)