Mer/Documentation/N810 GPS

These directions are confirmed to work on Mer 0.12.

All commands should be run as root.

All instances of "YOURUSERNAME" should be changed to whatever your user is named. Commands involving "YOURUSERNAME" [i]probably[/i] don't have to be run if your user is named "user", though this is unconfirmed.

The time to first fix (TTFF) is quite long (~30 min), and GPSD quits after the last client disconnects. Keep this in mind.

1. Install the following packages from the Maemo Updates repository (you can install them on Maemo, then copy the packages from the apt cache): libsupld1 osso-gpsd libgpsmgr libgpsbt (?) gpsdriver

2. Edit /etc/init.d/libgpsbt and change all instances of "user:users" to "YOURUSERNAME:users" There should be 2 instances you need to change.

3. Run: chown -R YOURUSERNAME:users /var/lib/gps

4. Make the following files:

/etc/default/gps5300driver.conf

  1. =================CUT====================
  1. /etc/default/gps5300driver.conf
  1. The user who can control the driver

GPS5300_USER=root

  1. Whether the driver will self-initialize, may or may not work (more on the may not side)

GPS5300_SELFINIT=true

  1. =================CUT====================

/etc/init.d/gps5300driver

  1. =================CUT====================
  1. !/bin/bash

GPS5300_DRIVER='/usr/sbin/gps5300driver' GPS5300_PIDFILE='/var/run/gps5300driver.pid' GPS5300_PRELOAD='/usr/lib/libgps5300faker.so' CONF=/etc/default/gps5300driver.conf

if [ -f $CONF ]; then

       . $CONF

fi

case $1 in start) echo "Starting GPS5300 driver" if ! [ -e /sys/devices/platform/gpio-switch/gps_reset/state ]; then echo "gps_reset state gpio switch missing"

  1. return 1

fi

[ -z "${GPS5300_SELFINIT}" ] && GPS5300_SELFINIT=true ${GPS5300_SELFINIT} || unset GPS5300_SELFINIT export GPS5300_SELFINIT

[ -z "${GPS5300_USER}" ] && GPS5300_USER=root export GPS5300_USER

export LD_PRELOAD=${GPS5300_PRELOAD}

start-stop-daemon --start \ --quiet \ --background \ --pidfile "${GPS5300_PIDFILE}" \ --make-pidfile \ --exec "${GPS5300_DRIVER}"

  1. --env "LD_PRELOAD=${GPS5300_PRELOAD}" \
  2. --exec "${GPS5300_DRIVER}"
  3. return 0

;;

stop) echo "Stopping GPS5300 driver" start-stop-daemon --stop \ --quiet \ --pidfile "${GPS5300_PIDFILE}" rm ${GPS5300_PIDFILE}

  1. return 0

;;

restart|force-reload) $0 stop $0 start ;;

*) echo "Usage: $0: {start|stop|restart|force-reload}" exit 1 ;; esac

  1. =================CUT====================

5. Run "cp /usr/sbin/gpsdriver /usr/sbin/gps5300driver"

6. Put libgps5300faker.so in /usr/lib (HOSTING)

7. Reboot

8. Run: /etc/init.d/libgpsbt restart /etc/init.d/gpsdriver restart /etc/init.d/gps5300driver restart

9. Run: "gpsd -n -N -D2 /dev/pgps"

When you start getting messages like:

gpsd: <= GPS: $GPGGA,183757.000,4504.94573,N,09300.43367,W,1,04,2.7,288.8,M,-31.3,M,,*60 gpsd: <= GPS: $GPGLL,4504.94573,N,09300.43367,W,183757.000,A,A*42 gpsd: can't use GGA/GGL time until after ZDA or RMC has supplied a year. gpsd: <= GPS: $GPGSA,A,3,31,11,30,32,,,,,,,,,5.9,2.7,5.3*3D gpsd: <= GPS: $GPGST,183757.000,14.3,13.2,37.3,19.1,16.0,32.4,73.2*54

You've got a lock and are ready to use your GPS.