Scroll to navigation

GPS(1) GPSD Documentation GPS(1)


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] [--nautical] [--landspeed] [--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]]]

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, 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) and gpxlogger(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 is a speed and track presentation modeled after a marine navigation display; for backward compatibility the --nautical option forces this mode. The --landspeed option produces a simple speedometer.

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 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.


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


Remco Treffcorn, Derrick Brashear, Russ Nelson & Eric S. Raymond, Jeff Francis (cgps), Chen Wei <> (gegps & xgpsspeed), Robin Wittler <> (xgpsspeed).

This manual page by Eric S. Raymond <>

9 Aug 2004 The GPSD Project