Here are the steps for installing gpsd and verifying its performance: 1. Start by making sure you can get data from your GPS, otherwise the later steps will be very frustrating. In this command stty -F /dev/ttyXXX ispeed 4800 && cat . To build from source, run ./autogen.sh (or sh autogen.sh if the script does not have execute permission). Mac OS X users may need to do "./autogen.sh --x-includes=/usr/X11R6/include" Note: if you are going to use the RTCM-104 support, you should compile with gcc4; if you don't have it installed as your default compiler, do this by specifying CC=gcc4 before the autogen.sh command. The rtcm.c file confuses the gcc-3.4.[23] optimizer at -O2 level, making it generate incorrect code. Then run make: libgps.so, gpsd, xgps, and xgpsspeed will be built. Copy the app-defaults files xgps.ad and xgpsspeed.ad to your home directory or to the system-wide X app-defaults directory. 4. Start gpsd. It should not need any options. 5. Once gpsd is running, telnet to port 2947. Type 'f' to see what device it will query. If you need to change the device, use 'f=' to do so (see the manual page for details). Now plug in your GPS. 6. Type "wr" to start raw and watcher modes. You should see NMEA data (text lines beginning with $) spewing out. You will also see lines with a GPSD prefix; these are sentence translations in GPSD protocol. Note that until your GPS has acquired a fix, typing "p" to get position will only return this: GPSD,P=? This response does not mean that gpsd is broken or that the GPS is not sending data, merely that gpsd has not yet seen any *valid* position data. You will have to wait for the GPS to acquire satellite lock. If you have raw or watcher mode on, it should be obvious when you get a lock. 7. Start the xgps client. Calling it with no arguments should do the right thing. You should see a GUI panel with position/velocity-time information, and a satellite display. The displays won't look very interesting until the GPS acquires satellite lock. 8. Check out the list of supported hardware at http://gpsd.berlios.de/hardware.html If your GPS isn't on the list, please send us information to add a new line to the table. Directions are included on that page. We can also use updates of the latest version number known to work with hardware already supported. 9. Note for small embedded systems and those without threading. It is possible to build gpsd without thread support if you configure with --disable-pps. You'll lose support for updating the clock from PPS pulses. 10. Note for systems using DBUS: gpsd includes support for shipping fixes as DBUS notofications, but it is not compiled in by default. Configure with the option "--enable-dbus" to get it working.