114 April 2000
2david-b@pacbell.net
3
4This is an overview of how to use the "dc2xx" USB driver with certain
5digital still cameras from Kodak and other vendors.
6
7
8CAMERAS
9
10This driver will mostly be used with Kodak DC-2xx series digital still
11cameras, but it should be trivial to tell it about several non-Kodak
12USB-enabled cameras.
13
14You'll most likely want to hook it up to recent versions of "gPhoto"
15(www.gphoto.org), since version 0.4 and later know how to use it to talk
16to Kodak DC-240 and DC-280 cameras over USB.
17
18In addition the DC-220, DC-260, DC-265, and DC-290 are also recognized.
19However, like other cameras using the "Digita OS" (from www.flashpoint.com)
20there is no gPhoto support for this camera.  There is a python script
21for accessing these cameras (see archives of the linux-usb mailing list)
22and a "Digita Services" library that can also use this driver.
23
24The HP PhotoSmart C500 should also work, since it's another Digita camera
25with USB support.
26
27
28USB HARDWARE
29
30Recent kernels have had no particular problems using this driver with
31either OHCI or UHCI chipsets, and have worked on the PowerMac platform.
32
33Note that in some cases changes in BIOS settings may be needed before
34your USB works.  At least one user has reported a need for SMP-related 
35settings as well, and some old hardware may not handle USB correctly.
36
37
38SETUP
39
40Configure in the DC2XX USB driver, and have it in your kernel.  It works
41as a module, or compiled in directly.
42
43Create at least one device, perhaps like this (both read and write):
44
45    # mknod -m 0660 /dev/usb/dc2xx0 c 180 80
46    # mknod -m 0660 /dev/usb/dc2xx1 c 180 81
47    ...
48
49NOTE:  you would normally configure PAM so that the user logged in at
50the console is granted ownership of these devices.  console.perms(5)
51explains how to do this.
52
53The driver supports multiple device nodes.  The USB framework supports
54a maximum of sixteen device nodes (up to minor device number 96).
55
56When you plug in one camera, it will use the first device node (dc2xx0
57in the example above).  A second camera will use the second device node,
58and so on.
59
60
61SANITY TESTING
62
63First:  if you've got /proc support, make sure that the driver has hooked
64itself up correctly.
65
66    - You should see an entry in /proc/bus/usb/drivers for "dc2xx",
67      if you enabled USB /proc support and correctly mounted the
68      usbdevfs on /proc/bus/usb.
69
70Second:  when you connect your camera to the computer, does it get recognized
71by the driver?  (Make sure the camera is powered on!)
72
73    - if you've got /proc/bus/usb/devices, you should see an entry
74      something like this.  The "ProdID" may be different if you didn't
75      plug in a DC-240, as may the strings presented, but "Driver=dc2xx"
76      had better be there.
77
78	T:  Lev=01 Prnt=00 Port=00 Cnt=01 Dev#=  1 Spd=12  MxCh= 0
79	D:  Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
80	P:  Vendor=040a ProdID=0120 Rev= 1.08
81	S:  Manufacturer=Eastman Kodak Company
82	S:  Product=KODAK DC240 Zoom Digital Camera
83	C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=100mA
84	I:  If#= 0 Alt= 0 #EPs= 2 Cls=00(>ifc ) Sub=00 Prot=00 Driver=dc2xx
85	E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
86	E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
87
88    - see if "dmesg" output tells you that you plugged in your camera.
89
90	Manufacturer: Eastman Kodak Company
91	Product: KODAK DC240 Zoom Digital Camera
92	dc2xx.c: USB Camera #0 connected
93
94Third:  (optional) can you use gPhoto to talk to the camera?
95
96    - When you configure your camera, tell it to use "/dev/usb/dc2xx0"
97      (or whatever name you used).  Right now, gPhoto emits a diagnostic
98      message (non-GUI) saying that it since it didn't act like a TTY,
99      it's assuming it's got a USB connection.
100
101    - With the camera turned on, get the "camera summary".  It'll
102      talk to the camera -- and tell you you're using USB.
103
104If you got that far, you should be able to use everything fine.
105
106
107ADDITIONAL INFORMATION
108
109You may find that you need more driver-specific information, which is
110currently accessible through a link from http://www.linux-usb.org/
111along with other Linux USB resources.
112