This morning, I ended up with a new toy in my hands and as luck would have it, I also had a couple of hours to mess with it.
The device is a Logitech QuickCam Orbit AF webcam.
I've always had a little interest in videography (nothing compared to my interest in audio, however), and from time-to-time I've tried to get various webcams to work in Linux.
We've used our QuickCam 4000 at home to videoconference with my wife's brother in Windows, but I've always had problems with webcams in general under Linux.
So, I decided that today was the day for this new Orbit AF.
I unwrapped it and plugged it in to my work-issue laptop, and did a quick lsusb. I got a successful
"Bus 001 Device 005: ID 046d:0994 Logitech, Inc."
So, I knew the USB was good to go.
I then proceeded to google the crud out of this device. With some luck, I managed to find a
"linux-uvc" website which told me my webcam was fully supported under this driver.
I then did a quick
emerge -s uvc and up popped the "linux-uvc" package which seemed to fit the bill perfectly.
At this time, the package is ~x86 masked, so I quickly added it to my /etc/portage/package.keywords file and successfully emerged the new driver.
With the webcam plugged in, I ran a quick
modprobe uvcvideo and it inserted with no problems.
Verified by lshw, the module was definitely attached to the usb device.
So, now on to find a program which could actually use the device.
I tried emerging camorama, but it couldn't even init the device.
I verified the existence of a v4l device, and indeed, the /dev directory had /dev/video0 as well as /dev/v4l/video0 nodes.
So, theoretically, I was good to go!
After a bit of frustration, I eventually found a program specifically designed to test uvcvideo devices called
luvcview.
So, I
found it, installed it, and ran it.
It didn't do much, but it did give me a "device has no ioctrl" as an error.
I suspected a kernel problem.
So, I went into the kernel, fiddled a bit with the multimedia devices under the device drivers section and recompiled the kernel. The last thing on the output was this:
uvcvideo.ko needs unknown symbol v4l_compat_translate_ioctl
From previous experience, I knew this was a kernel issue, so I went back in to the multimedia devices section, and found I didn't have the "
Enable Video For Linux API 1 compatible Layer" enabled.
So, I enabled it, set the Video For Linux as a module, and recompiled the kernel.
After a reboot, I tried the luvcview again, and it started right up giving me a view of myself.
As for other applications, I haven't had any success. xawtv tries unsuccessfully to start it, and camorama can't even connect to the node.
I'll continue and update my progress throughout the day.