Landon Noll looking up Fremont Peak Observatory 0.8m telescope Leonid 2001 meteor squall count at Fremont Peak

Philips - Logitech USB camera setup for RedHat 8.0 Linux

[chongo's home] [Astronomy] [Mathematics] [Prime Numbers] [Programming] [Technology] [contacting Landon]
 

NOTE: The maintainers of the kernel pwc and pwcx modules choose to protest a Linux kernel decision related to the pwcx module by removing their support and their support web site (www.smcc.demon.nl/webcam) from the net. Luc Saillard restored the pwc module without the disputed pwcx module soon afterwards. See the new mainter's support site for more details.

NOTE: LavaRand users: LavaRand does not need pwcx module, so this change will not impact your use of Philips USB Webcams that are already supported.

If you are using a RedHat 8.0 or with an equivalent Linux 2.4.18-14 kernel, or a later 2.4 kernel then you should follow:

These instructions

Q: What if I am running a non-RedHat Linux distribution?

A: It is also likely that a non-RH distributions will also work as long as their software as critical updates applied and below fixed critical software packages are as up to date.

Q: How do I know if my system is up to date enough to use these instructions?

A: To use these instructions, you system needs have:

Run the command:

rpm -q kernel hotplug hwdata usbutils

to determine if your system is running at those levels.

FYI: If that rpm command says:

package something is not installed

then you need to install that package from your vendor's distribution.

See the Prerequisites for additional information on system requirements.

NOTE: RedHat 8.0 was released with kernel version 2.4.18-14. We did successfully run with both kernel version 2.4.18-14 and kernel version 2.4.18-18.7.x. We recommend version 2.4.18-19.8.0 (or later) because of useful bug fixes to components not related to the camera.

NOTE: RedHat 8.0 was released with hwdata version 0.47-1, they shortly thereafter released hwdata version 0.48-1. Our camera worked with both versions. There are more up to date versions of hwdada available such as hwdata version 0.64.1 which contain updates and configurations for other hardware as well.


 

Quick links

  1. A few things first . . .
  2. Prerequisites
  3. pwc hotplug script installation
  4. disable USB audio if you do not need it (optional but usually recommended)
  5. hotplug test
  6. /dev/video0 file and permissions
  7. camstream install
  8. camstream test
NOTE: You should read ALL these sections in order FIRST!!!

After you have read them all, then follow the appropriate instructions in order.


(top)

A few things first . . .

This web page describes how we were able to get the Logitech QuickCam 3000 Pro USB camera to work under Linux. The Logitech QuickCam 3000 Pro USB camera is also known as the Philips 730 webcam.

The PWC 8.6 module works with a number of other cameras:

The PWC project page for information on supported cameras.

Some cameras such as the Logitech QuickCam 4000 Pro require a PWC version later than PWC 8.6 and a kernel version later than kernel version 2.4.18. If your camera requires this, you will need to install a newer kernel and/or PWC module. Installing a newer kernel and/or PWC module is beyond the scope of this document.

Nearly all of the code was written by somebody else. Landon helped debug and submitted a few (important) bug fixes and created the pwc hotplug support script.

We do not support this code. We do not maintain this code ... the maintainers do.

And as a standard disclaimer regarding this document:

Copyright © 2003 by Landon Curt Noll. All Rights Reserved.

Permission to use, copy, modify, and distribute this software and
its documentation for any purpose and without fee is hereby granted,
provided that the above copyright, this permission notice and text
this comment, and the disclaimer below appear in all of the following:

supporting documentation
source copies
source works derived from this source
binaries derived from this source or from derived source

LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.

chongo (Landon Curt Noll, www.isthe.com/chongo/index.html) /\oo/

Share and enjoy! :-)

While these instructions worked for us, they may not work for you. You assume the risk if you follow in our footsteps.


(top)

Prerequisites


(top)

pwc hotplug script installation

NOTE: You must be the root user to do this.

We are now ready to install the pwc hotplug script.

Create the pwc hotplug script:

