Scroll to navigation



gpxlogger - Tool to connect to gpsd and generate a GPX file


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


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 written for an interval specified by the -i and defaulting to 5 seconds.

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.


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

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

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

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.

The -r option tells gpxlogger to retry when GPSd loses the fix. Without -r, gpxlogger would quit in this case.

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.

The sockets default is to all devices on the 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.


gpsd(8), gps(1) gpspipe(1)


Amaury Jacquot <> & Petter Reinholdtsen <> & Chris Kuethe <>
05 Mar 2017 The GPSD Project