Logitech Quickcam Communicate on Ubuntu 6.06

Step-by-Step descriptions of how to do things.
Post Reply
User avatar
^rooker
Site Admin
Posts: 1481
Joined: Fri Aug 29, 2003 8:39 pm

Logitech Quickcam Communicate on Ubuntu 6.06

Post by ^rooker »

Installation HowTo
for a Logitech Quickcam Communicate Webcam on Ubuntu Dapper Drake, 6.06

Based on this HOWTO: logitech, labtec webcams with qc-usb driver (ubuntuforums).

Install packages necessary to compile drivers:

Code: Select all

sudo apt-get install build-essentials linux-headers-$(uname -r)
check your camera model:

Code: Select all

lsusb
returns something like this:
Bus 004 Device 002: ID 046d:08f5 Logitech, Inc.
Download the driver from http://home.mag.cx/messenger/
Or if you need have a different model check this (List of other drivers)

Unpack the driver

Code: Select all

tar -xzf qc-usb-messenger-1.6.tar.gz
Run the "quickcam.sh" script (no more need to be root - it will sudo internally when needed):

Code: Select all

./quickcam.sh
-----------------------------------------------------
NOTE: From this point on, you should already get some pictures from your camera. Everything below is just additional info or fine tuning:
-----------------------------------------------------

The following files will be copied into your system:
/usr/bin/install -c -D -m 644 quickcam.ko /lib/modules/2.6.15-26-386/misc/quickcam.ko
/usr/bin/install -c -D -m 755 qcset /usr/local/bin/qcset
/sbin/depmod -a
...and you'll get a new device. To check, run:

Code: Select all

ls -la /dev/video*
and you should see:
lrwxrwxrwx 1 root root 6 2006-12-12 21:18 /dev/video -> video0
crw-rw---- 1 root video 81, 0 2006-12-12 21:18 /dev/video0
(As you can see, you have new group now, called "video")

I've added an alias for the module by adding this line to /etc/modprobe.d/aliases:
alias webcam quickcam
You can now load the driver by issuing:

Code: Select all

modprobe webcam
(I wanted to configure hotplugging for this driver properly so that it will load itself when I attach the camera, but Dapper doesn't have "/etc/hotplug" anymore and uses udev for this now - and I currently don't have a clue how to configure that.)

If you're as lucky as I was, you can answer all questions with "proceed" and you're set.
Last edited by ^rooker on Wed Dec 13, 2006 12:14 am, edited 4 times in total.
User avatar
^rooker
Site Admin
Posts: 1481
Joined: Fri Aug 29, 2003 8:39 pm

Post by ^rooker »

The output will look like this:
-=- Logitech QuickCam USB camera driver installer -=-
Hello! I am the (hopefully) easy-to-use, fully automated
qc-usb driver installation script.
At the moment, this is experimental, and if it doesn't work,
don't hesitate to quit this with Ctrl+C and install the
driver manually.

The driver is provided in source code form, so it has to be
compiled. This should happen automatically, but it does mean
that there are some steps required before installation.

You also need to know "root" user password to test and
install the driver.

Basically you need only to keep hitting Enter whenever you
see this prompt: --->. Sometimes you're asked root password.
Pay special attention to lines beginning with [!].
It means that some trouble has been detected.

To most important location is the path to your kernel source
or headers. This can be guessed, but you can specify it by
giving it as an argument to this script like this:
./quickcam.sh LINUX_DIR=/usr/src/linux

If you haven't done it yet, now it would be a good moment to
take a look at file README.

