Ubuntu and Old Webcams

Michelle decided to switch to Linux from Windows and I was getting her machine set up so she could do all the things she does on Windows. One of those things is using Skype with her webcam, an old Logitech Quickcam Communicate STX.
NOTE: there are 2 different webcams that have this same name. Hers is the very old one, part # 961410-0403.
It worked OK in Windows but on Linux it had the following symptoms:

  • Worked fine in test mode (under Skype options)
  • Worked fine in other apps like Cheese
  • In a Skype call, worked for a few seconds then froze
  • In a Skype call while frozen, if you move the camera it would unfreeze
  • Computer is a dual core 3.2 GHz 2 GB RAM desktop running 32-bit Ubuntu 12.04, using Skype 4.1.

    Long story short: the problem was caused by this being an old USB 1 webcam. This is a known problem with a bug report.
    Summary: Linux kernel 3.2 has problems getting dual streams (audio & video) from a USB-1 device plugged into a USB-2 port. That's why the camera works fine in Cheese (no audio). Two obvious ways to fix this:

  • Get a USB-2 camera (anything made in the past 5 years should do the trick).
  • Upgrade to a newer Linux kernel that isn't yet part of Ubuntu 12.
  • If you, like me, don't like the idea of getting rid of a perfectly fine webcam, here's how to update your kernel. It's safe because:

  • It doesn't replace whatever kernels you already have
  • You can pick any kernel you want every time you boot
  • The solution is from the bug report linked above. Summary: install 3 packages that make up a stable release of Linux kernel 3.4:

  • Linux headers
  • Linux headers-generic
  • Linux kernel image
  • Each is a .deb file. You can install them just like any .deb package. For example, you can use the Ubuntu Software Center. Simply download each .deb above, save to your disk. Then double-click each from a file manager and the Ubuntu Software Center should pop up and install them for you.
    NOTE: after installing them, remember to "sudo update-grub" to ensure they show up on your Grub boot menu.