LDP/LDP/howto/docbook/Kodak-Digitalcam-HOWTO.sgml

1183 lines
46 KiB
Plaintext
Raw Normal View History

2000-10-09 17:31:27 +00:00
<!doctype article public "-//OASIS//DTD DocBook V3.1//EN"
[ <!entity header system "header.sgml">
]>
<!-- DocBook file was created by LyX 1.1
See http://www.lyx.org/ for more information -->
<article>
<artheader>
<title>
Kodak Digital Camera HOWTO
</title>
<date>
v0.0.10, 8 October 2000
</date>
<author>
<firstname>David</firstname><surname>Burley</surname>, <ulink url="mailto:khemicals@marblehorse.org">khemicals@marblehorse.org</ulink>
</author>
<abstract>
<para>
Getting a Kodak digital camera working under GNU/Linux.
</para>
</abstract>
<author>
</author>
<para>
<toc></toc>
</para>
</artheader>
<sect1>
<title>
Introduction
</title>
<sect2>
<title>
History
</title>
<para>
This HOWTO was created in an attempt to document installation of a Kodak DC-265 Camera.
</para>
<para>
Revision History:
</para>
<para>
October 8, 2000--
</para>
<itemizedlist>
<listitem>
<para>
IrDA support (This is not for the faint of heart and is only tested with a DC-265 but should also work with a DC-290 and maybe others with IrDA support)
</para>
</listitem>
</itemizedlist>
<para>
October 4, 2000--
</para>
<itemizedlist>
<listitem>
<para>
Many updates, contacted Kodak for permission to include some copywritten information, etc. etc.
</para>
</listitem>
</itemizedlist>
<para>
August 22, 2000--
</para>
<itemizedlist>
<listitem>
<para>
Conversion to DocBook DTD from LinuxDoc DTD as a lot of the HOWTOs are already converted
</para>
</listitem>
</itemizedlist>
<para>
April 23, 2000--
</para>
<itemizedlist>
<listitem>
<para>
Updated OpenDIS for IrDA support (CVS Version)
</para>
</listitem>
<listitem>
<para>
Fixed spelling goof s/shudder/shutter/ (Thanks Patrick!)
</para>
</listitem>
</itemizedlist>
<para>
February 20, 2000--
</para>
<itemizedlist>
<listitem>
<para>
Major clean up of general issues
</para>
</listitem>
<listitem>
<para>
Addition and rearrangement of sections
</para>
</listitem>
<listitem>
<para>
Additional mailing list and web resources added
</para>
</listitem>
</itemizedlist>
<para>
February 17, 2000--
</para>
<itemizedlist>
<listitem>
<para>
Major revision with lots of changes...
</para>
</listitem>
<listitem>
<para>
Updated for new backport and devel kernels
</para>
</listitem>
<listitem>
<para>
Rearranged for easier reading and flow
</para>
</listitem>
<listitem>
<para>
Updated for new OpenDiS release and the Python script.
</para>
</listitem>
</itemizedlist>
<para>
January 18, 2000--
</para>
<itemizedlist>
<listitem>
<para>
TODO added
</para>
</listitem>
<listitem>
<para>
Removal of kernel 2.2.13 section due to new USB backport release for 2.2.14. Replaced with a section for kernel 2.2.14. Please view previous HOWTO versions for information regarding older kernels
</para>
</listitem>
<listitem>
<para>
Removal of kernel 2.3.36 section due to newer developmental kernels, replaced with kernel 2.3.39. Please view previous HOWTO versions for information regarding older kernels.
</para>
</listitem>
<listitem>
<para>
Added a section detailing use of a Compact Flash PC Card Adapter
</para>
</listitem>
</itemizedlist>
<para>
January 9, 2000--
</para>
<itemizedlist>
<listitem>
<para>
Document modified for release of OpenDiS 0.0.3-pre6
</para>
</listitem>
</itemizedlist>
<para>
January 4, 2000--
</para>
<itemizedlist>
<listitem>
<para>
Support for DC-265 under kernels 2.2.13, 2.2.14, and 2.3.35 via USB draft completed.
</para>
</listitem>
<listitem>
<para>
History written
</para>
</listitem>
<listitem>
<para>
FAQ started
</para>
</listitem>
<listitem>
<para>
Background written
</para>
</listitem>
<listitem>
<para>
Lots of other fun stuff
</para>
</listitem>
</itemizedlist>
<para>
January 3, 2000--
</para>
<itemizedlist>
<listitem>
<para>
Initial research and work done to start writing HOWTO and thus it was born.
</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>
New Versions
</title>
<para>
New versions of this HOWTO will be available on <ulink url="http://www.marblehorse.org/projects/documentation/kodak/">http://www.marblehorse.org/projects/documentation/kodak/</ulink>. Copies of this HOWTO will be provided in a number of formats, including SGML, HTML and ASCII text. The authoritative master of this document will be the SGML-formatted copy.
</para>
<para>
October 8, 2000--
</para>
<para>
v0.0.10 released (public)
</para>
<para>
February 20, 2000--
</para>
<para>
v0.0.7 released (public)
</para>
<para>
v0.0.6 released (non-public)
</para>
<para>
February 17, 2000--
</para>
<para>
v0.0.4 released and v0.0.5 released (non-public)
</para>
<para>
January 18, 2000--
</para>
<para>
v0.0.3 released (non-public)
</para>
<para>
January 9, 2000--
</para>
<para>
v0.0.2 released (non-public)
</para>
<para>
January 4, 2000--
</para>
<para>
v0.0.1 released (non-public)
</para>
</sect2>
<sect2>
<title>
Copyright and Trademarks
</title>
<sect3>
<title>
Copyright
</title>
<para>
Copyright (c) 2000 David M. Burley
</para>
<para>
This manual may be reproduced in whole or in part, without fee, subject to the following restrictions:
</para>
<itemizedlist>
<listitem>
<para>
The copyright notice above and this permission notice must be preserved complete on all complete or partial copies Any translation or derived work must be approved by the author in writing before distribution.
</para>
</listitem>
<listitem>
<para>
If you distribute this work in part, instructions for obtaining the complete version of this manual must be included, and a means for obtaining a complete version provided.
</para>
</listitem>
<listitem>
<para>
Small portions may be reproduced as illustrations for reviews or quotes in other works without this permission notice if proper citation is given.
</para>
</listitem>
</itemizedlist>
<para>
Exceptions to these rules may be granted for academic purposes: Write to the author and ask. These restrictions are here to protect us as authors, not to restrict you as learners and educators. All source code in this document is placed under the GNU General Public License, available via anonymous FTP from the GNU archive site. Please contact the author via email before distribution or inclusion of this HOWTO in any works. This is to make sure that the most recent and most accurate version is used.
</para>
</sect3>
<sect3>
<title>
Trademarks
</title>
<para>
Linux is a registered trademark of Linus Torvalds.
</para>
<para>
Kodak is a registered trademark of the Eastman Kodak Company.
</para>
<para>
Digita is a registered trademark of Flashpoint Technology, Inc.
</para>
<para>
Dell is a registered trademark of Dell Computer Corporation.
</para>
<para>
Windows is a registered trademark of Microsoft Corporation.
</para>
<para>
All other trademarks are the property of their respective owner.
</para>
</sect3>
</sect2>
<sect2>
<title>
Acknowledgments and Thanks
</title>
<para>
I would like to thank the Marble Horse Free Software Group for their support of my efforts, specifically Jacob Moorman for his direction and help with this and many of my other endeavors. I would also like to thank the rest of the Linux community, especially those working on USB and digital camera support. Know that there are people out there who are using your code and would like you to continue.
</para>
</sect2>
<sect2>
<title>
Author Contact Information
</title>
<para>
David Burley can be reached via email at the following address: khemicals@marblehorse.org
</para>
<para>
GPG Key ID: 60ACD148
</para>
<para>
FPR1: 76CE FFCA F637 DFD0 BAA5
</para>
<para>
FPR2: 1079 BCB1 3CDD 60AC D148
</para>
</sect2>
</sect1>
<sect1>
<title>
Background
</title>
<sect2>
<title>
Digital Camera Technology--How Things Work
</title>
<para>
Digital cameras work with the same basic concept as a traditional camera. They have a viewfinder or LCD screen to show the image prior to taking a photograph, a lens with a shutter behind it to allow the light from the subject to hit a light sensitive material. However, this is where most of the similarities end.
</para>
<para>
Digital cameras use a CCD (Charged Coupled Device) to sense the colors of the light and their intensity. The CCD can be likened to a very find piece of graphing paper, with thousands of little squares (transistors) to which sense the differences between the colors. There are three types of transistors used in commonplace CCDs, red, green and blue. Each transistor then passes the color and intensity it sensed to and Analog-to-digital converter (ADC). The ADC then converts the information passed to it by the transistors into a digital format, or binary 1's and 0's. The digital output of the ADC is then passed to a Digital Signal Processor (DSP). The DSP adjusts the contrast and other image details to get the perfect look and then compresses the data into a file format like JPEG (Joint Photographics Expert Group).
</para>
<para>
Digital cameras may also have the ability to do an optical or a digital zoom on an image. An optical zoom is when a lens is used to get a closer look at the subject. A digital zoom is used to enhance the optical zoom for a larger image even though the maximum size has been attained via optical zoom. Even though an image can be resized later, it is suggested to use the built in digital zoom of the camera at this point before any compression has been done to the image. File formats like JPEG tend to degrade in quality when resized more so then when the image is resized by the camera's software. This is due to artifacts left behind from the compression.
</para>
<para>
A good resource for definitions of the terms used above is <ulink url="Digital Photography Review.">http://photo.askey.net/articles/glossary/</ulink> Please refer there for more information. Kodak also has a good site with much information on how things work, <ulink url="Kodak Digital Learning Center">http://www.kodak.com/US/en/digital/dlc/</ulink>.
</para>
</sect2>
<sect2>
<title>
Kodak Digital Camera Product Line
</title>
<para>
Kodak has declined permission for me to include technical specifications of their cameras (October 4, 2000). Thus the section below will stay empty until they decide to change their minds (or I find a legal way to fill it). A big thanks goes out to the Eastman Kodak company and specifically their paralegal Nancy Adams for declining my request. The world thanks you for your generous help in ensuring that the information is not easily accessible in the future when you redesign your website and lose the information. If anyone has or knows technical specifications for any of the below cameras and attained it through experimentation with the camera please e-mail <ulink url="mailto:khemicals@marblehorse.org">khemicals@marblehorse.org</ulink> with the information.
</para>
<sect3>
<title>
DC290
</title>
</sect3>
<sect3>
<title>
DC280
</title>
</sect3>
<sect3>
<title>
DC265
</title>
</sect3>
<sect3>
<title>
DC260 (discontinued)
</title>
</sect3>
<sect3>
<title>
DC240 / DC240i
</title>
</sect3>
<sect3>
<title>
DC220 (discontinued)
</title>
</sect3>
<sect3>
<title>
DC215 / DC215 Metallics
</title>
</sect3>
<sect3>
<title>
DC210 (discontinued)
</title>
</sect3>
<sect3>
<title>
DC210 Plus
</title>
</sect3>
<sect3>
<title>
DC200 (discontinued)
</title>
</sect3>
<sect3>
<title>
DC200 Plus
</title>
</sect3>
<sect3>
<title>
DC120 (discontinued)
</title>
</sect3>
<sect3>
<title>
DC50 (discontinued)
</title>
</sect3>
<sect3>
<title>
DC40 (discontinued)
</title>
</sect3>
<sect3>
<title>
DC25 (discontinued)
</title>
</sect3>
<sect3>
<title>
DC20 (discontinued)
</title>
</sect3>
</sect2>
<sect2>
<title>
Communicating With Digital Cameras
</title>
<sect3>
<title>
RS232 Communications In a Nutshell
</title>
</sect3>
<sect3>
<title>
USB Communications In a Nutshell
</title>
</sect3>
<sect3>
<title>
IrDA Communications In a Nutshell
</title>
</sect3>
</sect2>
</sect1>
<sect1>
<title>
Communicating With the DC-Series Cameras
</title>
<sect2>
<title>
DC265 (Method should work for all DigitaOS enabled Kodak Digital Cameras)
</title>
<para>
The DC265 provides mechanisms for data transfer via standard RS232 serial port, USB (Universal Serial Bus) and IrDA (infrared) interface. Additionally, images may be offloaded from the camera through the removal of the camera's Compact Flash Card and use of a Compact Flash PC Card Adapter in a PC Card reader or notebook PC Card slot. Currently this camera is supported by OpenDiS for USB, IrDA and Serial data transfer, gPhoto and a python script.
</para>
</sect2>
<sect2>
<title>
Serial Camera Control
</title>
<para>
Additional notes regarding transfer of data from the DC265 camera using RS232 serial support will be added in a future version of this HOWTO. All distributions should be configured in such a way with a default install that serial communications with the camera should not require any kernel configuration at all. See the OpenDiS subsection of the Software section of the HOWTO for information regarding serial camera control.
</para>
</sect2>
<sect2>
<title>
2.2.x Kernel USB Support
</title>
<para>
At the moment the USB implementation in the 2.2.x series is insufficient and substantially out of date. As such, most USB devices are unsupported natively with the included drivers. However there is a patch available for the 2.2.15 - 2.2.17 kernels.
</para>
<para>
What software is needed (if not already present):
</para>
<orderedlist>
<listitem>
<para>
<ulink url="usb-2.4.0-test2-pre2-for-2.2.16-v3.diff.gz">http://www.suse.cz/development/usb-backport/usb-2.4.0-test2-pre2-for-2.2.16-v3.diff.gz</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="Linux Kernel 2.2.17">ftp://ftp.us.kernel.org/pub/linux/kernel/v2.2/linux-2.2.17.tar.gz</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="OpenDiS 0.0.3">http://ods.sourceforge.net/dl/opendis-0.0.3.tar.gz</ulink>
</para>
</listitem>
</orderedlist>
<para>
This document assumes a working knowledge of kernel and program compiling. If unfamiliar with the process please go and read the <ulink url="Kernel-HOWTO">http://howto.tucows.com/LDP/HOWTO/Kernel-HOWTO.html</ulink>.
</para>
<para>
Applying the patch:
</para>
<programlisting>
cp usb-2.4.0-test2-pre2-for-2.2.16-v3.diff.gz /usr/src gunzip /usr/src/usb-2.4.0-test2-pre2-for-2.2.16-v3.diff.gz cd /usr/src ln -s linux linux-2.2.16
patch -p0 < usb-2.4.0-test2-pre2-for-2.2.16-v3.diff
</programlisting>
<para>
Select the following to be built as either modules or part of your kernel:
</para>
<orderedlist>
<listitem>
<para>
Support for your USB controller (It is suggested that all of these be compiled as modules unless the controller type is known.).
</para>
</listitem>
<listitem>
<para>
USB Kodak DC-2xx Camera Support.
</para>
</listitem>
<listitem>
<para>
Preliminary USB Device Filesystem.
</para>
</listitem>
</orderedlist>
<para>
Reboot the system and then load the created modules if the support is not compiled into the kernel. To load the modules do the following:
</para>
<programlisting>
/sbin/insmod /lib/modules/$(uname -r)/usb/usbcore.o
</programlisting>
<para>
Use the following if the USB controller uses either an Intel or a VIA chipset. Some others may also be supported:
</para>
<programlisting>
/sbin/insmod /lib/modules/$(uname -r)/usb/usb-uhci.o
</programlisting>
<para>
Use the following if the above did not work and this is the controller type:
</para>
<programlisting>
/sbin/insmod /lib/modules/$(uname -r)/usb/uhci.o
</programlisting>
<para>
Use this if the USB controller uses an SiS chipset, is a Compaq, or because the above two didn't seem to work and this is the only option left to try.
</para>
<programlisting>
/sbin/insmod /lib/modules/$(uname -r)/usb/usb-ohci-hcd.o
</programlisting>
<para>
Load the module for Kodak Digital Camera support:
</para>
<programlisting>
/sbin/insmod /lib/modules/$(uname -r)/usb/dc2xx.o
</programlisting>
<para>
Mount the USB Device Filesystem:
</para>
<programlisting>
mount -t usbdevfs ignored /proc/bus/usb
</programlisting>
<sect3>
<title>
Kernel Devices
</title>
<para>
The following is a bash shell script designed to create all 16 Kodak devices for use with both the current 2.3.x kernel series and 2.2.X with the current USB backport. Copy the text below into a file named MakeKodakDev, then make that file executable by typing 'chmod +x MakeKodakDev' and then run the script ./MakeKodakDev as root (or su'd to root) it will create the devices so they don't have to be made individually by hand.
</para>
<para>
It creates as per the dc2xx.txt file in the kernel documentation the following 16 devices:
</para>
<para>
/dev/dc2xx0 type=character major=180 minor=80
</para>
<para>
...
</para>
<para>
/dev/dc2xx16 type=character major=180 minor=95
</para>
<programlisting>
# Filename: MakeKodakDev
# Creates the device files for USB access of Kodak digital cameras.
# Last Modified October 4, 2000 # Please see the Kodak Digital Camera HOWTO for more information # http://marblehorse.sourceforge.net/ #!/bin/sh
export scrapvar=0
while [ $scrapvar -lt 17 ];
do mknod -m 0666 /dev/dc2xx$scrapvar c 180 $(( $scrapvar + 80 ));
scrapvar=$(( $scrapvar + 1 ));
done
# EOF
</programlisting>
</sect3>
</sect2>
<sect2>
<title>
Kernel IrDA Support
</title>
<para>
Most newer distributions come with IrDA support and the proper utilities to handle IrDA. Redhat 7.0 is one of them. However for the rest of us some configuration will be necessary. Get a copy of the latest kernel (2.2.x series or above) and compile all the IrDA features in as modules. IrDA works a lot like PCMCIA support in GNU/Linux so it is important to have all the modules for any other IrDA devices one may have. There is a good HOWTO on compiling a new kernel, the <ulink url="Kernel-HOWTO">http://howto.tucows.com/LDP/HOWTO/Kernel-HOWTO.html</ulink>. Please refer to it for questions regarding configuring and compiling a new Linux kernel.
</para>
<sect3>
<title>
IrDA Utils Software
</title>
<para>
The next step in configuring IrDA support is installing the irda-utils package. Unfortunately, at the time of the current version of this HOWTO, the author had problems locating the source archive for the utilities so he took the one Redhat uses to build their RPM for Redhat 7.0. Please note that root permissions will be necesary to run the commands needed to install the software but should not be necesary to access the camera.
</para>
<para>
What software is needed (if not present already):
</para>
<orderedlist>
<listitem>
<para>
<ulink url="http://www.marblehorse.org/projects/documentation/kodak/irda-utils-0.9.10+patches.tar.gz">irda-utils 0.9.10 and patches</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.marblehorse.org/projects/documentation/kodak/irda-utils-0.9.10+patches.tar.gz.asc">gpg signature for the irda-utils archive</ulink>
</para>
</listitem>
</orderedlist>
<para>
Extracting the archive, patching, compiling and installing it:
</para>
<programlisting>
cp irda-utils-0.9.10+patches.tar.gz /usr/src
cd /usr/src
tar zxvf irda-utils-0.9.10+patches.tar.gz
tar zxvf irda-utils-0.9.10.tar.gz
cd irda-utils-0.9.10
patch -p1 < ../irda-utils-0.9.4-chkconfig.patch
patch -p1 < ../irda-utils-typo.patch
patch -p1 < ../irda-utils-redhat.patch
make
make install
</programlisting>
</sect3>
<sect3>
<title>
Creating the IrDA Device Nodes
</title>
<para>
The device nodes are necesary so that the application can talk to the driver for the device. Although the irlpt devices are not necesary to get the camera working, creating them now will save the time of having to look them up how to do it later if you do ever need them.
</para>
<programlisting>
mknod -m 0666 /dev/ircomm0 c 161 0
mknod -m 0666 /dev/ircomm1 c 161 1
mknod -m 0666 /dev/irlpt0 c 161 16
mknod -m 0666 /dev/irlpt1 c 161 17
</programlisting>
</sect3>
<sect3>
<title>
Modifying /etc/conf.modules or /etc/modules.conf
</title>
<para>
Use a text editor and open up /etc/conf.modules or /etc/modules.conf depending on your distribution. Add the following three lines to the file while being careful not to change any others.
</para>
<programlisting>
#IrDA
alias tty-ldisc-11 irtty
alias char-major-161 ircomm-tty
</programlisting>
</sect3>
<sect3>
<title>
Enabling IrDA and Testing for Connectivity
</title>
<para>
Irmanager is what starts and stops the proper IrDA modules. The d1 flag tells irmanager to enter discovery mode.
</para>
<para>
As user root run the following command:
</para>
<programlisting>
/usr/sbin/irmanager -d1
</programlisting>
<para>
Put the camera into connect mode and turn it on. Make sure that the camera is close to and facing the IrDA port on the computer. Run the following to see if there are any communications via IrDA:
</para>
<programlisting>
/usr/bin/irdadump
</programlisting>
<para>
After running the command one should see output similar to the following:
</para>
<programlisting>
00:04:10.608823 xid:cmd bedcb551 > ffffffff S=6 s=2 (14)
00:04:10.698818 xid:cmd bedcb551 > ffffffff S=6 s=3 (14)
00:04:10.788815 xid:rsp bedcb551 < 5f36a4a1 S=6 s=3 Kodak DC265 Zoom hint=8404 [ Computer IrCOMM ]
(33) 00:04:10.798819 xid:cmd bedcb551 > ffffffff S=6 s=4 (14)
00:04:10.888815 xid:cmd bedcb551 > ffffffff S=6 s=5 (14)
00:04:10.978818 xid:cmd bedcb551 > ffffffff S=6 s=* armstrong hint=0400 [ Computer ] (25)
6 packets received by filter
</programlisting>
<para>
If the previous message was not displayed, try relocating the camera closer or further away from the IrDA port and ensure that there is not too much external interference in the environment in the form of light. Also if the machine is a laptop with a PC-Card (or PCMCIA) modem removing it may help resolve the issue.
</para>
<programlisting>
</programlisting>
</sect3>
</sect2>
<sect2>
<title>
Compact Flash PC Card Adapter
</title>
<para>
This section is for those who wish to utilize maximum data transfer rate and save the battery power in the camera's batteries. This method of picture access only allows for storage, retrieval, and deletion of images on a Compact Flash Card. These instructions are tested with a Kodak 16 MB Picture Card and a SanDisk CompactFlash PC Card Adapter on a Dell Inspiron 7000 notebook computer.
</para>
<para>
What software is needed (if not already present):
</para>
<orderedlist>
<listitem>
<para>
<ulink url="PCMCIA-CS-3.1.21">http://download.sourceforge.net/pcmcia-cs/pcmcia-cs-3.1.21.tar.gz</ulink>
</para>
</listitem>
</orderedlist>
<para>
This document assumes a working knowledge of kernel and program compiling. If unfamiliar with the process it is strongly suggested to go and read the <ulink url="Kernel-HOWTO">http://howto.tucows.com/LDP/HOWTO/Kernel-HOWTO.html</ulink>.
</para>
<para>
Select the following to be built as either modules or part of your kernel:
</para>
<orderedlist>
<listitem>
<para>
DOS FAT fs support
</para>
</listitem>
<listitem>
<para>
VFAT (Windows-95) fs support
</para>
</listitem>
</orderedlist>
<para>
Reboot the system and then load the created modules each time access to the compact flash card is desired if the support is not compiled into the kernel. To load the modules do the following:
</para>
<programlisting>
/sbin/insmod /lib/modules/$(uname -r)/fat.o /sbin/insmod /lib/modules/$(uname -r)/vfat.o
</programlisting>
<para>
Compile and configure PCMCIA-CS. This part of the process is beyond the scope of this document, however there is a document with such information that can be found in the <ulink url="PCMCIA-HOWTO.">http://pcmcia-cs.sourceforge.net/ftp/doc/PCMCIA-HOWTO.html</ulink> There is also most likely a pre-packaged version for the distribution of GNU/Linux the computer running. This step can be greatly simplified if a pre-packaged version is used.
</para>
<para>
Using the Compact Flash PC Card Adapter:
</para>
<para>
Create a directory to mount the Compact Flash Card to.
</para>
<programlisting>
mkdir /flashcard
</programlisting>
<para>
Insert the Compact Flash Card into the Compact Flash PC Card Adapter (both should face the same direction).
</para>
<para>
Insert the Compact Flash PC Card Adapter into the PC-Card slot of the notebook computer.
</para>
<para>
Mount the Compact Flash Card PC Card Adapter to /flashcard (The Compact Flash Card PC Card Adapter is assigned its device by figuring out how many IDE controllers are on the system, and then assigning it the next device. For example, if a system were to have 2 IDE controllers, and would thus have /dev/hda /dev/hdb /dev/hdc and /dev/hdd assigned to the current controllers, the Compact Flash Card PC Card Adapter would be assigned /dev/hde1.).
</para>
<programlisting>
mount -t vfat /dev/hde1 /flashcard
</programlisting>
<para>
From this point the files can be copied, moved, deleted, and renamed as done on a normal filesystem. Information regarding file management commands may be found in the documentation included with the OS distribution used, such as man pages. The manual pages which list the commands to use to do the above procedures can be accesses by typing the following to get the command's respective manual page entry: 'man cp', 'man mv', 'man rm'. Before removing the Compact Flash Card PC Card Adapter remember to unmount it with the following command.
</para>
<programlisting>
umount /flashcard
</programlisting>
<para>
The Compact Flash Card PC Card Adapter can be removed from the PC Card Reader and the Compact Flash Card and be removed from the Compact Flash Card PC Card Adapter.
</para>
</sect2>
</sect1>
<sect1>
<title>
Software Support
</title>
<sect2>
<title>
OpenDiS (Open Digita Services)
</title>
<para>
What is needed: <ulink url="OpenDiS 0.0.3">http://ods.sourceforge.net/dl/opendis-0.0.3.tar.gz</ulink>
</para>
<sect3>
<title>
Compiling, extracting and installing OpenDiS
</title>
<para>
Run the following commands to compile, extract and install OpenDiS
</para>
<programlisting>
tar -zxvf opendis-0.0.3.tar.gz cd opendis-0.0.3 ./configure make make install
</programlisting>
</sect3>
<sect3>
<title>
Usage
</title>
<para>
The following usage section is taken directly from the output of the ks command.
</para>
<literallayout>
Usage: ks [OPTION]... [COMMAND]...
</literallayout>
<programlisting>
Connect to camera and perform COMMANDs.
Updated: 0.0.3 Development note: currently some COMMANDs are supported; default action is to display this help. However, all listed OPTIONS are now supported. ] -d DEV, --device=DEV Look for camera at device DEV. Defaults to /dev/ttyS0. -r RATE, --rate=RATE Use bit-rate RATE for serial device. Defaults to 9600. Not applicable to USB or IrDA. -t TYPE, --type=TYPE Specifies device type, one of: "serial" "usb", or "irda". Normally, device type can be deduced from DEV and need not be specified -i, --irda Same as --type=irda -s, --serial Same as --type=serial -u, --usb Same as --type=usb -v --verbose More output. -q --quiet Less output. -l, --list List supported commands -h, --help Display this help and exit.
Currently following commands are supported:
delall Delete all files in the camera download Download pictures thumbs Download thumbnails gettime Get camera's date/time settime Set camera clock according to computer's clock shoot Take a picture status Show pictures taken, available and raw count getpowermode Checks if camera is on poweroff Turn the camera off
</programlisting>
</sect3>
<sect3>
<title>
Usage Examples
</title>
<para>
USB:
</para>
<para>
Special USB notes. The USB stack has been ever changing in the developmental kernels and as such works differently from time to time. In playing with the latest developmental kernel released the camera tends to show up on /dev/dc2xx0 or /dev/dc2xx1, independent of the fact that only one camera is connected. The support for these devices is all fairly new, so expect to have to play with it to get it working. The following should allow one to download all images from the camera to the working directory with a USB connection. Make sure that the camera is in connect mode.
</para>
<programlisting>
ks -d /dev/dc2xx0 download
</programlisting>
<para>
Serial:
</para>
<para>
Serial support does work and as such the following command should allow one to download all images from the camera into their current working directory. Modify the serial port device name as necessary. Ensure that the camera is on and in connect mode and that the serial cable is connected between the computer's serial port and the camera.
</para>
<programlisting>
ks -d /dev/ttyS0 download
</programlisting>
<para>
IrDA:
</para>
<para>
IrDA is not supported in the release version of OpenDiS, however support has been added to the CVS version. To obtain the latest version of OpenDiS via CVS run the following (hit the enter key at the password prompt, there is no password):
</para>
<programlisting>
cvs -d:pserver:anonymous@cvs.ods.sourceforge.net:/cvsroot/ods login
cvs -d:pserver:anonymous@cvs.ods.sourceforge.net:/cvsroot/ods checkout ods/opendis-current
</programlisting>
<para>
To compile and configure this version do the following:
</para>
<programlisting>
cd ods
cd opendis-current
./configure
make
make install
</programlisting>
<para>
An example command which will download all the images from the camera via IrDA would look as follows. Remember to have the camera on and in connect mode. It may also be advisable to increase the auto-shutoff feature to a larger value (5 minutes if possible).
</para>
<programlisting>
ks -d /dev/ircomm0 download
</programlisting>
</sect3>
</sect2>
<sect2>
<title>
Digita Operating Environment- Command Device Protocol Python Script
</title>
<para>
This Python script written by Sai Lai Lo of AT&amp;T Cambridge Laboratories allows for download
</para>
<para>
of images from Kodak Digital Cameras running DigitaOS and using USB for transfer. Some have problems with this script and some don't. However it is nice to cover all bases.
</para>
<para>
Here a working copy of the <ulink url="Command Device Protocol Python Script">http://mh.netpedia.net/HOWTO/kodak/v0.0.5/cdp.py</ulink> can be attained. The original <ulink url="Command Device Protocol Python Script">http://home.pacbell.net/david-b/digicam/dc290.txt</ulink> for which the one above is derived has to be edited to remove leading text to work.
</para>
<para>
The script depends on /dev/kodak existing due to the way older kernels accessed the Kodak Digital Camera USB Device. A symbolic link must be created between the actual device the camera is on and /dev/kodak. If the camera is on /dev/dc2xx0 the symbolic link needed can be created with the following command:
</para>
<programlisting>
ln -s /dev/dc2xx0 /dev/kodak
</programlisting>
<para>
Be sure to substitute in the proper device name instead of kodak00 if the camera was not assigned kodak00. To list all files on the camera run the following command:
</para>
<programlisting>
python cdp.py
</programlisting>
<para>
To download a single image from the camera run the following command:
</para>
<para>
python cdp.py 2:DC265_01/P0000748.JPG
</para>
<para>
That command will download the image P0000748.JPG to the directory DC265_01 in the current directory. A quick and easy command to download all the images from the camera would be:
</para>
<programlisting>
for file in $(python cdp.py); do python cdp.py $file; done
</programlisting>
<para>
This is just a few of the many ways such a script can work. It is possible to use the above command in a larger shell script to automate downloading the images from the camera, converting the images to another format, resizing the images, creating a web page automatically, and many many others. The options are endless when it comes to scripts like this.
</para>
</sect2>
<sect2>
<title>
gPhoto
</title>
<para>
Still deciding the best way to implement this section. Possibly a DocBook manual for gPhoto needs to be written but according to the gPhoto project web site a manual is being developed at the moment. Contact with the developers of gPhoto needs to be made to see how far off it is so that it can be referenced here in the HOWTO.
</para>
</sect2>
</sect1>
<sect1>
<title>
Additional Online Resources
</title>
<sect2>
<title>
Kodak Digital Camera Mailing Lists
</title>
<sect3>
<title>
Kodak Digita Camera
</title>
<para>
<ulink url="Kodak Digita Camera Mailing List">http://www.egroups.com/group/kodak-digita-camera/</ulink>
</para>
<para>
This list contains information about DigitaOS enabled Kodak Digital Cameras. This includes the Kodak DC220, DC260, DC265 and DC290. This is the place to go for all of your questions regarding how to use your camera, Digita scripting questions and anything else that pertains to the DigitaOS enabled cameras. To subscribe to the mailing list send a blank email to <ulink url="mailto:kodak-digita-camera-subscribe@egroups.com">kodak-digita-camera-subscribe@egroups.com</ulink>. To unsubscribe from the list send a blank email to <ulink url="mailto:kodak-digita-camera-unsubscribe@egroups.com">kodak-digita-camera-unsubscribe@egroups.com</ulink>. Alternately, go to <ulink url="http://www.egroups.com/register?method=displayregistrationform&url=/www">the registration form</ulink> and sign up for an account there. Once the account is created one will have the ability to search through the archive and post messages.
</para>
</sect3>
<sect3>
<title>
Kodak DC240/DC280
</title>
<para>
<ulink url="Kodak DC240/DC280 Mailing list">http://www.egroups.com/group/kodak240-280</ulink>
</para>
<para>
Owners of the Kodak DC240 and DC280 camera models can use this as their forum to discuss issues with other users of the same cameras. This is an open list and its contents can be searched through and viewed at the above URL. To join the list send a blank email to <ulink url="mailto:kodak240-280-subscribe@egroups.com">kodak240-280-subscribe@egroups.com</ulink>. To unsubscribe send a blank email to <ulink url="mailto:kodak240-280-unsubscribe@egroups.com">kodak240-280-unsubscribe@egroups.com</ulink>.
</para>
</sect3>
<sect3>
<title>
Kodak DC215
</title>
<para>
<ulink url="Kodak DC215 Mailing List">http://www.egroups.com/group/kodakdc215/</ulink>
</para>
<para>
Owners and people interesting in contacting other users of the Kodak DC215 digital camera can use this forum to ask and answer questions. This list is specifically oriented towards the Kodak DC215 camera.
</para>
</sect3>
</sect2>
<sect2>
<title>
Other Useful Mailing Lists
</title>
<sect3>
<title>
Linux-USB
</title>
<para>
<ulink url="Linux-USB">http://lists.suse.com/archives/linux-usb/</ulink>
</para>
<para>
The Linux-USB mailing list is a very active mailing list pertaining to all aspects of USB and Linux. Here one will find the most recent patches for the USB code in the Linux kernel. There is also good discussion on support of digital cameras from time to time. Overall a great list to peek at every week or so.
</para>
<para>
To subscribe to this list send a blank email to <ulink url="mailto:linux-usb-subscribe@suse.com">linux-usb-subscribe@suse.com</ulink>. A confirmation email that must be replied to will then be sent back. Either send a reply to the email address in the reply-to: section of the email, or the address listed in the confirmation message itself. To unsubscribe from the list send a blank email to <ulink url="mailto:linux-usb-unsubscribe@suse.com">linux-usb-unsubscribe@suse.com</ulink>. This action will then have to be confirmed with the same method used for confirming subscription to the mailing list. For a list of other useful commands send an email to <ulink url="mailto:linux-usb-info@suse.com">linux-usb-info@suse.com</ulink>.
</para>
</sect3>
<sect3>
<title>
Linux-kernel
</title>
<para>
<ulink url="Linux-kernel">http://www.mail-archive.com/linux-kernel%40vger.rutgers.edu/</ulink>
</para>
<para>
The linux-kernel mailing list is a very high traffic mailing list detailing all aspects of the Linux kernel. This list is only for those who wish to have more information than the Linux-USB list and the gPhoto-Kodak lists contain. However, it covers much more of a broad spectrum of topics than Kodak digital camera support under Linux.
</para>
<para>
Before posting or subscribing to the Linux-kernel mailing list is is highly suggested reading the <ulink url="Linux-kernel mailing list FAQ">http://www.tux.org/lkml/</ulink>. It could save much time and embarrassment. It also contains useful information on who certain individuals are in the Linux community in relation to their standing on the list.
</para>
<para>
To subscribe to the list (remember, it is about 200 emails a day) send an email to <ulink url="mailto:majordomo@vger.rutgers.edu">majordomo@vger.rutgers.edu</ulink> with &quot;subscribe linux-kernel username@mailserver&quot; in the body of the message where username is the email account to be used and mailserver is the name of the mail server. Remember to omit the quotation marks.
</para>
<para>
An alternative to joining the list would be to get the list in digest format. This is a better format to many as it is a few emails a day rather than several hundred. One drawback of this is that it is not as easy to discuss the issues with the mailing list as most mail clients don't know how to deal with the digest in its format besides dealing with it like plain text. To subscribe to the digest send an email to <ulink url="mailto:majordomo@vger.rutgers.edu">majordomo@vger.rutgers.edu</ulink> with the line &quot;subscribe linux-kernel-digest username@mailserver&quot; in the body of the message. Where username is the email account username to be used and mailserver is the name of the mail server. Remember to omit the quotation marks.
</para>
<para>
Unsubscribing from the mail list is as easy as subscribing. Just send an email to <ulink url="mailto:majordomo@vger.rutgers.edu">majordomo@vger.rutgers.edu</ulink> with the line &quot;unsubscribe linux-kernel&quot; in the body of the message, or alternately &quot;unsubscribe linux-kernel-digest&quot; if subscribed to the digest. And again, remember to omit the quotation marks.
</para>
<para>
Rather than subscribing to this list it would be highly suggested to search through the archive which is accessible via the URL listed above. Another alternative is the <ulink url="Kernel Traffic">http://kt.linuxcare.com/</ulink>site. It contains a good overview of the weeks kernel developmental works and discussions in a summary format.
</para>
</sect3>
<sect3>
<title>
gPhoto-Kodak
</title>
<para>
<ulink url="gPhoto-Kodak">http://lists.styx.net/archives/public/gphoto-kodak/</ulink>
</para>
<para>
This list contains much information regarding gPhoto and Kodak cameras. It also contains much discussion on the <ulink url="OpenDiS">http://ods.sourceforge.net</ulink> project and their releases. The latest version of OpenDiS is usually announced on this mailing list and allows one to try out the new functions. Instructions and the form to join the mailing list are at the following URL: <ulink url="http://lists.styx.net/mailman/listinfo/gphoto-kodak.">http://lists.styx.net/mailman/listinfo/gphoto-kodak</ulink>
</para>
</sect3>
</sect2>
<sect2>
<title>
Useful Web Sites / Other Resources
</title>
<sect3>
<title>
Linux-USB Project
</title>
<para>
<ulink url="Linux USB Project">http://www.linux-usb.org/</ulink>
</para>
<para>
The Linux-USB Project's web page contains much information pertaining to Linux and USB in general. Although not all information is pertinent to this HOWTO, a large portion of it is. It contains links to the latest USB support, driver maintainers and device working status. Take a look here and in the Linux-USB mail archive if having a problem getting USB working. Chances are one of the later developmental kernels or the source on the CVS will solve the issue.
</para>
</sect3>
<sect3>
<title>
Linux USB for DC-2xx Cameras
</title>
<para>
<ulink url="Linux USB for DC-2xx Cameras">http://home.pacbell.net/david-b/digicam/</ulink>
</para>
<para>
This website is maintained by David Brownell, author of the Kodak DC-2xx kernel support. It contains some information not included in this HOWTO as of yet and holds the latest information regarding configuring USB support. Look here for new developments in supporting the Kodak DC-2xx camera series.
</para>
</sect3>
<sect3>
<title>
OpenDiS (Open Digita Services)
</title>
<para>
<ulink url="OpenDiS (Open Digita Services)">http://ods.sourceforge.net</ulink>
</para>
<para>
The Open Digita Services web site is the main source of information on the support of cameras running Digita which include the Kodak DC-220, DC-260, DC-265, DC-290, the Minolta EX-1500 and the HP PhotoSmart C500.
</para>
</sect3>
<sect3>
<title>
gPhoto
</title>
<para>
<ulink url="gPhoto">http://www.gphoto.org/</ulink>
</para>
<para>
gPhoto is free software for digital cameras licensed under the GNU GPL. It currently supports more than 90 camera models from various vendors. gPhoto has a command line and a GTK+ graphical interface. Many people swear by this program. Installation, configuration and usage information will be added.
</para>
</sect3>
<sect3>
<title>
Digital Photography Review
</title>
<para>
<ulink url="Digital Photography Review">http://photo.askey.net/</ulink>
</para>
<para>
Trying to decide which digital camera is best? Digital Photography Review is the most comprehensive website available for all anyone wants to know about digital cameras. This site is not limited to just the Kodak product line and offers great reviews of the newest and older digital cameras. Take a look through the online photo gallery with detailed information pertaining to the camera used and its setting for each and every photograph.
</para>
</sect3>
</sect2>
</sect1>
<sect1>
<title>
FAQ
</title>
<para>
Q: Why aren't there any entries but this one in the FAQ?
</para>
<para>
A: Because the HOWTO is currently is a non-public release state and thus there was no time for anyone to ask any questions! So email your questions off to David Burley <ulink url="mailto:khemicals@marblehorse.org"><khemicals@marblehorse.org></ulink> and lets add to it.
</para>
</sect1>
<sect1>
<title>
TODO
</title>
<para>
The following TODO list is nowhere near complete. It is simply a list of things meant to added in the future that others have suggested. If anyone has any suggestions for new entries into the HOWTO please email them to <ulink url="David Burley">mailto:khemicals@marblehorse.org</ulink>.
</para>
<orderedlist>
<listitem>
<para>
Differences between different camera models.
</para>
</listitem>
<listitem>
<para>
Interesting digital camera uses (aerial/under water photography among others).
</para>
</listitem>
<listitem>
<para>
Additional support of more Kodak digital cameras (gPhoto support with those).
</para>
</listitem>
<listitem>
<para>
Support for non-Kodak digital cameras (most likely not anytime in the near future. this is out of the scope of the current document.).
</para>
</listitem>
<listitem>
<para>
Additional camera interfacing methods.
</para>
</listitem>
<listitem>
<para>
Updating Firmware (current format for firmware is an Install Shield file.... useless under GNU/Linux).
</para>
</listitem>
</orderedlist>
</sect1>
<sect1>
<title>
Appendix
</title>
<para>
This section is to provide valuable information which may not directly apply to the use of Kodak digital cameras under the GNU/Linux operating system. It is meant to help those who need information in a binge on their digital camera and find this document. The scope of this section may change as the HOWTO matures.
</para>
<sect2>
<title>
Drivers and other utilities for alternate Operating Systems
</title>
<sect3>
<title>
DC265
</title>
<para>
Drivers: Currently Kodak has not released any drivers online for the camera. To support the camera under Windows 95/98/NT use either the included CD-ROM that came with the camera, or call Kodak to order a new CD-ROM.
</para>
</sect3>
</sect2>
</sect1>
</article>