Next I'm going to check if you have some important programs installed
and if they and the kernel are of suitable version.
Press Ctrl+C to quit, Enter to continue --->
./quickcam.sh
/usr/bin/whoami
/bin/su
/bin/ls
/bin/cat
/usr/bin/gcc
/usr/bin/gcc
/usr/bin/make
/bin/grep
/bin/egrep
/usr/bin/awk
/bin/sed
/usr/bin/tail
/usr/bin/head
/usr/bin/install
/usr/bin/ld
/bin/uname
/usr/bin/tr
/usr/bin/xawtv
/usr/bin/xdpyinfo
/bin/dmesg
/usr/bin/wc
/bin/readlink
gcc version: gcc version 4.0.3 (Ubuntu 4.0.3-1ubuntu5)
gcc version: gcc version 4.0.3 (Ubuntu 4.0.3-1ubuntu5)
Make version: GNU Make 3.81beta4
Linker version: GNU ld version 2.16.91 20060118 Debian GNU/Linux
Kernel compiler: gcc version 4.0.3 (Ubuntu 4.0.3-1ubuntu5)
Looking for more necessary programs...
Found program /sbin/depmod
Found program /sbin/insmod
Found program /sbin/rmmod
Found program /sbin/modprobe
Found program /bin/mount
Found program /usr/sbin/lsusb
depmod version: module-init-tools 3.2.2
insmod version: module-init-tools version 3.2.2
rmmod version: module-init-tools version 3.2.2
modprobe version: module-init-tools version 3.2.2
Checking whether we're root... mone
Checking for driver source code...
Checking for write permission...

Previous round done. Now checking if you have kernel source installed.
Press Ctrl+C to quit, Enter to continue --->
Kernel source directory: /lib/modules/2.6.15-26-386/build
Detected kernel version is 2.6.x.
Kernel version name: 2.6.15-26-386
Kernel source version code: 132623
Driver file name: quickcam.ko
Module install directory: /lib/modules/2.6.15-26-386
Driver source directory (PWD): /home/mone/sources/qc-usb-messenger-1.6
Kernel source directory (LINUX_DIR): /lib/modules/2.6.15-26-386/build
Module install directory (MODULE_DIR): /lib/modules/2.6.15-26-386
Utility install directory (PREFIX): /usr/local
User options (USER_OPT): -DHAVE_UTSRELEASE_H=0
Driver file name (use with insmod): quickcam.ko
Kernel version code: 132623

The QuickCam driver requires other drivers from kernel.
I'll now check if those seem to be loaded.
Press Ctrl+C to quit, Enter to continue --->
Modules loaded into the kernel:
binfmt_misc hci_usb rfcomm hidp l2cap bluetooth ppdev radeon drm ipv6 speedstep_lib cpufreq_userspace cpufreq_stats freq_table cpufreq_powersave cpufreq_ondemand cpufreq_conservative video tc1100_wmi sony_acpi pcc_acpi hotkey dev_acpi container button acpi_sbs battery i2c_acpi_ec i2c_core ac fuse af_packet dm_mod md_mod sr_mod sbp2 scsi_mod lp tsdev usbhid snd_pcm_oss snd_cmipci snd_usb_audio snd_usb_lib snd_mixer_oss snd_pcm snd_page_alloc snd_opl3_lib 8139cp 8139too snd_timer mii snd_hwdep at76c503_rfmd_acc at76c503 snd_mpu401 snd_mpu401_uart at76_usbdfu snd_rawmidi snd_seq_device analog gameport parport_pc parport rtc snd soundcore floppy pcspkr psmouse shpchp pci_hotplug intel_agp agpgart serio_raw evdev ext3 jbd ide_generic ohci1394 ieee1394 ehci_hcd ohci_hcd uhci_hcd usbcore ide_cd cdrom ide_disk piix generic thermal processor fan capability commoncap vga16fb vgastate fbcon tileblit font bitblit softcursor
[!] Linux video driver appears to be not loaded.
You could load it as root with command:
modprobe videodev
(but I can do it for you automatically)
I will now try to load the missing modules.
Type root password and press Enter (or Ctrl+D to abort).
Password:
=== Entering root mode ===
Now you will see some error messages.
They are probably harmless and you can ignore them
(until leaving root mode).
FATAL: Module usb_uhci not found.
FATAL: Module uhci not found.
FATAL: Module usb_ohci not found.
FATAL: Module hc_sl811 not found.
mount: unknown filesystem type 'usbdevfs'
=== Leaving root mode ===
Modules loaded now into the kernel:
videodev binfmt_misc hci_usb rfcomm hidp l2cap bluetooth ppdev radeon drm ipv6 speedstep_lib cpufreq_userspace cpufreq_stats freq_table cpufreq_powersave cpufreq_ondemand cpufreq_conservative video tc1100_wmi sony_acpi pcc_acpi hotkey dev_acpi container button acpi_sbs battery i2c_acpi_ec i2c_core ac fuse af_packet dm_mod md_mod sr_mod sbp2 scsi_mod lp tsdev usbhid snd_pcm_oss snd_cmipci snd_usb_audio snd_usb_lib snd_mixer_oss snd_pcm snd_page_alloc snd_opl3_lib 8139cp 8139too snd_timer mii snd_hwdep at76c503_rfmd_acc at76c503 snd_mpu401 snd_mpu401_uart at76_usbdfu snd_rawmidi snd_seq_device analog gameport parport_pc parport rtc snd soundcore floppy pcspkr psmouse shpchp pci_hotplug intel_agp agpgart serio_raw evdev ext3 jbd ide_generic ohci1394 ieee1394 ehci_hcd ohci_hcd uhci_hcd usbcore ide_cd cdrom ide_disk piix generic thermal processor fan capability commoncap vga16fb vgastate fbcon tileblit font bitblit softcursor

