1c-qcam - Connectix Color QuickCam video4linux kernel driver 2 3Copyright (C) 1999 Dave Forrest <drf5n@virginia.edu> 4 released under GNU GPL. 5 61999-12-08 Dave Forrest, written with kernel version 2.2.12 in mind 7 8 9Table of Contents 10 111.0 Introduction 122.0 Compilation, Installation, and Configuration 133.0 Troubleshooting 144.0 Future Work / current work arounds 159.0 Sample Program, v4lgrab 1610.0 Other Information 17 18 191.0 Introduction 20 21 The file ../../drivers/media/video/c-qcam.c is a device driver for 22the Logitech (nee Connectix) parallel port interface color CCD camera. 23This is a fairly inexpensive device for capturing images. Logitech 24does not currently provide information for developers, but many people 25have engineered several solutions for non-Microsoft use of the Color 26Quickcam. 27 281.1 Motivation 29 30 I spent a number of hours trying to get my camera to work, and I 31hope this document saves you some time. My camera will not work with 32the 2.2.13 kernel as distributed, but with a few patches to the 33module, I was able to grab some frames. See 4.0, Future Work. 34 35 36 372.0 Compilation, Installation, and Configuration 38 39 The c-qcam depends on parallel port support, video4linux, and the 40Color Quickcam. It is also nice to have the parallel port readback 41support enabled. I enabled these as modules during the kernel 42configuration. The appropriate flags are: 43 44 CONFIG_PRINTER M for lp.o, parport.o parport_pc.o modules 45 CONFIG_PNP_PARPORT M for autoprobe.o IEEE1284 readback module 46 CONFIG_PRINTER_READBACK M for parport_probe.o IEEE1284 readback module 47 CONFIG_VIDEO_DEV M for videodev.o video4linux module 48 CONFIG_VIDEO_CQCAM M for c-qcam.o Color Quickcam module 49 50 With these flags, the kernel should compile and install the modules. 51To record and monitor the compilation, I use: 52 53 (make zlilo ; \ 54 make modules; \ 55 make modules_install ; 56 depmod -a ) &>log & 57 less log # then a capital 'F' to watch the progress 58 59But that is my personal preference. 60 612.2 Configuration 62 63 The configuration requires module configuration and device 64configuration. The following sections detail these procedures. 65 66 672.1 Module Configuration 68 69 Using modules requires a bit of work to install and pass the 70parameters. Understand that entries in /etc/modprobe.d/*.conf of: 71 72 alias parport_lowlevel parport_pc 73 options parport_pc io=0x378 irq=none 74 alias char-major-81 videodev 75 alias char-major-81-0 c-qcam 76 772.2 Device Configuration 78 79 At this point, we need to ensure that the device files exist. 80Video4linux used the /dev/video* files, and we want to attach the 81Quickcam to one of these. 82 83 ls -lad /dev/video* # should produce a list of the video devices 84 85If the video devices do not exist, you can create them with: 86 87 su 88 cd /dev 89 for ii in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do 90 mknod video$ii c 81 $ii # char-major-81-[0-16] 91 chown root.root video$ii # owned by root 92 chmod 600 video$ii # read/writable by root only 93 done 94 95 Lots of people connect video0 to video and bttv, but you might want 96your c-qcam to mean something more: 97 98 ln -s video0 c-qcam # make /dev/c-qcam a working file 99 ln -s c-qcam video # make /dev/c-qcam your default video source 100 101 But these are conveniences. The important part is to make the proper 102special character files with the right major and minor numbers. All 103of the special device files are listed in ../devices.txt. If you 104would like the c-qcam readable by non-root users, you will need to 105change the permissions. 106 1073.0 Troubleshooting 108 109 If the sample program below, v4lgrab, gives you output then 110everything is working. 111 112 v4lgrab | wc # should give you a count of characters 113 114 Otherwise, you have some problem. 115 116 The c-qcam is IEEE1284 compatible, so if you are using the proc file 117system (CONFIG_PROC_FS), the parallel printer support 118(CONFIG_PRINTER), the IEEE 1284 system,(CONFIG_PRINTER_READBACK), you 119should be able to read some identification from your quickcam with 120 121 modprobe -v parport 122 modprobe -v parport_probe 123 cat /proc/parport/PORTNUMBER/autoprobe 124Returns: 125 CLASS:MEDIA; 126 MODEL:Color QuickCam 2.0; 127 MANUFACTURER:Connectix; 128 129 A good response to this indicates that your color quickcam is alive 130and well. A common problem is that the current driver does not 131reliably detect a c-qcam, even though one is attached. In this case, 132 133 modprobe -v c-qcam 134or 135 insmod -v c-qcam 136 137 Returns a message saying "Device or resource busy" Development is 138currently underway, but a workaround is to patch the module to skip 139the detection code and attach to a defined port. Check the 140video4linux mailing list and archive for more current information. 141 1423.1 Checklist: 143 144 Can you get an image? 145 v4lgrab >qcam.ppm ; wc qcam.ppm ; xv qcam.ppm 146 147 Is a working c-qcam connected to the port? 148 grep ^ /proc/parport/?/autoprobe 149 150 Do the /dev/video* files exist? 151 ls -lad /dev/video 152 153 Is the c-qcam module loaded? 154 modprobe -v c-qcam ; lsmod 155 156 Does the camera work with alternate programs? cqcam, etc? 157 158 159 160 1614.0 Future Work / current workarounds 162 163 It is hoped that this section will soon become obsolete, but if it 164isn't, you might try patching the c-qcam module to add a parport=xxx 165option as in the bw-qcam module so you can specify the parallel port: 166 167 insmod -v c-qcam parport=0 168 169And bypass the detection code, see ../../drivers/char/c-qcam.c and 170look for the 'qc_detect' code and call. 171 172 Note that there is work in progress to change the video4linux API, 173this work is documented at the video4linux2 site listed below. 174 175 1769.0 --- A sample program using v4lgrabber, 177 178v4lgrab is a simple image grabber that will copy a frame from the 179first video device, /dev/video0 to standard output in portable pixmap 180format (.ppm) To produce .jpg output, you can use it like this: 181'v4lgrab | convert - c-qcam.jpg' 182 183 18410.0 --- Other Information 185 186Use the ../../Maintainers file, particularly the VIDEO FOR LINUX and PARALLEL 187PORT SUPPORT sections 188 189The video4linux page: 190 http://linuxtv.org 191 192The V4L2 API spec: 193 http://v4l2spec.bytesex.org/ 194 195Some web pages about the quickcams: 196 http://www.pingouin-land.com/howto/QuickCam-HOWTO.html 197 198 http://www.crynwr.com/qcpc/ QuickCam Third-Party Drivers 199 http://www.crynwr.com/qcpc/re.html Some Reverse Engineering 200 http://www.wirelesscouch.net/software/gqcam/ v4l client 201 http://phobos.illtel.denver.co.us/pub/qcread/ doesn't use v4l 202 ftp://ftp.cs.unm.edu/pub/chris/quickcam/ Has lots of drivers 203 http://www.cs.duke.edu/~reynolds/quickcam/ Has lots of information 204 205 206