Getgpsdate

From Phobos Wiki
Jump to navigation Jump to search

git repo

git@taru:users/mark/getgpsdate.git


Description

   Simple program that gets time straight form a gps device (via a file 
   handler in /dev/) using the low level gps interface libgpsd to 
   circumvent the need for GPS Daemons (e.g. when using Generic NMEA
   reference clocks).
   This program should be run once at system boot, otherwise, with no
   half-way valid clock, ntpd will receive the time from gps
   source, but will either refuse to adjust the clock by years of
   difference or make a sudden change of system time, which may result
   in system crash.


Building and dependencies

   getgpsdate util depends on libgpsd and libgps so files and on
   some additional headers (gpsd.h and its includes). All this can
   be obtained from compiled gpsd directory (after running ./configure
   && make (or scons equivalent) in gpsd source directory).
   In buildroot gpsd is automatically selected when choosing getgpsdate. 
   First the gpsd package is installed to the staging directory, so 
   getgpsdate could use the lib files and gpsd.h is copied from the
   gpsd package direcory to $(STAGING_DIR)/usr/include/
   After that the getgpsdate utility installation is scheduled.
   At the end of buildroot build gpsd binary is removed from $(TARGET_DIR)/usr/bin 
   directory before the new firmware is packaged.
   gpsd init script (S50gpsd) is also removed from $(TARGET_DIR)/usr/bin.
   The script that removes is gw/buildroot/board/martem/post-build/rm-temp-files.sh
   After every firmware update a script S01remove-old-files.sh located in
   gw/buildroot/board/martem/telem-common/fs_skeleton/usr/local/bin/post_update/
   runs in the device and removes /usr/bin/gpsd and /etc/init.d/S50gpsd 
   because we don't need them at the moment.

Relevant files in Telem-gw project:

  • buildroot/board/martem/post-build/rm-temp-files.sh

gpsd binary and S50gpsd init script are removed from system install directory at the end of the build. gpsd is not used in devices, only it's libraries and headers in staging for compiling getgpsdate utility.

  • buildroot/package/gpsd/gpsd.mk

cp $(@D)/gpsd.h $(STAGING_DIR)/usr/include line was added to INSTALL_STAGING define, because getgpsdate util includes <gpsd.h>

  • buildroot/package/getgpsdate/Config.in
  • buildroot/package/getgpsdate/getgpsdate.mk

MarkTomm 17. veebruar 2015, kell 15:02 (EET)