Next round: let's see if you have a supported QuickCam.
Please plug in your USB camera before continuing.
Press Ctrl+C to quit, Enter to continue --->

I can find the following probably compatible devices:
Bus 004 Device 002: ID 046d:08f5 Logitech, Inc.

Another round done. Let's now compile the driver, it takes a while.
This step will also clear old unnecessary files from the directory.
Press Ctrl+C to quit, Enter to continue --->
Another round done. Let's now compile the driver, it takes a while.
This step will also clear old unnecessary files from the directory.
Press Ctrl+C to quit, Enter to continue --->

rm -f *.o qcset input_read show *~ .\#* .*.cmd *.mod.c *.ko
rm -rf .tmp_versions
cd testquickcam ; make clean
make[1]: Entering directory `/home/mone/sources/qc-usb-messenger-1.6/testquickcam'
rm -f testquickcam *~ pic.ppm pic.gif
make[1]: Leaving directory `/home/mone/sources/qc-usb-messenger-1.6/testquickcam'
make -C "/lib/modules/2.6.15-26-386/build" SUBDIRS="/home/mone/sources/qc-usb-messenger-1.6" modules V=1 USER_OPT="-DHAVE_UTSRELEASE_H=0"
make[1]: Entering directory `/usr/src/linux-headers-2.6.15-26-386'
mkdir -p /home/mone/sources/qc-usb-messenger-1.6/.tmp_versions
make -f scripts/Makefile.build obj=/home/mone/sources/qc-usb-messenger-1.6
gcc -m32 -Wp,-MD,/home/mone/sources/qc-usb-messenger-1.6/.qc-driver.o.d -nostdinc -isystem /usr/lib/gcc/i486-linux-gnu/4.0.3/include -D__KERNEL__ -Iinclude -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -ffreestanding -O2 -fomit-frame-pointer -pipe -msoft-float -mpreferred-stack-boundary=2 -fno-unit-at-a-time -march=i486 -Iinclude/asm-i386/mach-default -Wdeclaration-after-statement -Wno-pointer-sign -DNOKERNEL -DHAVE_UTSRELEASE_H=0 -DMODULE -DKBUILD_BASENAME=qc_driver -DKBUILD_MODNAME=quickcam -c -o /home/mone/sources/qc-usb-messenger-1.6/.tmp_qc-driver.o /home/mone/sources/qc-usb-messenger-1.6/qc-driver.c
/home/mone/sources/qc-usb-messenger-1.6/qc-driver.c:94:2: warning: #warning "Little Endian system"
gcc -m32 -Wp,-MD,/home/mone/sources/qc-usb-messenger-1.6/.qc-vv6450.o.d -nostdinc -isystem /usr/lib/gcc/i486-linux-gnu/4.0.3/include -D__KERNEL__ -Iinclude -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -ffreestanding -O2 -fomit-frame-pointer -pipe -msoft-float -mpreferred-stack-boundary=2 -fno-unit-at-a-time -march=i486 -Iinclude/asm-i386/mach-default -Wdeclaration-after-statement -Wno-pointer-sign -DNOKERNEL -DHAVE_UTSRELEASE_H=0 -DMODULE -DKBUILD_BASENAME=qc_vv6450 -DKBUILD_MODNAME=quickcam -c -o /home/mone/sources/qc-usb-messenger-1.6/.tmp_qc-vv6450.o /home/mone/sources/qc-usb-messenger-1.6/qc-vv6450.c
gcc -m32 -Wp,-MD,/home/mone/sources/qc-usb-messenger-1.6/.qc-formats.o.d -nostdinc -isystem /usr/lib/gcc/i486-linux-gnu/4.0.3/include -D__KERNEL__ -Iinclude -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -ffreestanding -O2 -fomit-frame-pointer -pipe -msoft-float -mpreferred-stack-boundary=2 -fno-unit-at-a-time -march=i486 -Iinclude/asm-i386/mach-default -Wdeclaration-after-statement -Wno-pointer-sign -DNOKERNEL -DHAVE_UTSRELEASE_H=0 -DMODULE -DKBUILD_BASENAME=qc_formats -DKBUILD_MODNAME=quickcam -c -o /home/mone/sources/qc-usb-messenger-1.6/.tmp_qc-formats.o /home/mone/sources/qc-usb-messenger-1.6/qc-formats.c
gcc -m32 -Wp,-MD,/home/mone/sources/qc-usb-messenger-1.6/.qc-memory.o.d -nostdinc -isystem /usr/lib/gcc/i486-linux-gnu/4.0.3/include -D__KERNEL__ -Iinclude -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -ffreestanding -O2 -fomit-frame-pointer -pipe -msoft-float -mpreferred-stack-boundary=2 -fno-unit-at-a-time -march=i486 -Iinclude/asm-i386/mach-default -Wdeclaration-after-statement -Wno-pointer-sign -DNOKERNEL -DHAVE_UTSRELEASE_H=0 -DMODULE -DKBUILD_BASENAME=qc_memory -DKBUILD_MODNAME=quickcam -c -o /home/mone/sources/qc-usb-messenger-1.6/.tmp_qc-memory.o /home/mone/sources/qc-usb-messenger-1.6/qc-memory.c
ld -m elf_i386 -m elf_i386 -r -o /home/mone/sources/qc-usb-messenger-1.6/quickcam.o /home/mone/sources/qc-usb-messenger-1.6/qc-driver.o /home/mone/sources/qc-usb-messenger-1.6/qc-vv6450.o /home/mone/sources/qc-usb-messenger-1.6/qc-formats.o /home/mone/sources/qc-usb-messenger-1.6/qc-memory.o
Building modules, stage 2.
make -rR -f /usr/src/linux-headers-2.6.15-26-386/scripts/Makefile.modpost
scripts/mod/modpost -m -a -i /usr/src/linux-headers-2.6.15-26-386/Module.symvers /home/mone/sources/qc-usb-messenger-1.6/quickcam.o
gcc -m32 -Wp,-MD,/home/mone/sources/qc-usb-messenger-1.6/.quickcam.mod.o.d -nostdinc -isystem /usr/lib/gcc/i486-linux-gnu/4.0.3/include -D__KERNEL__ -Iinclude -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -ffreestanding -O2 -fomit-frame-pointer -pipe -msoft-float -mpreferred-stack-boundary=2 -fno-unit-at-a-time -march=i486 -Iinclude/asm-i386/mach-default -Wdeclaration-after-statement -Wno-pointer-sign -DKBUILD_BASENAME=quickcam -DKBUILD_MODNAME=quickcam -DMODULE -c -o /home/mone/sources/qc-usb-messenger-1.6/quickcam.mod.o /home/mone/sources/qc-usb-messenger-1.6/quickcam.mod.c
ld -m elf_i386 -m elf_i386 -r -o /home/mone/sources/qc-usb-messenger-1.6/quickcam.ko /home/mone/sources/qc-usb-messenger-1.6/quickcam.o /home/mone/sources/qc-usb-messenger-1.6/quickcam.mod.o
make[1]: Leaving directory `/usr/src/linux-headers-2.6.15-26-386'
gcc -Wall -O2 -s qcset.c -o qcset -lm
qcset.c: In function ‘pnm_open’:
qcset.c:383: warning: pointer targets in passing argument 1 of ‘fopen’ differ in signedness
qcset.c: In function ‘main’:
qcset.c:640: warning: pointer targets in passing argument 1 of ‘pnm_open’ differ in signedness
gcc -Wall -O2 -s input_read.c -o input_read
-rw-r--r-- 1 mone mone 134058 2006-12-12 21:18 quickcam.ko
Now everything should be well and the driver compiled.
Let's then try actually loading the fresh driver and testing
if it works.
Press Ctrl+C to quit, Enter to continue --->

