Based on kernel version 3.19. Page generated on 2015-02-13 21:23 EST.
1 c-qcam - Connectix Color QuickCam video4linux kernel driver 2 3 Copyright (C) 1999 Dave Forrest <drf5n@virginia.edu> 4 released under GNU GPL. 5 6 1999-12-08 Dave Forrest, written with kernel version 2.2.12 in mind 7 8 9 Table of Contents 10 11 1.0 Introduction 12 2.0 Compilation, Installation, and Configuration 13 3.0 Troubleshooting 14 4.0 Future Work / current work arounds 15 9.0 Sample Program, v4lgrab 16 10.0 Other Information 17 18 19 1.0 Introduction 20 21 The file ../../drivers/media/parport/c-qcam.c is a device driver for 22 the Logitech (nee Connectix) parallel port interface color CCD camera. 23 This is a fairly inexpensive device for capturing images. Logitech 24 does not currently provide information for developers, but many people 25 have engineered several solutions for non-Microsoft use of the Color 26 Quickcam. 27 28 1.1 Motivation 29 30 I spent a number of hours trying to get my camera to work, and I 31 hope this document saves you some time. My camera will not work with 32 the 2.2.13 kernel as distributed, but with a few patches to the 33 module, I was able to grab some frames. See 4.0, Future Work. 34 35 36 37 2.0 Compilation, Installation, and Configuration 38 39 The c-qcam depends on parallel port support, video4linux, and the 40 Color Quickcam. It is also nice to have the parallel port readback 41 support enabled. I enabled these as modules during the kernel 42 configuration. 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. 51 To 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 59 But that is my personal preference. 60 61 2.2 Configuration 62 63 The configuration requires module configuration and device 64 configuration. The following sections detail these procedures. 65 66 67 2.1 Module Configuration 68 69 Using modules requires a bit of work to install and pass the 70 parameters. 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 77 2.2 Device Configuration 78 79 At this point, we need to ensure that the device files exist. 80 Video4linux used the /dev/video* files, and we want to attach the 81 Quickcam to one of these. 82 83 ls -lad /dev/video* # should produce a list of the video devices 84 85 If 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 96 your 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 102 special character files with the right major and minor numbers. All 103 of the special device files are listed in ../devices.txt. If you 104 would like the c-qcam readable by non-root users, you will need to 105 change the permissions. 106 107 3.0 Troubleshooting 108 109 If the sample program below, v4lgrab, gives you output then 110 everything 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 117 system (CONFIG_PROC_FS), the parallel printer support 118 (CONFIG_PRINTER), the IEEE 1284 system,(CONFIG_PRINTER_READBACK), you 119 should 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 124 Returns: 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 130 and well. A common problem is that the current driver does not 131 reliably detect a c-qcam, even though one is attached. In this case, 132 133 modprobe -v c-qcam 134 or 135 insmod -v c-qcam 136 137 Returns a message saying "Device or resource busy" Development is 138 currently underway, but a workaround is to patch the module to skip 139 the detection code and attach to a defined port. Check the 140 video4linux mailing list and archive for more current information. 141 142 3.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 161 4.0 Future Work / current workarounds 162 163 It is hoped that this section will soon become obsolete, but if it 164 isn't, you might try patching the c-qcam module to add a parport=xxx 165 option as in the bw-qcam module so you can specify the parallel port: 166 167 insmod -v c-qcam parport=0 168 169 And bypass the detection code, see ../../drivers/char/c-qcam.c and 170 look for the 'qc_detect' code and call. 171 172 Note that there is work in progress to change the video4linux API, 173 this work is documented at the video4linux2 site listed below. 174 175 176 9.0 --- A sample program using v4lgrabber, 177 178 v4lgrab is a simple image grabber that will copy a frame from the 179 first video device, /dev/video0 to standard output in portable pixmap 180 format (.ppm) To produce .jpg output, you can use it like this: 181 'v4lgrab | convert - c-qcam.jpg' 182 183 184 10.0 --- Other Information 185 186 Use the ../../Maintainers file, particularly the VIDEO FOR LINUX and PARALLEL 187 PORT SUPPORT sections 188 189 The video4linux page: 190 http://linuxtv.org 191 192 The V4L2 API spec: 193 http://v4l2spec.bytesex.org/ 194 195 Some 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