summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Klug <john.klug@multitech.com>2019-05-03 17:35:19 -0500
committerJohn Klug <john.klug@multitech.com>2019-07-03 17:08:20 -0500
commitb66515c9c2bb51936823a1d2664ba171fe77c7b2 (patch)
tree46b4eccd90349db58453415d290d8df64e4416d1
parentf337d0df1d26d8afc589491898854972b962a53b (diff)
downloadmeta-mlinux-b66515c9c2bb51936823a1d2664ba171fe77c7b2.tar.gz
meta-mlinux-b66515c9c2bb51936823a1d2664ba171fe77c7b2.tar.bz2
meta-mlinux-b66515c9c2bb51936823a1d2664ba171fe77c7b2.zip
Copy gpsd-3.16 from mLinux 4.1.9 for better gps initialization
-rw-r--r--conf/distro/mlinux.conf4
-rw-r--r--recipes-core/images/mlinux-factory-image.bb2
-rw-r--r--recipes-core/images/mlinux-mtrv1-image.bb2
-rwxr-xr-xrecipes-navigation/gpsd/gpsd/gpsd12
-rw-r--r--recipes-navigation/gpsd/gpsd/gpsd-default72
-rw-r--r--recipes-navigation/gpsd/gpsd_3.16.bb51
-rw-r--r--recipes-navigation/gpsd/gpsd_3.18.1.bb.save (renamed from recipes-navigation/gpsd/gpsd_3.18.1.bb)0
-rw-r--r--recipes-navigation/gpsd/libgps24_3.18.1.bb142
8 files changed, 211 insertions, 74 deletions
diff --git a/conf/distro/mlinux.conf b/conf/distro/mlinux.conf
index d4b1318..73c5865 100644
--- a/conf/distro/mlinux.conf
+++ b/conf/distro/mlinux.conf
@@ -1,7 +1,7 @@
DISTRO = "mlinux"
DISTRO_NAME = "mLinux"
DISTRO_BASE_VERSION = "5.0"
-DISTRO_VERSION = "${DISTRO_BASE_VERSION}.0dev31"
+DISTRO_VERSION = "${DISTRO_BASE_VERSION}.0dev32"
DISTRO_CODENAME = ""
SDK_VENDOR = "-mlinux"
SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}"
@@ -72,4 +72,4 @@ require java.inc
PREFERRED_VERSION_nodejs ?= "0.10.%"
PREFERRED_VERSION_nodejs-native ?= "0.10.%"
-PREFERRED_VERSION_gpsd ?= "3.18.1"
+PREFERRED_VERSION_gpsd ?= "3.16"
diff --git a/recipes-core/images/mlinux-factory-image.bb b/recipes-core/images/mlinux-factory-image.bb
index 37a6533..a20e64b 100644
--- a/recipes-core/images/mlinux-factory-image.bb
+++ b/recipes-core/images/mlinux-factory-image.bb
@@ -92,6 +92,6 @@ IMAGE_INSTALL += "pps-tools"
IMAGE_INSTALL += "dnsmasq bluez5-pand bluez5-rfcomm"
# When ntp is to use the GPS, gps-utils is required
-IMAGE_INSTALL += "gpsd libgps ntp ntp-utils gpspipe gps-utils"
+IMAGE_INSTALL += "gpsd libgps24 libgps ntp ntp-utils gpspipe gps-utils"
IMAGE_INSTALL += "lxfp uvccapture"
diff --git a/recipes-core/images/mlinux-mtrv1-image.bb b/recipes-core/images/mlinux-mtrv1-image.bb
index ab5c30b..3c10593 100644
--- a/recipes-core/images/mlinux-mtrv1-image.bb
+++ b/recipes-core/images/mlinux-mtrv1-image.bb
@@ -60,7 +60,7 @@ MISC_FEATURES = "minicom lrzsz nano"
# Extra stuff to install
IMAGE_INSTALL += "kernel-module-rs9113 rs9113-util rs9113-autostart"
-IMAGE_INSTALL += "gpsd libgps ntp ntp-utils gpspipe gps-utils"
+IMAGE_INSTALL += "gpsd libgps libgps24 ntp ntp-utils gpspipe gps-utils"
IMAGE_INSTALL += " \
${WIFI_FEATURES} \
diff --git a/recipes-navigation/gpsd/gpsd/gpsd b/recipes-navigation/gpsd/gpsd/gpsd
index 95e2a84..3f93442 100755
--- a/recipes-navigation/gpsd/gpsd/gpsd
+++ b/recipes-navigation/gpsd/gpsd/gpsd
@@ -51,13 +51,13 @@ fi
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
-#if [ -z "$GPSD_SOCKET" ] && [ -z "$GPS_DEVICES" ]; then
-# GPSD_SOCKET=/var/run/gpsd.sock
-#fi
+if [ -z "$GPSD_SOCKET" ] && [ -z "$GPS_DEVICES" ]; then
+ GPSD_SOCKET=/var/run/gpsd.sock
+fi
-#if [ -n "$GPSD_SOCKET" ]; then
-# GPSD_OPTIONS="$GPSD_OPTIONS -F $GPSD_SOCKET"
-#fi
+if [ -n "$GPSD_SOCKET" ]; then
+ GPSD_OPTIONS="$GPSD_OPTIONS -F $GPSD_SOCKET"
+fi
#
# Function that starts the daemon/service
diff --git a/recipes-navigation/gpsd/gpsd/gpsd-default b/recipes-navigation/gpsd/gpsd/gpsd-default
index 46c64a3..7dd5372 100644
--- a/recipes-navigation/gpsd/gpsd/gpsd-default
+++ b/recipes-navigation/gpsd/gpsd/gpsd-default
@@ -1,6 +1,8 @@
ENABLED="yes"
-#GPSD_SOCKET="/var/run/gpsd.sock"
-GPSD_SOCKET=""
+
+# GPSD control socket for sending GPSD commands.
+# GPSD_SOCKET="/var/run/gpsd.sock"
+
GPSD_OPTIONS="-n -D 1"
# Conduit 0.1 GPS devices
@@ -51,62 +53,16 @@ GPSFIX="3"
#
function SET_GPS_SPEED {
if [[ $(cat /run/config/gpstype) == u-blox ]] ; then
- logger -st gpsd -p daemon.info "Attempting to set baud rate to ${GPS_BAUD}"
- out=$(gpsctl -T 20 -t u-blox -s $GPS_BAUD -b -f $GPS_LINE)
- rslt=$?
- if ((rslt == 0)) && [[ $out =~ ${GPS_BAUD}[[:space:]]baud\. ]] ; then
- logger -st gpsd -p daemon.info "GPS serial port speed is $GPS_BAUD."
- return 0
- fi
-
- if ((rslt != 0)) ; then
- logger -st gpsd -p daemon.warning "Unable to set read the GPS, try again."
- speed=$(stty -F $GPS_LINE)
- if ((speed == GPS_BAUD)) ; then
- stty -F $GPS_LINE 9600
- else
- stty -F $GPS_LINE 115200
- fi
- fi
-
- out=$(gpsctl -T 20 -t u-blox -s $GPS_BAUD -b -f $GPS_LINE)
- rslt=$?
- if ((rslt == 0)) && [[ $out =~ ${GPS_BAUD}[[:space:]]baud\. ]] ; then
- logger -st gpsd -p daemon.info "GPS serial port speed is $GPS_BAUD."
- return 0
- fi
-
- if ((rslt != 0)) ; then
- speed=$(stty -F $GPS_LINE)
- if ((speed == GPS_BAUD)) ; then
- stty -F $GPS_LINE 9600
- else
- stty -F $GPS_LINE ${GPS_BAUD}
- fi
- fi
-
- out=$(gpsctl -T 20 -t u-blox -s $GPS_BAUD -b -f $GPS_LINE)
- rslt=$?
- if ((rslt == 0)) && [[ $out =~ ${GPS_BAUD}[[:space:]]baud\. ]] ; then
- logger -st gpsd -p daemon.info "GPS serial port speed is $GPS_BAUD."
- return 0
- fi
-
- if ((rslt != 0)) ; then
- speed=$(stty -F $GPS_LINE)
- if ((speed == GPS_BAUD)) ; then
- stty -F $GPS_LINE 9600
- else
- stty -F $GPS_LINE ${GPS_BAUD}
- fi
- fi
- out=$(gpsctl -T 20 -t u-blox -s $GPS_BAUD -b -f $GPS_LINE)
- rslt=$?
- if ((rslt == 0)) && [[ $out =~ ${GPS_BAUD}[[:space:]]baud\. ]] ; then
- logger -st gpsd -p daemon.info "GPS serial port speed is $GPS_BAUD."
- return 0
- fi
- logger -st gpsd -p daemon.err "Cannot set GPS serial port speed, speed is $GPS_BAUD."
+ # Set the baud rate. Works better with ntp at a higher baud rate.
+ if ! gpsctl -T 20 -t 'u-blox' -s $GPS_BAUD -b -f $GPS_LINE ; then
+ echo 'WARNING: Unable to set GPS serial port speed.'
+ else
+ # The next line is needed due to a bug in gpsctl.
+ # We will go back to the default baud rate if we don't do this step.
+ echo Expect a timeout error here. Need this error.
+ gpsctl -T 2 -f $GPS_LINE
+ stty -F $GPS_LINE $GPS_BAUD
+ fi
fi # End of U-Blox GPS type
}
diff --git a/recipes-navigation/gpsd/gpsd_3.16.bb b/recipes-navigation/gpsd/gpsd_3.16.bb
index 56fd8e4..35719aa 100644
--- a/recipes-navigation/gpsd/gpsd_3.16.bb
+++ b/recipes-navigation/gpsd/gpsd_3.16.bb
@@ -4,7 +4,7 @@ LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://COPYING;md5=d217a23f408e91c94359447735bc1800"
DEPENDS = "dbus dbus-glib ncurses python libusb1 chrpath-replacement-native pps-tools"
PROVIDES = "virtual/gpsd"
-PR="m9"
+PR="m12"
EXTRANATIVEPATH += "chrpath-native"
@@ -60,8 +60,33 @@ EXTRA_OESCONS = " \
chrpath='yes' \
systemd='${SYSTEMD_OESCONS}' \
libdir='${libdir}' \
+ ashtech='no' \
+ earthmate='no' \
+ evermore='no' \
+ fury='no' \
+ fv18='no' \
+ garmin='no' \
+ garmintxt='no' \
+ geostar='no' \
+ greis='no' \
+ itrax='no' \
+ mtk3301='no' \
+ navcom='no' \
+ nmea0183='yes' \
+ nmea2000='no' \
+ oncore='no' \
+ sirf='no' \
+ skytraq='yes' \
+ superstar2='no' \
+ tnt='no' \
+ tripmate='no' \
+ tsip='no' \
ublox='yes' \
ubloxtimels='yes' \
+ aivdm='no' \
+ gpsclock='no' \
+ oceanserver='no' \
+ fixed_stop_bits='1' \
pps='yes' \
gpsd_group='gps' \
ntpshm='yes' \
@@ -123,6 +148,10 @@ do_install_append() {
install -m 0644 ${S}/ppsthread.h ${D}/${includedir}/gps
}
+# Use libgps recipe for sysroot.
+do_populate_sysroot() {
+}
+
RDEPENDS_${PN}-conf += "bash"
pkg_postinst_${PN}-conf() {
@@ -133,18 +162,18 @@ pkg_postrm_${PN}-conf() {
update-alternatives --remove gpsd-defaults ${sysconfdir}/default/gpsd.default
}
-PACKAGES =+ "libgps libgpsd python-pygps-dbg python-pygps gpsd-udev gpsd-conf gpsd-gpsctl gps-utils"
+PACKAGES =+ "libgps libgpsd python-pygps-dbg python-pygps gpsd-udev gpsd-conf gpsd-gpsctl gpspipe gps-utils"
# File does not exist: ${libdir}/libQgpsmm.prl
-FILES_${PN}-dev += "${libdir}/pkgconfdir/libgpsd.pc ${libdir}/pkgconfdir/libgps.pc \
- ${includedir}/gps.h ${includedir}/libgpsmm.h ${includedir}/gps"
+# FILES_${PN}-dev += "${libdir}/pkgconfdir/libgpsd.pc ${libdir}/pkgconfdir/libgps.pc \
+# ${includedir}/gps.h ${includedir}/libgpsmm.h ${includedir}/gps"
FILES_${PN} += "${sbindir}/gpsd_ubx_fixed ${sbindir}/gpsd_ubx_settime"
FILES_python-pygps-dbg += " ${libdir}/python*/site-packages/gps/.debug"
RDEPENDS_${PN} = "gpsd-gpsctl bash"
-RRECOMMENDS_${PN} = "gpsd-conf gpsd-udev gpsd-machine-conf"
+RRECOMMENDS_${PN} = "gpsd-conf gpsd-machine-conf"
SUMMARY_${PN}-udev = "udev relevant files to use gpsd hotplugging"
FILES_${PN}-udev = "${base_libdir}/udev ${sysconfdir}/udev/*"
@@ -163,13 +192,23 @@ CONFFILES_${PN}-conf = "${sysconfdir}/default/gpsd.default"
SUMMARY_${PN}-gpsctl = "Tool for tweaking GPS modes"
FILES_${PN}-gpsctl = "${bindir}/gpsctl"
+SUMMARY_gpspipe = "Tool to connectg to gpsd and retrieve sentences"
+FILES_gpspipe = "${bindir}/gpspipe"
+
SUMMARY_gps-utils = "Utils used for simulating, monitoring,... a GPS"
FILES_gps-utils = "${bindir}/*"
RDEPENDS_gps-utils = "python-pygps"
SUMMARY_python-pygps = "Python bindings to gpsd"
FILES_python-pygps = "${PYTHON_SITEPACKAGES_DIR}/*"
-RDEPENDS_python-pygps = "python-core python-curses gpsd python-json"
+RDEPENDS_python-pygps = " \
+ python-core \
+ python-io \
+ python-threading \
+ python-terminal \
+ python-curses \
+ gpsd \
+ python-json"
RPROVIDES_${PN} += "${PN}-systemd"
RREPLACES_${PN} += "${PN}-systemd"
diff --git a/recipes-navigation/gpsd/gpsd_3.18.1.bb b/recipes-navigation/gpsd/gpsd_3.18.1.bb.save
index bbc1f88..bbc1f88 100644
--- a/recipes-navigation/gpsd/gpsd_3.18.1.bb
+++ b/recipes-navigation/gpsd/gpsd_3.18.1.bb.save
diff --git a/recipes-navigation/gpsd/libgps24_3.18.1.bb b/recipes-navigation/gpsd/libgps24_3.18.1.bb
new file mode 100644
index 0000000..8f1b811
--- /dev/null
+++ b/recipes-navigation/gpsd/libgps24_3.18.1.bb
@@ -0,0 +1,142 @@
+SUMMARY = "A TCP/IP Daemon simplifying the communication with GPS devices"
+SECTION = "console/network"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d217a23f408e91c94359447735bc1800"
+DEPENDS = "dbus dbus-glib ncurses python libusb1 chrpath-replacement-native pps-tools"
+PROVIDES = "${PN} ${PN}-dbg ${PN}-dev"
+PR="m5"
+#BPN="gpsd"
+#BP="${BPN}-${PV}"
+
+EXTRANATIVEPATH += "chrpath-native"
+FILESEXTRAPATHS_prepend = "${THISDIR}/gpsd-${PV}:"
+# sysclockcrash is fixed for gpsd
+# suppress text in binary is fixed for gpsctl
+
+S = "${WORKDIR}/gpsd-${PV}"
+
+SRC_URI = "${SAVANNAH_GNU_MIRROR}/gpsd/gpsd-${PV}.tar.gz \
+ file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch \
+ file://0004-SConstruct-disable-html-and-man-docs-building-becaus.patch \
+ file://0001-include-sys-ttydefaults.h.patch \
+ file://0006-ubxtimelps.patch \
+ file://0006-itu_r_tf_460_6.patch \
+"
+SRC_URI[md5sum] = "3b11f26b295010666b1767b308f90bc5"
+SRC_URI[sha256sum] = "5cb1e6d880ec9a52c62492dd0e3d77451b7c7ad625895bd652f6354215aec23e"
+
+inherit scons python-dir pythonnative systemd
+
+SYSTEMD_OESCONS = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false',d)}"
+
+export STAGING_INCDIR
+export STAGING_LIBDIR
+
+# Necessary for python
+export BUILD_SYS
+export HOST_SYS
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)}"
+PACKAGECONFIG[bluez] = "bluez='false',${BLUEZ}"
+PACKAGECONFIG[qt] = "qt='yes',qt='no',qt4-x11-free"
+EXTRA_OESCONS = " \
+ sysroot=${STAGING_DIR_TARGET} \
+ libQgpsmm='false' \
+ debug='true' \
+ strip='false' \
+ chrpath='yes' \
+ systemd='${SYSTEMD_OESCONS}' \
+ ashtech='no' \
+ earthmate='no' \
+ evermore='no' \
+ fury='no' \
+ fv18='no' \
+ garmin='no' \
+ garmintxt='no' \
+ geostar='no' \
+ greis='no' \
+ itrax='no' \
+ mtk3301='no' \
+ navcom='no' \
+ nmea0183='yes' \
+ nmea2000='no' \
+ oncore='no' \
+ sirf='no' \
+ skytraq='no' \
+ superstar2='no' \
+ tnt='no' \
+ tripmate='no' \
+ tsip='no' \
+ ublox='yes' \
+ ubloxtimels='yes' \
+ aivdm='no' \
+ gpsclock='no' \
+ oceanserver='no' \
+ libdir='${libdir}' \
+ fixed_stop_bits='1' \
+ pps='yes' \
+ gpsd_group='gps' \
+ ntpshm='yes' \
+ prefix='usr' \
+ ${PACKAGECONFIG_CONFARGS} \
+"
+# this cannot be used, because then chrpath is not found and only static lib is built
+# target=${HOST_SYS}
+
+do_compile_prepend() {
+ export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
+ export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config"
+ export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}"
+ export LINKFLAGS="${LDFLAGS}"
+}
+do_install() {
+ export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
+ export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config"
+ export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}"
+ export LINKFLAGS="${LDFLAGS}"
+
+ export DESTDIR="${D}"
+ install -d 755 ${D}${libdir}
+ install libgps.so.24.* ${D}${libdir}
+ cp -a libgps.so.24 ${D}${libdir}
+ (cd ${D}${libdir};ln -sf libgps.so.24.* libgps.so)
+
+ # support for dev (development)
+ mkdir -p -m 0644 ${D}/${includedir}/gps
+ install -m 0644 ${S}/gpsd.h ${D}/${includedir}/gps
+ install -m 0644 ${S}/os_compat.h ${D}/${includedir}/gps
+ install -m 0644 ${S}/revision.h ${D}/${includedir}/gps
+ install -m 0644 ${S}/gpsdclient.h ${D}/${includedir}/gps
+ install -m 0644 ${S}/gpsd_config.h ${D}/${includedir}/gps
+ install -m 0644 ${S}/compiler.h ${D}/${includedir}/gps
+ install -m 0644 ${S}/ppsthread.h ${D}/${includedir}/gps
+ install -m 0644 ${S}/gps.h ${D}/${includedir}
+ install -m 0644 ${S}/libgpsmm.h ${D}/${includedir}
+}
+
+
+FILES_${PN}-dev_append = " ${includedir}/gps.h ${includedir}/libgpsmm.h ${includedir}/gps ${libdir}/libgps.so"
+FILES_${PN}-dev_remove = "${includedir} ${FILES_SOLIBSDEV} \
+ ${libdir}/*.la ${libdir}/*.o ${libdir}/pkgconfig \
+ ${datadir}/pkgconfig ${datadir}/aclocal \
+ ${base_libdir}/*.o ${libdir}/${BPN}/*.la ${base_libdir}/*.la"
+
+SUMMARY_${PN}-dbg = "Debug the C service library used for communicating with gpsd"
+PACKAGES = "${PN} ${PN}-dbg ${PN}-dev"
+
+FILES_${PN}-dbg_replace = "${prefix}/src/* ${libdir}/.debug/*"
+
+SUMMARY_${PN} = "C service library used for communicating with gpsd"
+
+RDEPENDS_${PN} += "dbus-lib"
+
+FILES_${PN}_append = " ${libdir}/libgps.so.* "
+FILES_${PN}_remove = "${bindir}/* ${sbindir}/* ${libexecdir}/* \
+ ${libdir}/lib*${SOLIBS} ${sysconfdir} ${sharedstatedir} \
+ ${localstatedir} ${base_bindir}/* ${base_sbindir}/* \
+ ${base_libdir}/*${SOLIBS} ${base_prefix}/lib/udev \
+ ${prefix}/lib/udev ${base_libdir}/udev ${libdir}/udev \
+ ${datadir}/${BPN} ${libdir}/${BPN}/* ${datadir}/pixmaps \
+ ${datadir}/applications ${datadir}/idl ${datadir}/omf \
+ ${datadir}/sounds ${libdir}/bonobo/servers \
+"