To load the driver, I need to know the root password.
Password:
=== Entering root mode ===

I will now try to enable the SysRq key.
If your computer crashes, you can try pressing:
Alt + SysRq + S: Emergency Sync (write everything on hard disk)
Alt + SysRq + U: Unmount all harddisks
Alt + SysRq + B: Reboot system immediately
Press Ctrl+C to quit, Enter to continue --->
Now I finally will try to load the module.
If you're unlucky, your computer might crash right now!!!!
Consider long if you really want to continue.
Press Ctrl+C to quit, Enter to continue --->

You decided to do it, here we go...
=== Leaving root mode ===
The driver detected the following supported cameras:
[17195265.240000] quickcam [46.602943]: ----------LOADING QUICKCAM MODULE------------
[17195265.240000] quickcam [46.602964]: struct quickcam size: 4100
[17195265.240000] quickcam: QuickCam USB camera found (driver version QuickCam Messenger/Communicate USB 1.5 $Date: 2006/11/05 00:00:00 $)
[17195265.240000] quickcam: Kernel:2.6.15-26-386 bus:4 class:FF subclass:FF vendor:046D product:08F5
[17195265.240000] quickcam [46.603813]: poisoning qc in qc_usb_init
[17195265.252000] quickcam [46.616084]: E00A contains 08F5
[17195265.252000] quickcam: Sensor VV6450 detected
[17195265.276000] quickcam [46.637315]: Quickcam snapshot button registered on usb-0000:02:01.1-1/input0
[17195265.276000] quickcam: Registered device: /dev/video0
[17195265.276000] usbcore: registered new driver quickcam
I will be using /dev/video0, if there are more cameras I'll not test them.
Press Ctrl+C to quit, Enter to continue --->

Testing if /dev/video0 is correct.
crw-rw---- 1 root video 81, 0 2006-12-12 21:18 /dev/video0

Right now driver is loaded and should be ready to run.
Let's test if user applications can see it, starting with qcset.
Press Ctrl+C to quit, Enter to continue --->

Name : Logitech QuickCam USB
If you like, you can quit now and start using the camera -
you have good chances that it works, if no problems were detected.
If you have X Window System running and xawtv installed,
I can now run it automatically for you.
You will then also have opportunity to install the driver permanently.
Press Ctrl+C to quit, Enter to continue --->
Post Reply