gps man page

gps, xgps, xgpsspeed, cgps, lcdgps, gegps — test clients for gpsd


xgps [-D debug-level] [-h] [-V] [-l [[d] | [m] | [s]]] [-u [[i] | [n] | [m]]] [server [:port [:device]]]

xgpsspeed [-D debug-level] [-h] [-V] [--speedunits {[mph] | [kph] | [knots]}] [server [:port [:device]]]

cgps [-D debug-level] [-h] [-V] [-l [[d] | [m] | [s]]] [-m] [-s] [-u [[i] | [n] | [m]]] [server [:port [:device]]]

lcdgps [-h] [-V] [-l [[d] | [m] | [s]]] [-u [[i] | [n] | [m]]] [server [:port [:device]]]

gpxlogger [-D debug-level] [-d] [-e export-method] [-f filename] [-l] [-m minmove] [-h] [-V] [-i track timeout] [server [:port [:device]]]

gegps [-d directory] [-i]


These are the demonstration clients shipped with gpsd. They have some common options:

The -h option causes each client to emit a summary of its options and then exit.

The -V option causes each client to dump the package version and exit.

The -l option, when present, sets the format of latitude and longitude reports. The value 'd' produces decimal degrees and is the default. The value 'm' produces degrees and decimal minutes. The value 's' produces degrees, minutes, and decimal seconds.

xgps, cgps, and lcdgps look at variables in the environment to figure out what units they should default to using for display — imperial, nautical, or metric. Here are the variables and values they check:

GPSD_UNITS one of:
          imperial   = miles/feet
          nautical   = knots/feet
          metric     = km/meters
   en_US      = miles/feet
          C          = miles/feet
          POSIX      = miles/feet
          [other]    = km/meters
   en_US      = miles/feet
          C          = miles/feet
          POSIX      = miles/feet
          [other]    = km/meters

These preferences may be overridden by the -u option.

Where present, the -u option can be used to set the system units for display; follow the keyword with 'i' for 'imperial' for American units (feet in altitude and error estimates, miles per hour in speeds), 'n' for 'nautical' (feet in altitude and error estimates, knots in speed) or 'm' for 'metric' (meters in altitude and error estimates, kilometers per hour in speeds).

The -D option, when present, sets a debug level; it is primarily for use by GPSD developers. It enables various progress messages to standard error.

By default, clients collect data from all compatible devices on localhost, using the default GPSD port 2947. An optional argument to any client may specify a server to get data from. A colon-separated suffix is taken as a port number. If there is a second colon-separated suffix, that is taken as a specific device name to be watched. However, if the server specification contains square brackets, the part inside them is taken as an IPv6 address and port/device suffixes are only parsed after the trailing bracket. Possible cases look like this:


Look at the default port of localhost, trying both IPv4 and IPv6 and watching output from serial device 1.


Look at port 2317 on example.com, trying both IPv4 and IPv6.

Look at port 2317 at the specified IPv4 address, collecting data from attached serial device 3.


Look at port 2317 at the specified IPv6 address, collecting data from attached serial device 5.

Not all clients shipped with GPSD are documented here. See also the separate manual pages for gpspipe(1) and gpsmon(1).


xgps is a simple test client for gpsd with an X interface. It displays current GPS position/time/velocity information and (for GPSes that support the feature) the locations of accessible satellites.

In the sky view, satellites are color-coded to indicate quality of signal; consult the data display to the left for exact figures in dB. Square icons indicate WAAS/EGNOS satellites, circles indicate ordinary GPS satellites. Filled icons were used in the last fix, outline icons were not.


xgpsspeed is a speedometer that uses position information from the GPS. It accepts an -h option and optional argument as for gps, or a -V option to dump the package version and exit.

The default display mode resembles a car speedometer. With the option --nautical you get a more elaborate speed and track presentation modeled after a marine navigation display.

The -speedunits option can be used to set the speed units for display; follow the keyword with knots for nautical miles per hour, kph for kilometres per hour, or mph for miles per hour. The default is miles per hour.

In the nautical mode only, --maxspeed sets the maximum on the speedometer.


cgps is a client resembling xgps, but without the pictorial satellite display and able to run on a serial terminal or terminal emulator.

The -s option prevents cgps from displaying the data coming from the daemon. This display can also be toggled with the s command.

The -m option will display your magnetic heading (as opposed to your true heading). This is a calculated value, not a measured value, and is subject to a potential error of up to two degrees in the areas for which the calculation is valid (currently Western Europe, Alaska, and Lower 48 in the USA). The formulas used are those found in the Aviation Formulary v1.43.

cgps terminates when you send it a SIGHUP or SIGINT; given default terminal settings this will happen when you type Ctrl-C at it. It will also terminate on 'q'


A client that passes gpsd data to lcdproc, turning your car computer into a very expensive and nearly feature-free GPS receiver. Currently assumes a 4x40 LCD and writes data formatted to fit that size screen. Also displays 4- or 6-character Maidenhead grid square output.


This program collects fixes from gpsd and logs them to standard output in GPX, an XML profile for track logging.

The output may be composed of multiple tracks. A new track is created if there's no fix for an interval specified by the -i and defaulting to 5 seconds.

The -d option tells gpxlogger to run as a daemon in background. It requires the -f option, which directs output to a specified logfile.

The -m option sets a minimum move distance in meters (it may include a fractional decimal part). Motions shorter than this will not be logged.

gpxlogger can use any of the export methods that gpsd supports. For a list of these methods, use the -l. To force the method, give the -e one of the colon-terminated method names from the -l table.

If D-Bus support is available on the host, GPSD is configured to use it, and -e dbus is specified, this program listens to DBUS broadcasts from gpsd via org.gpsd.fix.

With -e sockets, or if sockets is the method defaulted to, you may give a server-port-device specification as arguments.


This program collects fixes from gpsd and feeds them to a running instance of Google Earth for live location tracking.

The -d argument is the location of the Google Earth installation directory. If not specified, it defaults to the current directory.

If you have the free (non-subscription) version, start by running with the -i option to drop a clue in the Google Earth installation directory, as 'Open_in_Google_Earth_RT_GPS.kml', then open that file in Places (File > Open...). Run gpsd in the normal way after that.

See Also

gpsd(8), libgps(3), libgpsd(3), gpsfake(1), gpsctl(1), gpscat(1), gpsprof(1). gpspipe(1). gpsmon(1).


Remco Treffcorn, Derrick Brashear, Russ Nelson & Eric S. Raymond, Jeff Francis (cgps). Amaury Jacquot <sxpert@sxpert.org> & Petter Reinholdtsen <pere@hungry.com> (gpxlogger). Chris Kuethe <chris.kuethe@gmail.com> (gpxlogger), Chen Wei <weichen302@aol.com> (gegps & xgpsspeed), Robin Wittler <real@the-real.org> (xgpsspeed).

This manual page by Eric S. Raymond <esr@thyrsus.com>

Referenced By

gps2udp(1), gpscat(1), gpsctl(1), gpsd(8), gpsdctl(8), gpsdecode(1), gpsfake(1), gpsinit(8), gpsmon(1), gpspipe(1), gpsprof(1), libgps(3), libgpsmm(3), ntpshmmon(1), srec(5).

Explore man page connections for gps(1).

cgps(1), gegps(1), lcdgps(1), xgps(1) and xgpsspeed(1) are aliases of gps(1).

The GPSD Project GPSD Documentation 9 Aug 2004