This HOWTO was created in an attempt to document installation of a Kodak DC-265 Camera.
Revision History:
February 20, 2000--
February 17, 2000--
January 18, 2000--
January 9, 2000--
January 4, 2000--
January 3, 2000--
New versions of this HOWTO will be available on http://mh.netpedia.net/HOWTO/kodak/. 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.
February 20, 2000--
v0.0.7 released (public)
v0.0.6 released (non-public)
February 17, 2000--
v0.0.4 released and v0.0.5 released (non-public)
January 18, 2000--
v0.0.3 released (non-public)
January 9, 2000--
v0.0.2 released (non-public)
January 4, 2000--
v0.0.1 released (non-public)
Copyright (c) 2000 David M. Burley
This manual may be reproduced in whole or in part, without fee, subject to the following restrictions:
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.
Linux is a registered trademark of Linus Torvalds.
Kodak is a registered trademark of the Eastman Kodak Company.
Digita is a registered trademark of Flashpoint Technology, Inc.
Dell is a registered trademark of Dell Computer Corporation.
Windows is a registered trademark of Microsoft Corporation.
All other trademarks are the property of their respective owner.
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.
David Burley can be reached via email at the following address: khemicals@stampede.org
GPG Key ID: 60ACD148
FPR1: 76CE FFCA F637 DFD0 BAA5
FPR2: 1079 BCB1 3CDD 60AC D148
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 shudder behind it to allow the light from the subject to hit a light sensative material. However, this is where most of the similarities end.
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).
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 due to the compression.
A good resource for definitions of the terms used above is Digital Photography Review. Please refer there for more information. Kodak also has a good site with much information on how things work, Kodak Digital Learning Center.
Awaiting permission from Kodak to use their technical specifications from the Kodak web site for this information. It is copywritten.
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 and Serial data transfer.
Additional notes regarding transfer of data from the DC265 camera using RS232 serial support will be added in a future version of this HOWTO. See the OpenDiS subsection of the Software section of the HOWTO for information regarding serial camera control.
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.14 kernel.
What software is needed (if not already present):
This document assumes a working knowledge of kernel and program compiling. If unfamiliar with the process please go and read the Kernel-HOWTO.
Applying the patch:
cp usb-2.3.44-for-2.2.14.diff.gz /usr/src gunzip /usr/src/usb-2.3.44-for-2.2.14.diff.gz cd /usr/src patch -p0 < usb-2.3.44-for-2.2.14.diff
Select the following to be built as either modules or part of your kernel:
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:
/sbin/insmod /lib/modules/2.2.14/usb/usbcore.o
Use the following if the USB controller uses either an Intel or a VIA chipset. Some others may also be supported:
/sbin/insmod /lib/modules/2.2.14/usb/usb-uhci.o
Use the following if the above did not work and this is the controller type:
/sbin/insmod /lib/modules/2.2.14/usb/uhci.o
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.
/sbin/insmod /lib/modules/2.2.14/usb/usb-ohci-hcd.o
Load the module for Kodak Digital Camera support:
/sbin/insmod /lib/modules/2.2.14/usb/dc2xx.o
Mount the USB Device Filesystem:
mount -t usbdevfs ignored /proc/bus/usb
The 2.3.x kernel series is the developmental branch of the kernel. As such it is suggested not to run this kernel series unless the backport of the USB driver does not work.
What software is needed (if not already present.):
This document assumes a working knowledge of kernel and program compiling. If unfamiliar with the process please go and read the Kernel-HOWTO.
Select the following to be built as either modules or part of your kernel:
Reboot your system and then load the created modules if not compiled into the kernel. To load the modules do the following:
/sbin/insmod /lib/modules/2.3.46/usb/usbcore.o
Use this if the USB controller uses either an Intel or a VIA chipset. Some others may also be supported.
/sbin/insmod /lib/modules/2.3.46/usb/usb-uhci.o
Use the following if the above did not work and it is your controller type:
/sbin/insmod /lib/modules/2.3.46/usb/uhci.o
Use this if the USB controller uses and SiS chipset, is a Compaq, or because the above two didn't seem to work and there is only one option left to try.
/sbin/insmod /lib/modules/2.3.46/usb/usb-ohci-hcd.o
Load the module for Kodak Digital Camera support:
/sbin/insmod /lib/modules/2.3.46/usb/dc2xx.o
Mount the USB Device Filesystem:
mount -t usbdevfs ignored /proc/bus/usb
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.14 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.
It creates as per the dc2xx.txt file in the kernel documentation the following 16 devices:
/dev/kodak00 type=character major=180 minor=80
...
/dev/kodak15 type=character major=180 minor=95
# Filename: MakeKodakDev # Last Modified February 16, 2000 # Please see the Kodak Digital Camera HOWTO for more information # http://mh.netpedia.net/HOWTO/kodak/ #!/bin/sh export scrapvar=0 while [ $scrapvar -lt 17 ]; do if [ $scrapvar -lt 10 ]; then mknod -m 0666 /dev/kodak0$scrapvar c 180 $(( $scrapvar + 80)) else mknod -m 0666 /dev/kodak$scrapvar c 180 $(( $scrapvar + 80 )) fi scrapvar=$(( $scrapvar + 1 )) done # EOF
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.
What software is needed (if not already present):
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 Kernel-HOWTO.
Select the following to be built as either modules or part of your kernel:
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:
/sbin/insmod /lib/modules/$(uname -r)/fat.o /sbin/insmod /lib/modules/$(uname -r)/vfat.o
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 PCMCIA-HOWTO. 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.
Using the Compact Flash PC Card Adapter:
Create a directory to mount the Compact Flash Card to.
mkdir /flashcard
Insert the Compact Flash Card into the Compact Flash PC Card Adapter (both should face the same direction).
Insert the Compact Flash PC Card Adapter into the PC-Card slot of the notebook computer.
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.).
mount -t vfat /dev/hde1 /flashcard
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.
umount /flashcard
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.
What is needed: OpenDiS 0.0.3
Run the following commands to compile, extract and install OpenDiS
tar -zxvf opendis-0.0.3.tar.gz cd opendis-0.0.3 ./configure make make install
The following usage section is taken directly from the output of the ks command.
Usage: ks [OPTION]... [COMMAND]... 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
USB:
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/kodak00 or /dev/kodak01, 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.
ks -d /dev/kodak00 download
Serial:
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.
ks -d /dev/ttyS0 download
IrDA:
Infrared support is not yet supported by OpenDiS. As such no example can be provided. The reason it is not supported yet is that the protocol differs from that of the USB/serial protocols. USB and Serial use very similar if not the same protocol for their functionality.
This Python script written by Sai Lai Lo of AT&T Cambridge Laboratories allows for download 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.
Here a working copy of the Command Device Protocol Python Script can be attained. The original Command Device Protocol Python Script for which the one above is derived has to be edited to remove leading text to work.
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/kodak00 the symbolic link needed can be created with the following command:
ln -s /dev/kodak00 /dev/kodak
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:
python cdp.py
To download a single image from the camera run the following command:
python cdp.py 2:DC265_01/P0000748.JPG
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:
for file in $(python cdp.py); do python cdp.py $file; done
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.
Kodak Digita Camera Mailing List
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 kodak-digita-camera-subscribe@egroups.com. To unsubscribe from the list send a blank email to kodak-digita-camera-unsubscribe@egroups.com. Alternately, go to http://www.egroups.com/register?method=displayregistrationform&url=/www 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.
Kodak DC240/DC280 Mailing list
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 kodak240-280-subscribe@egroups.com. To unsubscribe send a blank email to kodak240-280-unsubscribe@egroups.com.
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.
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.
To subscribe to this list send a blank email to linux-usb-subscribe@suse.com. 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 linux-usb-unsubscribe@suse.com. 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 linux-usb-info@suse.com.
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.
Before posting or subscribing to the Linux-kernel mailing list is is highly suggested reading the Linux-kernel mailing list FAQ. 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.
To subscribe to the list (remember, it is about 200 emails a day) send an email to majordomo@vger.rutgers.edu with "subscribe linux-kernel username@mailserver" 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.
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 majordomo@vger.rutgers.edu with the line "subscribe linux-kernel-digest username@mailserver" 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.
Unsubscribing from the mail list is as easy as subscribing. Just send an email to majordomo@vger.rutgers.edu with the line "unsubscribe linux-kernel" in the body of the message, or alternately "unsubscribe linux-kernel-digest" if subscribed to the digest. And again, remember to omit the quotation marks.
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 Kernel Trafficsite. It contains a good overview of the weeks kernel developmental works and discussions in a summary format.
This list contains much information regarding gPhoto and Kodak cameras. It also contains much discussion on the OpenDiS 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: http://lists.styx.net/mailman/listinfo/gphoto-kodak.
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.
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.
OpenDiS (Open Digita Services)
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.
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.
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.
Q: Why aren't there any entries but this one in the FAQ?
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 <khemicals@stampede.org> and lets add to it.
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 David Burley.
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.
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.