I recently (November 2005) bought a Canon EOS 20D camera. It's a superb camera, at least for someone like me. I was first favouring the EOS 350D for it has a much lower price, but, believe me: if you don't have small hands, the 350D will probably be too small to hold securely.
So, despite the fact that it has features I'll probably not need too soon, I decided in favour of the EOS 20D - and I guess it was right. The 20D is absolutely fantastic. It has almost every feature a pro camera needs, has a very solid body and gives excellent image quality with very low noise levels. Alltogether, a stunning product! Now, since this is not going to be a EOS 20D review (and I'm not paid by Canon), I'll stop praising it now. If you're interested, I've included some sample shots at the bottom of this page.
Accessing the camera via Linux
As with every (digital) camera, there are two distinct ways of accessing your images under Linux: Often, it is easiest just to insert the CF card into a card reader connected to your PC. This is bullet-proof, works always and everywhere and, in fact, is the only possibility to copy RAW images.
But sometimes you don't have a card reader at hand. When connecting the EOS 20D directly, I observed that the so-called "Normal mode" did not work. In normal mode, the camera does not operate as a mass storage device but uses a proprietary Canon protocol, which is not (yet) available for Linux.
The standard PTP mode, on the other hand, is supported by Linux and the EOS 20D, so you should go for it. To use it, first make sure you switch the camera into PTP mode from within the camera menu.
Next, get a recent version of gphoto2 (>=2.1.6) if not already installed. gphoto2 is a general purpose library for accessing digital still cameras. You'll need a recent version because EOS 20D support was not fully implemented in earlier releases.
Last but not least you'll certainly want a nice interface. My choice is Digikam of the KDE project, but there exist various other similar applications (gtkam etc.). It is very likely that one or more of them are already installed on your computer.
To finally access the camera, connect it via USB and switch it on. Now, start Digikam (or whatever GUI you use) and in the Camera menu, add a new camera. Self-detection should work fine. Then, access the images on your camera by clicking on Camera -> Canon EOS 20D (PTP mode). Two screenshots of Digikam in action is shown below.
Troubleshooting
There's not much to say here, since it should work out of the box under normal circumstances. With modern distributions, you probably don't have to do anything at all.
In case that auto-detection does not work, make sure you have the newest gphoto2 version isntalled. Furthermore, check if it works as user root. If it does, it's very likely that the system does only allow root to access the camera. Modern Linux distribution normally take care of these permissions by granting access to the camera to some special user group (for example, this group is called camera in Debian). If not done automatically, add your user account to this special group and re-login. If your user authentication is done by LDAP, add the camera group into the LDAP DB and modify your own account to be a member of this group.

