[Howto] Logitech QuickCam Pro 9000 with Fedora 8

Logitech QuickCam Pro 9000 with Fedora 8
This howto shows how to install the Logitech QuickCam Pro 9000 under Linux. While the howto is focussed on Fedora 8 it should work on all distributions.

I recently got the Logitech QuickCam Pro 9000. It is a higher class webcam with a 2MP sensor and a Carl Zeiss lens – and, according to Logitech’s Linux page it is supported by the uvcvideo driver.

Kernel module installation

The problem is however that the uvcvideo driver is not yet part of the mainline Linux kernel. I fyou plug in a uvcvideo device, the kernel cannot load the right driver:

Dec  7 02:14:06 machine kernel: usb 1-5: new high speed USB device using ehci_hcd and address 4
Dec  7 02:14:06 machine kernel: usb 1-5: configuration #1 chosen from 1 choice
Dec  7 02:14:06 machine kernel: Linux video capture interface: v2.00
Dec  7 02:14:07 machine kernel: usbcore: registered new interface driver snd-usb-audio

The kernel module must be compiled manually. The fastest way to do that is:

$ mkdir linux-uvc;cd linux-uvc; svn checkout http://svn.berlios.de/svnroot/repos/linux-uvc/linux-uvc/trunk
A    trunk/uvc_ctrl.c
A    trunk/uvc_queue.c
A    trunk/uvc_video.c
A    trunk/uvc_v4l2.c
A    trunk/uvc_compat.h
A    trunk/uvc_driver.c
A    trunk/uvcvideo.h
A    trunk/Makefile
A    trunk/dynctrl.txt
Ausgecheckt, Revision 148.
$ cd trunk
$ make
Building USB Video Class driver...
make[1]: Entering directory `/usr/src/kernels/'
  CC [M]  /home/liquidat/tmp/linux-uvc/trunk/uvc_driver.o
  CC [M]  /home/liquidat/tmp/linux-uvc/trunk/uvc_queue.o
  CC [M]  /home/liquidat/tmp/linux-uvc/trunk/uvc_v4l2.o
  CC [M]  /home/liquidat/tmp/linux-uvc/trunk/uvc_video.o
  CC [M]  /home/liquidat/tmp/linux-uvc/trunk/uvc_ctrl.o
  LD [M]  /home/liquidat/tmp/linux-uvc/trunk/uvcvideo.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/liquidat/tmp/linux-uvc/trunk/uvcvideo.mod.o
  LD [M]  /home/liquidat/tmp/linux-uvc/trunk/uvcvideo.ko
make[1]: Leaving directory `/usr/src/kernels/'
$ cd ../..
$ su
# mv linux-uvc /opt
# cd /opt/linux-uvc/trunk
# make install
Installing USB Video Class driver...
make[1]: Entering directory `/usr/src/kernels/'
  INSTALL /opt/linux-uvc/trunk/uvcvideo.ko
make[1]: Leaving directory `/usr/src/kernels/'
depmod -ae

Of course this requires installed kernel development packages and other general development packages (compiler, etc.). Also, on Ubuntu based distributions you want to enter sudo su instead of the plain su.

A working webcam

After all this is done, the webcam is detected properly:

Dec  7 02:26:19 machine kernel: usb 1-5: new high speed USB device using ehci_hcd and address 7
Dec  7 02:26:19 machine kernel: usb 1-5: configuration #1 chosen from 1 choice
Dec  7 02:26:19 machine kernel: uvcvideo: Found UVC 1.00 device  (046d:0990)
Dec  7 02:26:19 machine kernel: usbcore: registered new interface driver uvcvideo
Dec  7 02:26:19 machine kernel: USB Video Class driver (v0.1.0)

The next step is to test the webcam video input. The easiest way is to test this with an application which is known to work with Video4LinuxV2 (uvc mainly supports v4lv2 afaik). The best example is Kopete, which delivered acceptable results for me (although the colours are a bit mixed up):

Kopete showing the webcam input

