### Install NetBSD Build Tools Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs pkgin, sets up the package repository, and installs Python 3.7, curses, and scons on NetBSD 8.1. ```bash # export PKG_PATH=\"http://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/amd64/8.1/All\" # pkg_add -v pkgin # echo http://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/amd64/8.1/All > \ /usr/pkg/etc/pkgin/repositories.conf # pkgin update # pkgin install python37 py37-curses # ln -s /usr/pkg/bin/python3.7 /usr/pkg/bin/python # ln -s /usr/pkg/bin/python3.7 /usr/pkg/bin/python3 # pkgin install py37-scons # pkgin install ncurses ``` -------------------------------- ### Install Homebrew and Dependencies (macOS) Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs Homebrew package manager and then installs scons and asciidoctor using brew. ```bash /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" brew install scons asciidoctor ``` -------------------------------- ### Get CFG-SIGNAL Configuration Items Source: https://gitlab.com/gpsd/gpsd/-/blob/master/www/ubxtool-examples.adoc This example retrieves the current configuration for CFG-SIGNAL items in the RAM layer. It helps in understanding which signals are currently enabled or disabled. ```shell $ ubxtool -g CFG-SIGNAL,0 [...] UBX-CFG-VALGET: version 1 layer 0 position 0 layers (ram) item CFG-SIGNAL-GPS_L1CA_ENA/0x10310001 val 1 item CFG-SIGNAL-GPS_L2C_ENA/0x10310003 val 1 item CFG-SIGNAL-GAL_E1_ENA/0x10310007 val 1 item CFG-SIGNAL-GAL_E5B_ENA/0x1031000a val 1 item CFG-SIGNAL-BDS_B1_ENA/0x1031000d val 1 item CFG-SIGNAL-BDS_B2_ENA/0x1031000e val 0 item CFG-SIGNAL-QZSS_L1CA_ENA/0x10310012 val 1 item CFG-SIGNAL-QZSS_L2C_ENA/0x10310015 val 1 item CFG-SIGNAL-GLO_L1_ENA/0x10310018 val 1 item CFG-SIGNAL-GLO_L2_ENA/0x1031001a val 1 item CFG-SIGNAL-GPS_ENA/0x1031001f val 1 item CFG-SIGNAL-GAL_ENA/0x10310021 val 1 item CFG-SIGNAL-BDS_ENA/0x10310022 val 1 item CFG-SIGNAL-QZSS_ENA/0x10310024 val 1 item CFG-SIGNAL-GLO_ENA/0x10310025 val 1 item CFG-SIGNAL-39/0x10310027 val 1 [...] ``` -------------------------------- ### Minimal C client example Source: https://gitlab.com/gpsd/gpsd/-/blob/master/man/libgps.adoc A basic, fully functional C client example for interacting with gpsd. Refer to other gpsd client sources for more complex examples. ```c #include #include #include #include int main() { struct gps_data_t gps_data; int rc; // Open a connection to the GPSD daemon if (gps_open("localhost", "2947", &gps_data) == -1) { fprintf(stderr, "Failed to open GPSD connection: %s\n", gps_errstr(errno)); return 1; } // Enable JSON reporting gps_stream(&gps_data, WATCH_JSON, NULL); printf("Waiting for GPS data...\n"); // Loop to receive and process data while (1) { // Wait for data, with a timeout of 1 second if (gps_waiting(&gps_data, 1000000)) { // Read data from GPSD if (gps_read(&gps_data, NULL, NULL) == -1) { fprintf(stderr, "Error reading GPS data: %s\n", gps_errstr(errno)); break; // Exit loop on error } // Check if we have a valid fix if (gps_data.set.gps_fix != 0) { printf("Time: %f, Latitude: %f, Longitude: %f, Altitude: %f\n", gps_data.fix.time, gps_data.fix.latitude, gps_data.fix.longitude, gps_data.fix.altitude); } } else { // Timeout occurred, no data received printf("No data received, continuing to wait...\n"); } } // Close the connection to GPSD gps_close(&gps_data); return 0; } ``` -------------------------------- ### Install Git Core Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs git-core, which is required to build from a git repository. ```bash # apt-get install git-core ``` -------------------------------- ### Run gpsd with scons install Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Example of how to run gpsd after a minimal installation using 'scons install'. Use your GPS receiver's device file. ```bash gpsd -n /dev/ttyACM0 ``` -------------------------------- ### Install Git, Build Tools, and Man Pages Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs essential tools for building from source and accessing man pages. ```bash # apt-get install git-core # apt-get install build-essential manpages-dev pkg-config ``` -------------------------------- ### Clone, Build, and Install gpsd from Source Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Clones the gpsd repository, builds the software, runs checks, and installs it. ```bash # git clone https://gitlab.com/gpsd/gpsd.git # cd gpsd # scons -c && scons && scons check && scons install ``` -------------------------------- ### Build and Install GPSD (Linux) Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Compiles the GPSD project using scons and then installs it. ```bash scons scons install ``` -------------------------------- ### Install Qt Core and Network (Linux) Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs Qt core and network modules for building a Qt compatible library. ```bash emerge --noreplace dev-qt/qtcore dev-qt/qtnetwork ``` -------------------------------- ### Install Optional PPS Tools (Linux) Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs pps-tools for improved timing support, if needed. ```bash emerge --noreplace net-misc/pps-tools ``` -------------------------------- ### Install Optional Bluez (Linux) Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs bluez for Bluetooth GPS device support. ```bash emerge --noreplace net-wireless/bluez ``` -------------------------------- ### Install Dependencies and Build gpsd on OpenBSD (Alternative) Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs scons and git, creates a python link, and then proceeds with cloning and building gpsd. ```bash # syspatch -c # syspatch # pkg_add -u # pkg_add scons # pkg_add git # ln -s /usr/local/bin/python2 /usr/local/bin/python # git clone https://gitlab.com/gpsd/gpsd.git # cd gpsd # scons --config=force && scons install ``` -------------------------------- ### Install D-Bus Support (Linux) Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs D-Bus support, a prerequisite for certain functionalities. ```bash emerge --noreplace sys-apps/dbus ``` -------------------------------- ### Install BC for Scons Check (Linux) Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs the 'bc' utility, which is required by 'scons check'. ```bash emerge --noreplace sys-devel/bc ``` -------------------------------- ### Install GTK3 Development Files Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs development files for GTK3, required for running xgps and xgpsspeed. ```bash # apt-get install python-gi-dev # apt-get install libgtk-3-dev ``` -------------------------------- ### Install Jessie Dependencies Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs necessary packages for building gpsd on Jessie. ```bash # apt-get install scons libncurses5-dev python3 pps-tools # apt-get install git-core ``` -------------------------------- ### DEVICES Object Example Source: https://gitlab.com/gpsd/gpsd/-/blob/master/man/gpsd_json.adoc Example of a DEVICES object, listing available GPS devices and their drivers. ```json {"class"="DEVICES","devices":[ {"class":"DEVICE","path":"/dev/pts/1","flags":1,"driver":"SiRF binary"}, {"class":"DEVICE","path":"/dev/pts/3","flags":4,"driver":"AIVDM"}]} ``` -------------------------------- ### Install Optional Asciidoctor (Linux) Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs asciidoctor for building man pages and HTML documentation. ```bash emerge --noreplace dev-ruby/asciidoctor ``` -------------------------------- ### Install Asciidoctor for Documentation Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs asciidoctor, a tool required for building gpsd documentation. ```bash apt-get install asciidoctor ``` -------------------------------- ### Build and Install gpsd from Source (Buster) Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Builds and installs gpsd from source, forcing configuration if necessary. ```bash # git clone https://gitlab.com/gpsd/gpsd.git # cd gpsd # scons --config=force && scons install ``` -------------------------------- ### Install D-Bus Development Files Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs development files for D-Bus, enabling optional D-Bus connectivity for gpsd. ```bash # apt-get install libdbus-1-dev ``` -------------------------------- ### Install Optional Ncurses (Linux) Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs ncurses for cgps and gpsmon utilities. ```bash emerge --noreplace sys-libs/ncurses ``` -------------------------------- ### Install Optional LibUSB (Linux) Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs libusb for Garmin USB device support. ```bash emerge --noreplace virtual/libusb ``` -------------------------------- ### Install Core Build Tools (Linux) Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs essential build tools like scons and git using the emerge package manager. ```bash emerge --noreplace dev-build/scons dev-vcs/git ``` -------------------------------- ### Install Debian Archive Keyring Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs the debian-archive-keyring package to resolve GPG key errors when adding backports repositories. ```bash # apt-get install debian-archive-keyring ``` -------------------------------- ### Install Optional PyGObject and PyCairo (Linux) Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs pygobject and pycairo for xgps and xgpsspeed utilities on desktop systems. ```bash emerge --noreplace dev-python/pygobject dev-python/pycairo ``` -------------------------------- ### VERSION Object Example Source: https://gitlab.com/gpsd/gpsd/-/blob/master/man/gpsd_json.adoc Example of a VERSION object, reporting the gpsd daemon's release and API version. ```json {"class":"VERSION","version":"2.40dev", "rev":"06f62e14eae9886cde907dae61c124c53eb1101f", "proto_major":3,"proto_minor":1 } ``` -------------------------------- ### Install Documentation Build Tool Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs asciidoctor, a tool required for building gpsd documentation, which is a prerequisite for generating website HTML and source tarballs. ```bash apt install asciidoctor ``` -------------------------------- ### GPGSP Command Example Source: https://gitlab.com/gpsd/gpsd/-/blob/master/www/replacing-nmea.adoc Example of a $GPGSP command to direct the receiver to emit specific sentences or return to NMEA-classic mode. ```nmea $GPGSP,1*4E ``` -------------------------------- ### Install libusb for Garmin Devices Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs libusb development files, required for some older Garmin USB devices. ```bash # apt-get install libusb-1.0-0-dev ``` -------------------------------- ### TOFF Object Example Source: https://gitlab.com/gpsd/gpsd/-/blob/master/man/gpsd_json.adoc Example of a TOFF (Timestamp Offset) object, reporting the difference between GPS time and system clock time at the start of a reporting cycle. Useful for understanding time synchronization. ```json {"class":"TOFF","device":"/dev/ttyUSB0", "real_sec":1330212592, "real_nsec":343182, "clock_sec":1330212592,"clock_nsec":343184, "precision":-2} ``` -------------------------------- ### Quick Start Build Commands Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc These commands are for building GPSD on Linux assuming all prerequisites are met. Run these as root. ```bash su - tar -xzf gpsd-X.YY.tar.gz cd gpsd-X.YY scons && scons check ``` ```bash # if that passes, and you want udev support, not recommended: scons udev-install ``` -------------------------------- ### Compile and Run gpsd Client Source: https://gitlab.com/gpsd/gpsd/-/blob/master/www/gpsd-client-example-code.adoc Demonstrates how to download, compile, and run a basic C client for gpsd. This example connects to localhost on the default port and prints fix data. Use Ctrl+C to exit. ```bash $ wget -o example1.c https://gpsd.io/example1.c.txt $ gcc example1.c -o example1 -lgps -lm $ ./example1 Fix mode: 3D (3) Time: 1615325173.000000000 Lat 44.068861 Lon -121.314085 Fix mode: 3D (3) Time: 1615325174.000000000 Lat 44.068861 Lon -121.314085 Fix mode: 3D (3) Time: 1615325175.000000000 Lat 44.068861 Lon -121.314085 ^C ``` -------------------------------- ### Start gpsd and ntpd Source: https://gitlab.com/gpsd/gpsd/-/blob/master/www/gpsd-time-service-howto.adoc Sequence to start gpsd and ntpd for time synchronization. Ensure gpsd starts before ntpd for optimal clock resynchronization. ```bash # killall -9 gpsd ntpd # gpsd -n /dev/ttyXX # sleep 2 # ntpd -gN # sleep 2 # cgps ``` -------------------------------- ### DPT Example Source: https://gitlab.com/gpsd/gpsd/-/blob/master/www/NMEA.adoc Example of a Depth of Water sentence. ```nmea $INDPT,2.3,0.0*46 ``` -------------------------------- ### Display gpsinit help message Source: https://gitlab.com/gpsd/gpsd/-/blob/master/man/gpsinit.adoc Shows a brief help text outlining the available options for the gpsinit command. ```bash gpsinit -h ``` -------------------------------- ### Check for gpsd packages on Debian Bullseye Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Command to query installed gpsd and libgps packages. Used to ensure no conflicting gpsd installations exist before installing from source. ```bash # dpkg-query -l libgps* gpsd* ``` -------------------------------- ### Prepare Source Directory and Build GPSD (macOS) Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Creates a source directory, clones GPSD, and builds/installs it using scons. ```bash # mkdir -p /usr/local/src/GPS # cd /usr/local/src/GPS # git clone https://gitlab.com/gpsd/gpsd.git # cd gpsd # scons && scons install ``` -------------------------------- ### Build and Install gpsd on Debian Trixie Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc A comprehensive script to install prerequisites, clone, compile, and check gpsd on Debian Trixie. It assumes a fresh netinst installation. ```bash #! /bin/bash # A script to pull in the prerequisites for gpsd, pull it in, compile # and exercise it. This script works on Debian Trixie as of May 12, # 2025. As Trixie has not been released, it is a moving target. # One thing this script does not do is check for and/or purge any # Debian packages. We assume this is a freshly built system. Run # "dpkg-query -l libgps* gpsd*" to see if there are any installed, and # "apt purge" them. # The location of the build directory. We will cd to this directory, # pull in the gpsd git repo, and then cd to the repo. devel=~/versioned apt update apt upgrade # expect to be asked for approval. # We take a kitchen sink approach to installing tools. If you want to # pare down the installation, you can remove packages from this # list. # Gtk3 is only required to run xgps and xgpsspeed. You do not need a # local X11 server installed, but it still pulls in a lot of packages. # Ubxtool and zerk may optionally use the pyserial module for direct # connection to the GNSS receiver. # gpsplot uses matplotlib, which is in the package python3-matplotlib. # pps-tools is for PPS timing. # The documentation, including the web site, requires ascidoctor. # manpages-dev is required for the man pages. # Not included here: libusb-1.0-0-dev, for some very old Garmin USB devices. # Everything else is required for a minimal build. apt install -y asciidoctor build-essential gcc git libgtk-3-dev libncurses-dev \ manpages-dev pkg-config pps-tools python-is-python3 python-gi-dev \ python3-cairo-dev python3-gi-cairo python3-matplotlib python3-serial scons mkdir -p $devel # shellcheck disable=SC3044 cd $devel || { printf "Cd to %s failed.\n" $devel; exit 1;} if [ ! -d gpsd ] ; then git clone https://gitlab.com/gpsd/gpsd.git cd gpsd || { printf "cd to %s failed.\n" $devel/gpsd; exit 1;} else cd gpsd || { printf "cd to %s failed.\n" $devel/gpsd; exit 1;} git pull fi PYTHONPATH="$PYTHONPATH:/usr/local/lib/python3.13/dist-packages/" scons -c && scons && scons check # && scons install && scons udev-install echo "\$PYTHONPATH" is "$PYTHONPATH" if [ -d /etc/default ] && [ ! -e /etc/default/gpsd ] ; then cat > /etc/default/gpsd << DEFAULT # Devices gpsd should collect to at boot time. # They need to be read/writeable, either by user gpsd or the group dialout. DEVICES="" # Other options you want to pass to gpsd # GPSD_OPTIONS="" GPSD_OPTIONS="--listenany" # Automatically hot add/remove USB GPS devices via gpsdctl USBAUTO="true" DEFAULT fi printf "Enable listening on all interfaces in gpsd.socket if you want.\n"; ``` -------------------------------- ### Main Program Entry Point Source: https://gitlab.com/gpsd/gpsd/-/blob/master/www/internals.adoc Initializes mutexes if 1PPS is compiled in, processes command-line options, and sets up the program for execution. Reads options to control internal variables and program behavior. ```c int main(int argc, char *argv[]) ``` -------------------------------- ### Install Matplotlib for gpsplot Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs matplotlib, a dependency for the gpsplot program. ```bash # apt install python3-matplotlib ``` -------------------------------- ### Install Optional Matplotlib (Linux) Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs matplotlib for the gpsplot utility. ```bash emerge --noreplace dev-python/matplotlib ``` -------------------------------- ### ntpshmmon Sample Report Example Source: https://gitlab.com/gpsd/gpsd/-/blob/master/man/ntpshmmon.adoc This is an example of the beginning of a report file generated by ntpshmmon. It shows the version header followed by sample lines with various time synchronization data. ```text ntpshmmon version 3.18 # Name Seen@ Clock Real L Pre sample NTP2 1424926256.443030206 1424926256.115869233 1424926256.000000000 0 -1 sample NTP3 1424926256.443060517 1424926255.995430821 1424926256.000000000 0 -20 sample NTP3 1424926256.995747347 1424926256.995422728 1424926257.000000000 0 -20 sample NTP2 1424926257.112433572 1424926257.111936726 1424926257.000000000 0 -1 sample NTP3 1424926257.996221153 1424926257.995410232 1424926258.000000000 0 -20 sample NTP2 1424926258.107769409 1424926258.107451006 1424926258.000000000 0 -1 sample NTP3 1424926258.995647636 1424926258.995406476 1424926259.000000000 0 -20 ``` -------------------------------- ### GBS Example Source: https://gitlab.com/gpsd/gpsd/-/blob/master/www/NMEA.adoc Example of a GPS Satellite Fault Detection sentence. ```nmea $GPGBS,125027,23.43,M,13.91,M,34.01,M*07 ``` -------------------------------- ### Remove Existing gpsd Installation Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Stop the gpsd socket, disable it, and purge existing gpsd packages to ensure a clean installation. Some commands may report errors if gpsd is not installed. ```bash $ sudo su - # systemctl stop gpsd.socket # systemctl disable gpsd.socket # apt purge gpsd gpsd-clients gpsd-tools ``` -------------------------------- ### Prepare Source Directory (Linux) Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Creates a directory and navigates into it to store the GPSD source code. ```bash mkdir -p /usr/local/src/GPSD cd /usr/local/src/GPSD ``` -------------------------------- ### xgps Help Option Source: https://gitlab.com/gpsd/gpsd/-/blob/master/man/xgps.adoc Displays a summary of available options and exits. ```bash xgps -? or xgps -h or xgps --help ``` -------------------------------- ### GGA Example Source: https://gitlab.com/gpsd/gpsd/-/blob/master/www/NMEA.adoc Example of a Global Positioning System Fix Data sentence. ```nmea $GNGGA,001043.00,4404.14036,N,12118.85961,W,1,12,0.98,1113.0,M,-21.3,M*47 ``` -------------------------------- ### DTM Example Source: https://gitlab.com/gpsd/gpsd/-/blob/master/www/NMEA.adoc Example of a Datum Reference sentence using the WGS84 datum. ```nmea $GPDTM,W84,C*52 ``` -------------------------------- ### Install FreeBSD Build Tools Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs scons and git using the FreeBSD pkg command. Also includes commands to create Python symbolic links required by PEP394. ```bash # pkg install scons # pkg install git # ln -s /usr/local/bin/python2.7 /usr/local/bin/python # ln -s /usr/local/bin/python2.7 /usr/local/bin/python2 # ln -s /usr/local/bin/python3.6 /usr/local/bin/python3 # git clone https://gitlab.com/gpsd/gpsd.git # cd gpsd # scons --config=force && scons install ``` -------------------------------- ### Display gpsinit version Source: https://gitlab.com/gpsd/gpsd/-/blob/master/man/gpsinit.adoc Prints the version information for the gpsinit utility. ```bash gpsinit -v ``` -------------------------------- ### Install Optional PySerial (Linux) Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs pyserial for ubxtool and serial port support. ```bash emerge --noreplace dev-python/pyserial ``` -------------------------------- ### Install Dependencies and Build gpsd on OpenBSD Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs necessary packages like openssl, mozilla-rootcerts, and git, then clones and builds the gpsd project using scons. ```bash # pkgin install openssl mozilla-rootcerts # mozilla-rootcerts install # pkgin install git # git clone https://gitlab.com/gpsd/gpsd.git # cd gpsd # scons --config=force && scons install ``` -------------------------------- ### Example ?WATCH Command with JSON Source: https://gitlab.com/gpsd/gpsd/-/blob/master/www/protocol-evolution.adoc This command illustrates the new JSON-based protocol, allowing clients to specify message classes and receive reports from all devices. It demonstrates streaming all reports, setting raw mode, and dumping as pseudo-NMEA. ```text ?WATCH={"raw":true, nmea:true} ``` -------------------------------- ### Install scons from Backports Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs the scons build tool version 2.3.0 or higher from the wheezy-backports repository. ```bash apt-get -t wheezy-backports install scons ``` -------------------------------- ### Install Python 2 GTK3 and Cairo Development Files (Buster) Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs development files for Python 2 GTK3 and Cairo, required for xgps and xgpsspeed. ```bash # apt-get install python-gi-dev python-cairo-dev # apt-get install python-gobject-2-dev libgtk-3-dev ``` -------------------------------- ### Start gpsd and chrony services Source: https://gitlab.com/gpsd/gpsd/-/blob/master/www/gpsd-time-service-howto.adoc Preferred startup procedure when running as root. Ensures chronyd is running before gpsd and includes a brief sleep to allow services to initialize. ```shell $ su - # killall -9 gpsd chronyd # chronyd -f /etc/chrony/chrony.conf # sleep 2 # gpsd -n /dev/ttyXX # sleep 2 # cgps ``` -------------------------------- ### Install Python Serial Module (Buster) Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs the pyserial module for direct connection to GNSS receivers. ```bash # apt-get install python-serial ``` -------------------------------- ### Install MacPorts Dependencies (macOS) Source: https://gitlab.com/gpsd/gpsd/-/blob/master/build.adoc Installs scons, git, and asciidoctor using the MacPorts package manager. ```bash # port install scons # port install git # port install asciidoctor ``` -------------------------------- ### OSC Object Example Source: https://gitlab.com/gpsd/gpsd/-/blob/master/man/gpsd_json.adoc Example of an OSC (Oscillator) object, indicating the status of a disciplined local oscillator. ```json {"class":"OSC","running":true,"device":"/dev/ttyUSB0", "reference":true,"disciplined":true,"delta":67} ``` -------------------------------- ### gpxlogger command-line options Source: https://gitlab.com/gpsd/gpsd/-/blob/master/man/gpxlogger.adoc Displays help information and exits. Use this to see all available options and their descriptions. ```bash gpxlogger -h ``` -------------------------------- ### Start gpsd for a specific serial device Source: https://gitlab.com/gpsd/gpsd/-/blob/master/man/gpsd.adoc Use this command as root to start the gpsd daemon, specifying the serial port device (e.g., /dev/ttyUSB0) to which the GPS receiver is connected. This is a common quick start method for Linux systems. ```bash # gpsd /dev/ttyUSB0 ```