I've had a Magellan GPS for a while, and have recently been working on integrating with my Linux system. (BTW, there is a species of penguin named "Magellanic", after the explorer). My first project was writing a tool to plot coordinates on historical USGS maps. This is very useful for historical research, and general amusement. (This grew into a second, more robust and expandable mini-Map Display Server) The next thing was to make my Dell Latitude laptop into a time server. This is where things got tricky, since two programs can't read the serial port at the same time...
That's when I came across Chuck Taylor's NMEA Server. This neat program reads the GPS data from the serial port, and distributes the data over the network. See the website for more information:
I had an email from Jim Hogan, who said that my patch to NTP, which will be presented below, also works with gpsd. As I write this, I don't know enough to compare these two servers. Jim stated that gpsd uses port 2947. See the website for more information:
This patch has been incorporated into NTP. I've tested with Fedora Core 5, and my patch is included!
The next step was to patch the NTP source so that it would read from a network socket instead of the serial port. This is pretty simple. All you need to do is replace the open() call with the socket routines. Since the NMEA Server is distributing the exact data from the GPS, no other client changes were needed. I made my changes to the ntp-4.2.0 source code.