cd /etc/hotplug/usb
cat >pwc <<EOF
#!/bin/bash
#
# Phillips webcam module setup
#
# See: http://www.saillard.org/linux/pwc/ for support or
# www.isthe.com/chongo/tech/comp/pwc/index.html for hints.
#
# Placed in the public domain by Landon Curt Noll
#
# chongo (Share and enjoy! :-)) www.isthe.com/chongo/index.html
#
/usr/bin/logger -p daemon.notice -t hotplug/usb/pwc -i Phillips webcam setup
# place any pwc options such as size=vga fps=15 on the end of the next line
/sbin/modprobe pwc
/usr/bin/logger -p daemon.notice -t hotplug/usb/pwc -i Phillips webcam complete
EOF
chmod 0555 /etc/hotplug/usb/pwc

NOTE: If you want to change the default PWC module parameters then add them onto the /sbin/modprobe pwc line. For example:

/sbin/modprobe pwc size=vga power_save=1
 fps=15 leds=250,750

See the kernel documentation file:

/usr/src/linux-2.4/Documentation/usb/philips.txt

for more details.


(top)

optionally disable USB audio if you do not need it

NOTE: You must be the root user to do this.

The USB audio module can, in some cases, confuse certain sound enabled software that expects to use non-USB based audio hardware.

Some of our systems have non-USB based audio hardware. We discovered that when systems with PWC based USB cameras and non-USB based audio hardware were booted, certain sound enabled software failed to emit sound. For example, both KDE and Gnome desktops and most sound enabled desktop applications failed to emit sound when the system was booted with a Logitech QuickCam 3000 Pro camera. We were able to play audio CDs, but little else.

It is unfortunate that a number of desktops and applications get confused when they encounter both USB and non-USB capabilities. One easy work-a-round to this problem is to remove the USB audio module if it is not needed. By removing the USB audio module early on in the boot process, systems with PWC based USB cameras and non-USB based audio hardware frequently avoid such problems.

NOTE: We have found that you plug in a PWC based USB camera after a system has booted, then this problem does not arise. However, if you forget that the camera is plugged in and then reboot, then you will likely encounter this problem again.

NOTE: A number of PWC based USB cameras have microphones. For example the Logitech QuickCam 3000 Pro camera has a microphone. Removing the USB audio module will disable the camera's microphone.

If you want to use a PWC based USB camera microphone, then do not perform this step!

The following usbaudiooff script, when installed in /etc/init.d/usbaudiooff and chkconfig-ed on, then will disable USB audio functionality and avoid the audio problems noted above.

To automatically disable USB audio functionality, run this script:

cd /etc/init.d
cat >usbaudiooff <<EOF
#!/bin/sh
#
# usbaudiooff Disable USB audio so that non-USB sound will not be confused
#
# chkconfig: 2345 04 04
# description: Remove the USB audio module
#
# See: http://www.saillard.org/linux/pwc/ for support or
# www.isthe.com/chongo/tech/comp/pwc/index.html for hints.
#
# Placed in the public domain by Landon Curt Noll
#
# chongo (Share and enjoy! :-)) www.isthe.com/chongo/index.html

# Source function library.
. /etc/rc.d/init.d/functions

# setup
AUDIO_FOUND="`/sbin/lsmod | /bin/grep '^audio '`"

# See how we were called.
case "$1" in
  start|restart|reload)
        echo -n "Disable USB audio: "
        if [ -z "$AUDIO_FOUND" ]; then
            passed "Disable USB audio -"
        else
            /sbin/rmmod audio
            RETVAL=$?
            if [ "$RETVAL" -eq 0 ]; then
                success "Disable USB audio -"
            else
                failure "Disable USB audio -"
            fi
        fi
        echo
        ;;
  stop)
        RETVAL=0
        ;;
  status)
        echo -n "Looking for the USB audio module: $AUDIO_FOUND"
        RETVAL=0
        echo
        ;;
  *)
        echo "Usage: usbaudiooff {start|stop|reload|status}"
        RETVAL=1
        ;;
esac

exit $RETVAL
EOF
chmod 0555 /etc/init.d/usbaudiooff
/sbin/chkconfig usbaudiooff reset
/etc/init.d/usbaudiooff start

The above script is written with the RedHat startup script system in mind. On non-RedHat systems, you may need to adjust the above script to suit your needs.


(top)

/dev/video0 file and permissions

NOTE: You must be the root user to do this.

You consider allowing any user to look at the camera:

