Z-star Video Camera working in Ubuntu Intrepid

At last. Its a lazy Saturday after New Year, and I just got around to fixing another one of the things which broke when I upgraded to Intrepid – the video camera. Actually I don't really use it much, hence it got dropped to the back of the queue, but its nice to get things working again.

Here's the relevant info:

$> tail -f /var/log/messages

{insert camera}

Jan  3 14:28:13  kernel: [18540.528056] usb 5-1: new full speed USB device using uhci_hcd and address 4
Jan  3 14:28:13  kernel: [18540.741888] usb 5-1: configuration #1 chosen from 1 choice
Jan  3 14:28:13  kernel: [18540.745214] gspca: probing 0ac8:301b
Jan  3 14:28:14  kernel: [18541.048159] zc3xx: probe sensor -> 0a
Jan  3 14:28:14  kernel: [18541.048168] zc3xx: Find Sensor PB0330. Chip revision 0
Jan  3 14:28:14  kernel: [18541.055586] gspca: probe ok

$> lsusb
Bus 005 Device 004: ID 0ac8:301b Z-Star Microelectronics Corp. ZC0301 WebCam

$> lsmod | grep gspca
gspca_zc3xx            55936  0
gspca_main             29312  1 gspca_zc3xx
videodev               41344  1 gspca_main
usbcore               148848  6 gspca_zc3xx,gspca_main,usbhid,uhci_hcd,ehci_hcd

$ ls /dev/video*
/dev/video0

So everything seemed to be making the right noises, but any app I tried (camorama, skype) would just bomb out, being unable to find the camera.  I'd tried a couple of things before, such as recompiling the drivers, and adding lines to /etc/modprobe.d/blacklist and /etc/modprobe.d/options but nothing had worked, mainly I suspect, because these fixes related to the previous version of Ubuntu, 8.04. The answer was eventually very simple and was detailed here. I'm gong to reproduce it below anyway:

The core of the problem is that gspca drivers in 8.10 apparently implement V4L2, while many applications are still using V4L1 protocol. See http://hansdegoede.livejournal.com/3636.html .

Diagnostics:
install camstream
start camstream, open trace window, and start camera. Expect to see messages like:
VIDIOCSYNC(1) failed (Invalid argument)

How to workaround this (see also https://lists.linux-foundation.org/pipermail/bugme-janitors/2008-October/011912.html):

1. Download and unpack http://people.atrpms.net/~hdegoede/libv4l-0.5.0.tar.gz
2. See README, and install: sudo make install
3. Open terminal window
4. $ export LD_PRELOAD=/usr/local/lib/libv4l/v4l1compat.so
5. $ camstream
Start camera, should now work.

How to make skype work:
1. create new shell script (call it skype_wrapper), put it somehwere (e.g. /usr/local/bin/skype_wrapper). Content:
#!/bin/bash
export LD_PRELOAD=/usr/local/lib/libv4l/v4l1compat.so
skype
2. Open System/Root Menu manager, locate Skype, Edit the shortcut replacing command "skype" => "/usr/local/bin/skype_wrapper".
3. Start skype (restart, if already running). Test video should now work.

All good. Even the skype fix worked. Now its just bluetooth to fix … mutter mutter.

1 thought on “Z-star Video Camera working in Ubuntu Intrepid”

Leave a Comment