Files
buildroot/package/gpsd/Config.in
Yann E. MORIN 5d2f3737a1 package/gpsd: python support needs pyserial
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>
2025-01-10 18:49:45 +01:00

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