diff options
-rw-r--r-- | Makefile.am | 1 | ||||
-rwxr-xr-x | gpsd.hotplug | 57 | ||||
-rw-r--r-- | gpsd.spec.in | 3 |
3 files changed, 17 insertions, 44 deletions
diff --git a/Makefile.am b/Makefile.am index 2631d332..d87b0239 100644 --- a/Makefile.am +++ b/Makefile.am @@ -130,6 +130,7 @@ EXTRA_DIST = \ gpsprof \ gpsfake \ gpsd.hotplug \ + gpsd.usermap \ logextract # These are not distributed diff --git a/gpsd.hotplug b/gpsd.hotplug index b9b4e810..5cc0f864 100755 --- a/gpsd.hotplug +++ b/gpsd.hotplug @@ -1,12 +1,6 @@ -#!/usr/bin/env python -# -# gpsd.hotplug -- hotplug script for gpsd -# -# This script will tell a running gpsd that it should look at the -# device that just went active, because it might be a GPS. -# -# This script is part of the gpsd distrbution: see http://gpsd.berlios.de -# Written by Eric S. Raymond, March 2005. +#!/usr/bin/python +# Hotplug script for gpsd by Eric S. Raymond, March 2005 +# This script is part of the gpsd distribution: see http://gpsd.berlios.de import os, syslog, glob, socket def gpsd_connect(): @@ -31,11 +25,9 @@ def gpsd_connect(): syslog.syslog("gpsd is not running or is unreachable") return None else: - syslog.syslog("found gpsd.") return sockfile def wake_up_gpsd(devpath): - # First, discover the device subnodes = glob.glob("/sys" + devpath + "/*") subnodes = map(os.path.basename, subnodes) subnodes = filter(lambda s: s.startswith("ttyUSB"), subnodes) @@ -48,13 +40,6 @@ def wake_up_gpsd(devpath): else: tty = "/dev/" + subnodes[0] syslog.syslog(tty + " has gone active") - # Cope with a race condition - i = 0 - while not os.path.exists(tty): - syslog.syslog("but " + tty + " does not actually exist (" + `i` +")") - time.sleep(1) - i += 1 - syslog.syslog(tty + "created") # Next get a connection to gpsd; start one if not already running connect = gpsd_connect() @@ -74,32 +59,18 @@ def wake_up_gpsd(devpath): connect.close() return -# GPSes don't have their own USB device class. They're serial-over-USB -# devices, so what you see is actually the ID of the serial-over-USB chip. -# Fortunately, just two of these account for over 80% of consumer-grade -# GPS sensors. -# -# The Prolific Technology 2303 (commonly in tandem with SiRF chips) -# FTDI 8U232AM -# Cypress M8/CY7C64013 (DeLorme uses these) -supported_products = ("67B/2303", "403/6001", "1163/100") - -if __name__ == '__main__': - action = os.getenv("ACTION") - devpath = os.getenv("DEVPATH") - product = os.getenv("PRODUCT") - syslog.openlog('gpsdplug', 0, syslog.LOG_DAEMON) - syslog.syslog("gpsdplug begins with action %s" % action) - syslog.syslog("PRODUCT = %s, DEVPATH = %s" % (product, devpath)) - if not devpath or not action: - pass - elif not filter(lambda x: product.startswith(x + "/"), supported_products): - pass - elif action == "add": - wake_up_gpsd(devpath) - syslog.syslog("gpsdplug ends") - syslog.closelog() +syslog.openlog('gpsdplug', 0, syslog.LOG_DAEMON) +syslog.syslog("gpsdplug begins with action: %s" % os.getenv("ACTION")) +devpath = os.getenv("DEVPATH") +if not devpath: + syslog.syslog("No DEVPATH") +else: + # First, discover the device + #syslog.syslog("DEVPATH = %s" % devpath) + wake_up_gpsd(devpath) +syslog.syslog("gpsdplug ends") +syslog.closelog() diff --git a/gpsd.spec.in b/gpsd.spec.in index ac6e7eb5..04653de1 100644 --- a/gpsd.spec.in +++ b/gpsd.spec.in @@ -56,7 +56,7 @@ cp xgpsspeed.ad "$RPM_BUILD_ROOT"%{_libdir}/X11/app-defaults/xgpsspeed mkdir -p "$RPM_BUILD_ROOT"%{_sysconfdir}/init.d/ cp gpsd.init "$RPM_BUILD_ROOT"%{_sysconfdir}/init.d/gpsd mkdir -p "$RPM_BUILD_ROOT"%{_sysconfdir}/hotplug.d/usb -cp gpsd.hotplug "$RPM_BUILD_ROOT"%{_sysconfdir}/hotplug.d/usb/ +cp gpsd.hotplug gpsd.usermap "$RPM_BUILD_ROOT"%{_sysconfdir}/hotplug/usb/ # additional gpsd-devel files PYVERSION=`python -c "import sys; print sys.version[:3]"` mkdir -p "$RPM_BUILD_ROOT"%{_libdir}/python${PYVERSION}/site-packages @@ -86,6 +86,7 @@ cp gps.py gpsd.py "$RPM_BUILD_ROOT"%{_libdir}/python${PYVERSION}/site-packages %{_mandir}/man1/gpsprobe.1* %{_mandir}/man1/gpsprof.1* %{_sysconfdir}/hotplug.d/usb/gpsd.hotplug +%{_sysconfdir}/hotplug.d/usb/gpsd.usermap %{_libdir}/X11/app-defaults/xgps %{_libdir}/X11/app-defaults/xgpsspeed |