Creative PC-CAM 750 on Fedora 10

About two years ago, I had published some notes about how to use the good old Creative PC-CAM 750 digital camera/webcam combo under Linux using the spca5xx kernel module. Many things have changed since then. The ‘spca5xx‘ driver has been re-released under the name GSPCA, which has lately made its way into the kernel. This should have made things simpler, but, apparently, the fact that this device can be used both as a digital camera and a webcamera complicates its use under GNOME. By default, GNOME mounts the device’s internal flash memory, so you can pull those digital photographs you have taken. This is a rather expected behaviour despite the fact that this is an old-tech digital camera. The main problem though is that there is no obvious way to switch to webcam-mode from within GNOME. Below are some notes about how to do it.

The following steps have been tested on Fedora 10 (GNOME v2.24.2). Most probably, they will work on other recent Linux distributions (Ubuntu, OpenSUSE, Mandriva, etc).

As mentioned previously, as soon as the device is plugged into the USB port, GNOME mounts its internal flash memory.

Looking at dmesg output as root:

# dmesg
usb 3-1: new full speed USB device using uhci_hcd and address 2
usb 3-1: configuration #1 chosen from 1 choice
usb 3-1: New USB device found, idVendor=041e, idProduct=4013
usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 3-1: Product: Creative PC-CAM 750
usb 3-1: Manufacturer: ViewQuest Technologies INC.
Linux video capture interface: v2.00
gspca: main v2.2.0 registered
gspca: probing 041e:4013
gspca: probe ok
gspca: probing 041e:4013
usbcore: registered new interface driver sunplus
sunplus: registered
gspca: disconnect complete

As you can see, despite the fact that the webcam has been recognized by the gspca-sunplus driver, gspca loses control of the webcam. This happens because GNOME (gvfs) has mounted its memory. Obviously, the device cannot operate as a webcam while its internal memory is mounted.

To list the currently mounted block devices by gvfs run the following command as your currently logged in user:

$ gvfs-mount -l
Drive(0): CD-RW/DVD±RW Drive
Drive(1): Mass Storage Drive
...
...
Mount(0): Creative Technology, Ltd PC-Cam 750 -> gphoto2://[usb:003,002]/

So, there it is. The gphoto2 driver has been used to mount the device’s flash memory.
To unmount it run (as the currently logged in user):

$ gvfs-mount -u gphoto2://[usb:003,002]/

Replace the usb port reference according to your gvfs-mount -l output.

Alternatively, you can unmount all devices mounted by the gphoto2 driver with the following command:

$ gvfs-mount --unmount-scheme gphoto2

Now, the camera’s memory shouldn’t be listed in gvfs-mount -l output.

All you have to do now to get to webcam-mode is reload the gspca-sunplus module.

As root:

# /sbin/modprobe -vr gspca-sunplus
# /sbin/modprobe -v gspca-sunplus

Running dmesg we confirm that the gspca-sunplus module controls the device

# dmesg
...
...
Linux video capture interface: v2.00
gspca: main v2.2.0 registered
gspca: probing 041e:4013
gspca: probe ok
gspca: probing 041e:4013
usbcore: registered new interface driver sunplus
sunplus: registered

Also, the ls command shows that our v4l device has been created:

# ls -l /dev/video*
lrwxrwxrwx  1 root root     6 2008-12-08 15:49 /dev/video -> video0
crw-rw----+ 1 root root 81, 0 2008-12-08 15:49 /dev/video0

That’s it. As a user, run cheese and say hello to yourself!

This should work for all other digital-camera / web-camera combo devices as well, provided that you use the appropriate gspca driver as shown in the dmesg output.

Your feedback is welcome.

Creative PC-CAM 750 on Fedora 10 by George Notaras is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Copyright © 2008 - Some Rights Reserved

George Notaras avatar

About George Notaras

George Notaras is the editor of the G-Loaded Journal, a technical blog about Free and Open-Source Software. George, among other things, is an enthusiast self-taught GNU/Linux system administrator. He has created this web site to share the IT knowledge and experience he has gained over the years with other people. George primarily uses CentOS and Fedora. He has also developed some open-source software projects in his spare time.

3 responses on “Creative PC-CAM 750 on Fedora 10

  1. Felix Calderon Permalink →

    Gracias amigo, muchas gracias a todos, especialmente a ti, autor de esta publicacion.

    Ahora permiteme preguntarte… Hay alguna manera de que en cheese se ajuste el contraste y brillo?

    Gracias

    Thank friend, many thanks to everybody, especially to you. manager of this publication.

    Now please, could you askme how do i do in order to adjust the bright and contrast of my web cam?

    thanks again

    FCR
    Lima-Peru

  2. S. Nigri Permalink →

    Thanks George,

    With your explanation I finally get my PC Cam 300 works like webcam in Fedora 10. It was easy changing only gspca-sunplus by gspca-spca500.

    But, when I turn-off the computer it is necessary to reload all the commands. Do you know how to fix to have only the /dev/video0 mounted?

    Thank you.

    SNigri

  3. Joseph V.M Permalink →

    Thanks a lot George! I was very lost with my PC-CAM 600.

    I did as you said, and it mounted /dev/video0, but in Cheese and Skype doesn’t appear image ( black ).

    When I try save video in Cheese it closes. It is in Ubuntu 12.10 .

    Do you know what happends, please?

    Thank you!

    Pepe

    # dmesg


    [ 3025.190972] usb 2-1.5: new full-speed USB device number 13 using ehci_hcd
    [ 3025.292469] usb 2-1.5: New USB device found, idVendor=041e, idProduct=400b
    [ 3025.292473] usb 2-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    [ 3025.292476] usb 2-1.5: Product: Creative PC-CAM 600
    [ 3025.292478] usb 2-1.5: Manufacturer: ViewQuest Technologies INC.
    [ 3025.293014] gspca_main: sunplus-2.14.0 probing 041e:400b
    [ 3026.062916] usb 2-1.5: usbfs: interface 0 claimed by usbfs while ‘gvfs-gphoto2-vo’ sets config #1
    [ 3026.680455] usb 2-1.5: usbfs: process 1906 (gvfs-gphoto2-vo) did not claim interface 1 before use
    [ 3026.721842] usb 2-1.5: usbfs: interface 0 claimed by usbfs while ‘pool’ sets config #1
    [ 3026.723939] usb 2-1.5: usbfs: process 4136 (pool) did not claim interface 1 before use
    [ 3274.767768] usbcore: deregistering interface driver sunplus
    [ 3294.113333] gspca_main: sunplus-2.14.0 probing 041e:400b
    [ 3298.212874] usbcore: registered new interface driver sunplus
    [ 3699.348420] cheese[4175]: segfault at 7fd034000000 ip 00007fd0349bd5bc sp 00007fff1b0791e8 error 4 in libc-2.15.so[7fd03493a000+1b5000]
    # ls -l /dev/video*
    crw-rw—-+ 1 root video 81, 0 feb 16 04:59 /dev/video0