mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-09-09 07:51:59 -09:00
Usually, ubxtool, a python-based tool to drive u-blox devices, connects
to a gpsd instance and delegates to it the responsibility to write to
and read from the actual device. This is sane, because a serial device
can only be opened once, and if gpsd is running, it has that device
open.
However, in some cases, ubxtool can be used to directly talk to the
device, to pre-configure it before gpsd runs, or even in the absence of
gpsd altogether. This is not used very often, except when setting up an
RTK base, where gpsd is not needed.
In that case, ubxtool will directly talk to the serial device. It uses
the pyserial python module. Since this is not the traditional way to
talk to the device, failure to import the module is ignored, and the
error reporting is deferred until it is actually needed, which is why we
did not catch the issue earlier. See [1] and [2].
Fixes: f3ef0723cf (package/gpsd: enable python support and modules)
[1] https://gitlab.com/gpsd/gpsd/-/blob/release-3.25/clients/ubxtool.py.in#L47
[2] https://gitlab.com/gpsd/gpsd/-/blob/release-3.25/gps/gps.py.in#L36
Signed-off-by: Yann E. MORIN <yann.morin@orange.com>
Cc: Bernd Kuhls <bernd@kuhls.net>
[Julien: add link to described code portion]
Signed-off-by: Julien Olivain <ju.o@free.fr>
250 lines
5.1 KiB
Plaintext
250 lines
5.1 KiB
Plaintext
comment "gpsd needs a toolchain w/ threads, dynamic library"
|
|
depends on BR2_USE_MMU
|
|
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
|
|
|
|
menuconfig BR2_PACKAGE_GPSD
|
|
bool "gpsd"
|
|
# Uses fork()
|
|
depends on BR2_USE_MMU
|
|
depends on BR2_TOOLCHAIN_HAS_THREADS
|
|
# Always tries to build a shared library
|
|
depends on !BR2_STATIC_LIBS
|
|
select BR2_PACKAGE_GPSD_CLIENTS if !BR2_PACKAGE_GPSD_DAEMON \
|
|
&& !BR2_PACKAGE_GPSD_PYTHON
|
|
help
|
|
gpsd is a service daemon that monitors one or more GPSes or
|
|
AIS receivers attached to a host computer through serial or
|
|
USB ports, making all data on the location/course/velocity of
|
|
the sensors available to be queried on TCP port 2947 of the
|
|
host computer.
|
|
|
|
The D-Bus interface is included if dbus-glib is enabled.
|
|
|
|
https://gpsd.gitlab.io/gpsd
|
|
|
|
if BR2_PACKAGE_GPSD
|
|
|
|
config BR2_PACKAGE_GPSD_DAEMON
|
|
bool "gpsd daemon"
|
|
default y # legacy
|
|
select BR2_PACKAGE_GPSD_CLIENTS
|
|
help
|
|
Build and install the gpsd daemon itself
|
|
|
|
if BR2_PACKAGE_GPSD_DAEMON
|
|
|
|
config BR2_PACKAGE_GPSD_DEVICES
|
|
string "Where to look for GPSes"
|
|
default "/dev/ttyS1"
|
|
|
|
comment "Features"
|
|
|
|
config BR2_PACKAGE_GPSD_CLIENT_DEBUG
|
|
bool "client debugging support"
|
|
|
|
config BR2_PACKAGE_GPSD_PROFILING
|
|
bool "profiling support"
|
|
depends on BR2_TOOLCHAIN_USES_GLIBC
|
|
depends on !BR2_aarch64
|
|
# Needs glibc for ARC arc-2018.03-eng007+ for correct __mcount linking
|
|
depends on !BR2_arc
|
|
|
|
comment "profiling support not available with uClibc-based toolchain"
|
|
depends on !BR2_TOOLCHAIN_USES_GLIBC
|
|
|
|
config BR2_PACKAGE_GPSD_USER
|
|
bool "GPSD privilege revocation user"
|
|
|
|
config BR2_PACKAGE_GPSD_USER_VALUE
|
|
string "user to run as"
|
|
default "nobody"
|
|
depends on BR2_PACKAGE_GPSD_USER
|
|
|
|
config BR2_PACKAGE_GPSD_GROUP
|
|
bool "GPSD privilege revocation group"
|
|
|
|
config BR2_PACKAGE_GPSD_GROUP_VALUE
|
|
string "group to run as"
|
|
default "nobody"
|
|
depends on BR2_PACKAGE_GPSD_GROUP
|
|
|
|
config BR2_PACKAGE_GPSD_MAX_CLIENT
|
|
bool "compile with limited maximum clients"
|
|
|
|
config BR2_PACKAGE_GPSD_MAX_CLIENT_VALUE
|
|
int "maximum number of clients"
|
|
default "10"
|
|
depends on BR2_PACKAGE_GPSD_MAX_CLIENT
|
|
|
|
config BR2_PACKAGE_GPSD_MAX_DEV
|
|
bool "compile with maximum allowed devices"
|
|
|
|
config BR2_PACKAGE_GPSD_MAX_DEV_VALUE
|
|
int "maximum allowed devices"
|
|
default "2"
|
|
depends on BR2_PACKAGE_GPSD_MAX_DEV
|
|
|
|
config BR2_PACKAGE_GPSD_SQUELCH
|
|
bool "squelch gpsd_report and gpsd_hexdump to save cpu"
|
|
|
|
comment "Protocols"
|
|
|
|
config BR2_PACKAGE_GPSD_AIVDM
|
|
bool "Aivdm"
|
|
help
|
|
Aivdm support
|
|
|
|
config BR2_PACKAGE_GPSD_ASHTECH
|
|
bool "Ashtech"
|
|
help
|
|
Ashtech support
|
|
|
|
config BR2_PACKAGE_GPSD_EARTHMATE
|
|
bool "Earthmate"
|
|
help
|
|
DeLorme EarthMate Zodiac support
|
|
|
|
config BR2_PACKAGE_GPSD_EVERMORE
|
|
bool "EverMore"
|
|
help
|
|
EverMore binary support
|
|
|
|
config BR2_PACKAGE_GPSD_FURY
|
|
bool "Fury"
|
|
help
|
|
Jackson Labs Fury and Firefly support
|
|
|
|
config BR2_PACKAGE_GPSD_FV18
|
|
bool "FV-18"
|
|
help
|
|
San Jose Navigation FV-18 support
|
|
|
|
config BR2_PACKAGE_GPSD_GARMIN
|
|
bool "Garmin (kernel)"
|
|
help
|
|
Garmin kernel driver support
|
|
|
|
config BR2_PACKAGE_GPSD_GARMIN_SIMPLE_TXT
|
|
bool "Garmin (simple text)"
|
|
help
|
|
Garmin Simple Text support
|
|
|
|
config BR2_PACKAGE_GPSD_GEOSTAR
|
|
bool "Geostar"
|
|
help
|
|
Geostar Protocol support
|
|
|
|
config BR2_PACKAGE_GPSD_GPSCLOCK
|
|
bool "GPSClock"
|
|
help
|
|
GPSClock support
|
|
|
|
config BR2_PACKAGE_GPSD_GREIS
|
|
bool "Greis"
|
|
help
|
|
Greis support
|
|
|
|
config BR2_PACKAGE_GPSD_ISYNC
|
|
bool "iSync"
|
|
help
|
|
Spectratime iSync LNRClok/GRCLOK support
|
|
|
|
config BR2_PACKAGE_GPSD_ITRAX
|
|
bool "iTrax"
|
|
help
|
|
iTrax support
|
|
|
|
config BR2_PACKAGE_GPSD_NAVCOM
|
|
bool "Navcom"
|
|
help
|
|
Navcom binary support
|
|
|
|
config BR2_PACKAGE_GPSD_NMEA2000
|
|
bool "NMEA2000"
|
|
select BR2_PACKAGE_GPSD_NAVCOM
|
|
select BR2_PACKAGE_GPSD_AIVDM
|
|
help
|
|
NMEA2000/CAN support
|
|
|
|
config BR2_PACKAGE_GPSD_OCEANSERVER
|
|
bool "OceanServer"
|
|
help
|
|
OceanServer Digital Compass support
|
|
|
|
config BR2_PACKAGE_GPSD_ONCORE
|
|
bool "OnCore"
|
|
help
|
|
OnCore support
|
|
|
|
config BR2_PACKAGE_GPSD_RTCM104V2
|
|
bool "RTCM104 v2"
|
|
help
|
|
RTCM104 v2 support
|
|
|
|
config BR2_PACKAGE_GPSD_RTCM104V3
|
|
bool "RTCM104 v3"
|
|
help
|
|
RTCM104 v3 support
|
|
|
|
config BR2_PACKAGE_GPSD_SIRF
|
|
bool "SiRF"
|
|
help
|
|
SiRF binary support
|
|
|
|
config BR2_PACKAGE_GPSD_SKYTRAQ
|
|
bool "Skytraq"
|
|
help
|
|
Skytraq support
|
|
|
|
config BR2_PACKAGE_GPSD_SUPERSTAR2
|
|
bool "SuperStarII"
|
|
help
|
|
Novatel SuperStarII binary support
|
|
|
|
config BR2_PACKAGE_GPSD_TRIMBLE_TSIP
|
|
bool "Trimble TSIP"
|
|
help
|
|
Trimble TSIP support
|
|
|
|
config BR2_PACKAGE_GPSD_TRIPMATE
|
|
bool "TripMate"
|
|
help
|
|
Delorme TripMate support
|
|
|
|
config BR2_PACKAGE_GPSD_TRUE_NORTH
|
|
bool "True North Technologies"
|
|
help
|
|
True North Technologies support
|
|
|
|
config BR2_PACKAGE_GPSD_UBX
|
|
bool "UBX"
|
|
help
|
|
uBlox UBX binary support
|
|
|
|
endif # GPSD_DAEMON
|
|
|
|
config BR2_PACKAGE_GPSD_CLIENTS
|
|
bool "gpsd clients"
|
|
default y # legacy
|
|
help
|
|
Build and install gspd client programs, like:
|
|
- gpsctl
|
|
- gpsdctl
|
|
- gpsdecode
|
|
- gpspipe
|
|
- ...
|
|
|
|
config BR2_PACKAGE_GPSD_PYTHON
|
|
bool "build Python support and modules"
|
|
depends on BR2_USE_WCHAR # python3
|
|
select BR2_PACKAGE_PYTHON3
|
|
select BR2_PACKAGE_PYTHON_SERIAL # runtime
|
|
help
|
|
Python libraries and tools for the gpsd service daemon
|
|
including gpsfake test harness.
|
|
|
|
comment "python support needs a toolchain w/ wchar"
|
|
depends on !BR2_USE_WCHAR
|
|
|
|
endif
|