Skype 2Beta also worked for me with a slightly better video quality, however the screenshot of the Sykpe interface with an embedded video showed just a blank image.

However, if you want to examine the features of your camera in combination with the uvcvideo driver in more detail you need to install luvcview. luvcview can list the possible frame rates and resolutions and also has a display where you can set saturation and similar values live.
In case of QuickCam Pro 9000 I was able to set the resolution to 960×720, and the quality was very good!

Closing words

While this howto explains how to get the uvcvideo driver up and running it does not cover all the fancy features many cameras today come with: additional speakers, microphone, auto-focus and whatnot.

But the main problem is anyway that the module has to be compiled manually. While it worked without any problems this is a task which certainly cannot be done by average computer users. Unfortunately I failed to find any further information why the uvcvideo driver is not part of the kernel yet. I would appreciate any comment which sheds more light on that topic.
It was often mentioned at the uvcvideo driver devel-list that the module will be merged “soon” into the mainline kernel, but that didn’t happen.
However, if the driver is merged at some day it will drastically improve the webcam experience of many Linux users out there since many webcams would be supported out of the box suddenly. I just hope that there are no licence problems keeping uvcvideo out of the kernel atm.

Thanks to Jun’s tech blog for some of the commands used in this howto.

58 thoughts on “[Howto] Logitech QuickCam Pro 9000 with Fedora 8”

  1. Hello,

    I’m thinking about doing something like this for christmas for my wife and her mom, what IM protocol is used for video? Thanks

  2. Actually, what you’re building there is not the entire kernel, just the kernel module, you may want to clarify that. (Way too many people think they have to rebuild the entire kernel just to add a module, so this distinction is important.)

  3. Avuton Olrich: Most IM protocols (except maybe Jabber) today support video functions. However, most Linux implementations of these protocols don’t. The safest bet seems to be Skype.

    Kevin: of course you’re right. I wrote the article in the middle of the night. Although I read over it two times I missed that bit. Thanks.

    In general: The planet software mixed up the title. Again. I wonder why no one fixes that, although I am not the only one with the problem. I even wrote to the admins two times, but got no response.

  4. yeah, while it’s great to finally have a video support in kopete, without a protocol support it’s not very useful :-/

  5. Michal: This post is not about kopete video support. Kopete video support exists for over a year know afaik. And the yahoo protocol and also the MSN protocol both support video in Kopete. That is certainly not “without a protocol support”.

  6. liquidat: you’re right, just all my friends use icq or jabber 😐 for jabber the video support would be really nice as it’s an open and documented protocol.

  7. Michal: the current video support for jabber depends on the libjingle/Jingle implementation protocol. And for some, sad but to me unknown reason the free clients never jumped on that train 😦

    Esben: thanks for that hint!

  8. liquidat,

    This is a nice howto, thanks! My father and I had both tried earlier this year to do what Avuton wants, for my mother and my sister who lives a few hours away. I certainly wish my father hadn’t just impulsively bought two cheap webcams off eBay (ViMicro jpeg things…awful quality). We tried the Yahoo thing which was easy to set up but we could never seem to get sound out of either end (Windows or Linux). I really want to get ekiga or MythTV w/MythPhone set up on both ends but that can be a hassle with NAT which both ends have…oh well. How do you find the frame rate at those higher resolutions with that camera?

  9. luvcvideo reports that at 960*720 supports 15 FPS and 800*600 supports 30 FPS. I only got 5 FPS at 800*600, though, I’m not sure if that is due to a bad driver.

  10. OK – I’ve got it working brilliantly with Ekiga as a test
    What I wanted however was a way to grab pictures
    and upload them to a website – camE only works with
    V4L not V4L2 – has anyone any ideas



  11. i purchased this cam yesterday and STUPIDLY the first thing i did was plug it into my laptop. of course the instructions clearly state not to do this.

    now the cam will not install properly in my main user account… it reads: Error.Drive E/ or similar message. in addition it tries to install everytime i log into that account.

    i did create an entirley new user account and installed all components succesfully.. the cam works great. what i need now is to undo what i’ve done in my main user account and have it install there… properly.


  12. daniel, it sounds to me that you are talking about a problem with Windows – I can’t help you there, sorry, and it is unlikely that anyone else reading this blog can help you there. Ask at a Windows related forum.

  13. Can someone (who has had success installing this driver) post a copy of the Makefile in the trunk directory. Also, does anyone know specifically which “general development packages (compiler, etc.)” are required?

    In addition, it appears that the latest version of the driver is 157 (whereas 148 was discussed above).

    Thanks in advance. Wish this would work from me as well as it has for you all.

  14. Hi,

    I followed the tutorial but I get an error.

    [root@Grumpy trunk]# make install
    Installing USB Video Class driver…
    make[1]: Entering directory `/usr/src/kernels/′
    INSTALL /home/Wags/linux-uvc/linux-uvc/trunk/uvcvideo.ko
    make[1]: Leaving directory `/usr/src/kernels/′
    depmod -ae
    make: depmod: Command not found
    make: *** [install] Error 127

    What do I do??


  15. Wags, to answer your question properly: you realize that you don’t have the executable “depmod” on your system. Afterwards, you check at rpm.pbone.net which package comes along with the executable depmod, see that the package “module-init-tools” is the right one and afterwards install it. πŸ™‚

  16. Wags, you probably have depmod, but /sbin is usually not in your PATH if you use su. The solution is to “export PATH=/sbin:$PATH” before running “make install”. Good luck!

  17. It’s a great webcam and the driver also works well. I have it running on kopete, skype and other programs with no problems. I have yet to get it running on mythphone (latest version). It seems as the only configuration option one has in mythphone in the device itself, which I set to /dev/video0 (that works fine with luvcview). No video. Anybody have the webcam working on mythphone? Any suggestions?

  18. Anand, there is no need to build a custom kernel. Not at all.
    Check if you have the following packages installed:
    Anyway, according to your error post in the Fedoraforum you are missing the package “glibc-headers” which would mean that you have not even a compiler installed….

  19. Thanks, I was missing glibc-headers. I did a make and make install of uvc driver once again. Now it worked, somewhat!! I get the following in dmesg:

    uvcvideo: Found UVC 1.00 device (046d:0990)
    uvcvideo: Failed to query (1) UVC control 2 (unit 0) : -71 (exp. 26).
    uvcvideo: Failed to initialize the device (-5).

    and the following for lsusb

    Bus 001 Device 008: ID 046d:0990 Logitech, Inc.
    Ekiga and VLC did not find the device.

    What next??


  20. If you haven’t had installed glibc-headers your system is really fucked up anyway:

    $ rpm -q --whatrequires glibc-headers
    $ rpm -q --whatrequires glibc-devel

    But in case your system is correct against all odds: since everything worked for me with the given howto the best would be for you to ask at the uvcdriver forum for the error mentioned above.

  21. hi, m using fedora 7… can neone tell me hw can i make my logitech quickcam pro 4000 work on it…. whr can i get the required drivers??? plz help me ot…

  22. I have an OmniVision Technologies webcam (05a9:2640) integrated in my Dell Vostro 1500 notebook. This device is
    advertised as fully supported by the uvcvideo driver.

    I downloaded the svn trunk and successfully compiled the routines, creating the kernel module. After that, I issued
    “make install” and got the responses you posted in the
    “Installing USB Video Class driver… ” part of your howto.

    However, the webcam is still not recognized. It doesn’t appear on dmesg, nor by using CamStream or kopete…
    it seems that the module is not loaded on the kernel, after all…

    What am I doing wrong here? Thank you.

  23. Rudi, at some occasions I had to repeat the make install part for unknown reason. Check if it was that. Otherwise the best is to directly ask at the e-mail list of the driver.

  24. I am not an expert, and must be missing something obvious. I compiled the module as instructed, and all went exactly as it was supposed to. But when i plug in the camera i get

    Feb 13 12:35:15 nextwave kernel: usb 1-3: new high speed USB device using ehci_hcd and address 7
    Feb 13 12:35:15 nextwave kernel: usb 1-3: configuration #1 chosen from 1 choice
    Feb 13 12:35:15 nextwave pulseaudio[2602]: alsa-util.c: Device hw:1 doesn’t support 44100 Hz, changed to 16000 Hz.
    Feb 13 12:35:15 nextwave pulseaudio[2602]: alsa-util.c: Device hw:1 doesn’t support 2 channels, changed to 1.

    modprobe shows there is no uvcvideo module. Is there something else I should have done after compiling the module ?


  25. Daniel, check if you really have the module “uvcvideo.ko” on your hard disk. Search it with locate or check the modules directory of your kernel itself, it should be under /lib/modules/

    If its there, try to reboot, maybe something went wrong with loading the module.
    If its not there something with the build went wrong. Try to build it again and check for errors or warnings. Make sure that the line INSTALL /opt/linux-uvc/trunk/uvcvideo.ko really appears like in the example above.

  26. What am getting is

    uvcvideo: Failed to query (135) UVC control 1 (unit 0) : -110 (exp. 26).
    uvcvideo: Failed to query (129) UVC control 1 (unit 0) : -110 (exp. 26).
    uvcvideo: Failed to initialize the device (-5).
    ALSA sound/usb/usbaudio.c:1268: 8:3:3: cannot set freq 16000 to ep 0x86

    Whats the issue?

  27. Arthur, could be a hardware/chipset problem. Ask at the uvcvideo e-mail lists and include the exact version of your webcam and the exact version of your distribution, kernel and what actually happens to the camera image when the error hits the system.

  28. hi,
    i am trying to check out stuff from svn.berlios.de and apparently the server is down. Is that still working or I have to look on a different place?
    thanks for this howto. It’s really good. Hope it works for me as well. I use fc8 and a Logitech webcam. gscpa was working but now it is not. I suppose this uvc thing is a different way of make my webcam work, right?


  29. Hi it’s me again.
    I have checked out the code using svn. When I do “make install” in /opt/linux-uvc/trunk i get the following:

    root /opt/linux-uvc/trunk/ $ make install
    Installing USB Video Class driver...
    make[1]: Entering directory `/usr/src/kernels/'
    make[1]: Leaving directory `/usr/src/kernels/'
    depmod -ae `uname -r`
    /bin/sh: depmod: command not found
    make: *** [install] Error 127
    root /opt/linux-uvc/trunk/ $ 

    could anybody help?
    thanks a lot

  30. martino, as mentioned above the list of supported devices is given here – so before you start compiling, check if your device is supported. There are still many non-uvs cams around.

    About the missing depmod – install the package module-init-tools.

  31. Hi Liquidat.
    thanks for your answer. this is the output I get from lsusb.

    root /sbin/ $ ./lsusb
    Bus 003 Device 002: ID 046d:08d8 Logitech, Inc. QuickCam for Notebook Deluxe
    root /sbin/ $ 

    I think it belongs to that list. So, I have fixed my issue with “make install”. That is done now. I have booted tha laptop. But still camstream is empty. Do u think camstream can be the problem?


  32. This specific model is not listed at the page, so I’m not sure if that is compatible with uvc or not.

    Anyway, I don’t know about camstream – but to test if your webcam is recognized please check the output of /var/log/messages. That is also mentioned in this howto, please read it carefully enough!

  33. Hey liquidat!! Just wanna send my thanks to ya. I’ve been trying to figure out how to use svn and the inner workings of fedora8 (somethimes I think i’m just too blond) for some time. Now, I can finally free myself from the binds of a bloated OS as the webcam was the last hurdle.

    Again my thanks and best wishes to ya.
    -It’s nice to be free

  34. mencoder tv:// -tv driver=v4l2:width=640:height=480:fps=25:device=/dev/video0 -nosound -ovc lavc -lavcopts vcodec=mjpeg -o test.avi

  35. nevermind, I had a look in Skype, and tested, it works out of the box!

    Thank you so much!


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.