chmod 0644 /dev/video0

If it complains about no such file, try creating the device file instead:

mknod --mode=0644 /dev/video0 c 81 0


(top)

hotplug test

NOTE: While anyone can plug in a USB device, you often need to be the root user to view the system log files.

By now you should have performed the pwc hotplug script installation, and setup the /dev/video0 permissions.

Tail the system log file:

tail -f /var/log/messages

and them plug in a Philips USB camera, Logitech QuickCam 3000 Pro, or PWC supported USB camera.

You should see something like the following messages in /var/log/messages:

kernel: hub.c: USB new device connect on bus1/2, assigned device number 3
kernel: pwc Logitech QuickCam 3000 Pro USB webcam detected.
kernel: pwc Registered as /dev/video0.
kernel: usbaudio: device 3 audiocontrol interface 1 has 1 input and 0 output AudioStreaming interfaces
kernel: usbaudio: device 3 interface 2 altsetting 0 FORMAT_TYPE descriptor not found
kernel: usbaudio: valid input sample rate 44100
kernel: usbaudio: device 3 interface 2 altsetting 1: format 0x00000010 sratelo 44100 sratehi 44100 attributes 0x00
kernel: usbaudio: valid input sample rate 22050
kernel: usbaudio: device 3 interface 2 altsetting 2: format 0x00000010 sratelo 22050 sratehi 22050 attributes 0x00
kernel: usbaudio: valid input sample rate 11025
kernel: usbaudio: device 3 interface 2 altsetting 3: format 0x00000010 sratelo 11025 sratehi 11025 attributes 0x00
kernel: usbaudio: valid input sample rate 8000
kernel: usbaudio: device 3 interface 2 altsetting 4: format 0x00000010 sratelo 8000 sratehi 8000 attributes 0x00
kernel: usbaudio: registered dsp 14,19
kernel: usbaudio: registered mixer 14,16
/etc/hotplug/usb.agent: Setup pwc audio for USB product 46d/8b0/2
/etc/hotplug/usb.agent: Module setup pwc for USB product 46d/8b0/2
hotplug/usb/pwc[7273]: Phillips webcam setup
hotplug/usb/pwc[7277]: Phillips webcam complete

When you remove the camera you see something like the following messages in /var/log/messages:

kernel: usb.c: USB disconnect on device 3
kernel: usbaudio: unregister dsp 14,19
kernel: usbaudio: unregister mixer 14,16


(top)

camstream install

NOTE: You must be the root user to do this.

Create a camstream build directory:

mkdir -p /usr/local/src/camstream

Download the camstream or later source

See the camstream project page for details and the most recent version.

into the /usr/local/src/camstream directory.

Untar it:

cd /usr/local/src/camstream
tar -zxvf camstream-0.26.tar.gz

Compile camstream:

cd /usr/local/src/camstream/camstream-0.26/src
./configure
make

NOTE: If you run into problems compiling camstream, you may be missing some other things such as KDE or Qt. See the camstream installation and the troubleshooting pages for more help.

Install camstream:

cd /usr/local/src/camstream/camstream-0.26/src
make install


(top)

camstream test

By now you should have performed the pwc hotplug script installation, setup the /dev/video0 permissions, tested hotplug, and installed camstream.

To test with camstream, do the following:

  1. plug in your PWC supported USB camera
  2. start the camstream program: /usr/local/bin/camstream
  3. Move our mouse into the camstream window
  4. Type Control V
    You should see a camera name in the Device field of the pop-up window. If the Device field is blank, something is wrong. Check for /dev/video0 permissions and look at the /var/log/messages file for ideas.
  5. Select a size (such as VGA) and click OK A view of the camera should appear within the camstream window.
  6. Click on the Red/Green/Blue icon and adjust camera settings as needed.

NOTE: If you run into problems, look at the various project pages. Read their FAQs. If you still cannot figure things out, ask the project people for help. Since we didn't write most of this code, we are probably not the people who want to ask for detailed help.

Good luck and happy webcaming!


(top)

Credits

Thanks goes to the developers and maintainers of the following projects:
© 1994-2013 Landon Curt Noll
chongo (was here) /\oo/\
$Revision: 8.1 $ $Date: 2022/07/07 23:47:07 $