Since my wife gave me a Garmin eTrex H (small but really nice) gps unit on last christmas, we both enjoy making use of this thing whenever there is time (which sadfully wasn’t that much the last weeks). For her its mostly the geocaching that makes fun, doing some intersting puzzles while taking walks in the nature or nice parts of the city. For me it became additionally interesting since my RS232-Cable for this unit arrived
Thankfully there are already a lot of nice Linux applications for it (geocaching and my garmin), but the best of it – QLandkarte, a Qt4 application – didn’t have a driver for my eTrex H back then. Of course this gave me the nice chance to step in and write one for it
.. which i did immediately. In the meantime the support for my unit is one of the best in QLandkarte. I added support for waypoint up- and downloading, track-downloading, route-uploading and Display/Screenshot-downloading, which is already all available via the upstream svn .. while the last feature (screencapturing) isn’t even supported by garmins windows tool, i’m still working on the last possible feature to add: realtime-logging support. Fortunately QLandkarte has a really nice and open community. I also made sure QLandkarte is now also available in openSuSE Factory (although not with the latest and greatest features from svn, but I’ll definitely update it for 11.0). Until then i’ll probably also have the realtime-logging feature ready. Additionally i did quite some rework of QLandkartes “serial-access-layer” (its CSerial class) which now greatly improved and speeded up the access to all units using a serial interface.
To make best use of QLandkarte you’ll also need a Garmin Map File (*.img), but there are a lot of free ones available and of course you can make use of OSM and convert it (with Mkgmap) to one.

(Screenshot of QLandkarte showing my way from home to the office with activated track info)
On the commandline there is gpsbabel which is kind of a “swiss army knife” in this area. The openSuSE Buildservice of course also has a prebuilt package for it in the Application:Geo project. E.g. a simple “gpsbabel -w -i garmin -f /dev/ttyUSB0 -o gpx -F waypoints.gpx” transfers all saved waypoints (from the garmin gps unit connected to ttyUSB0) to the waypoints.gpx file (a very common fileformat for a lot of geo usecases).
To organize your geocaches (you already did or plan to do) there is e.g. CacheWolf (eventhough its a java app its quite ok).