Mer/Documentation/N810 GPS

(More formatting)
(Directions)
Line 9: Line 9:
== Directions ==
== Directions ==
-
1. Install the following packages from the Maemo Updates repository (you can install them on Maemo, then copy the packages from the apt cache):
+
=== Step 1: Install the necessary files ===
 +
Install the following packages from the Maemo Updates repository (you can install them on Maemo, then copy the packages from the apt cache):
  libsupld1
  libsupld1
  osso-gpsd
  osso-gpsd
Line 16: Line 17:
  gpsdriver
  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.
+
=== Step 2: Tweak /etc/init.d/libgpsbt ===
 +
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:
+
=== Step 3: Change ownership ===
 +
Run:
  chown -R YOURUSERNAME:users /var/lib/gps
  chown -R YOURUSERNAME:users /var/lib/gps
-
4. Make the following files:
+
=== Step 4: Make the necessary files ===
 +
Make the following files:
/etc/default/gps5300driver.conf:
/etc/default/gps5300driver.conf:
Line 93: Line 97:
  esac
  esac
-
5. Run
+
=== Step 5: Copy gpsdriver ===
 +
Make a copy of gpsdriver to prevent confusion
  cp /usr/sbin/gpsdriver /usr/sbin/gps5300driver
  cp /usr/sbin/gpsdriver /usr/sbin/gps5300driver
-
6. Put libgps5300faker.so in /usr/lib (Not posted anywhere yet):
+
=== Step 6: Install libgps5300faker.so ===
 +
Put libgps5300faker.so in /usr/lib (Not posted anywhere yet):
  cp /path/to/libgps5300faker.so /usr/lib
  cp /path/to/libgps5300faker.so /usr/lib
-
7. Reboot:
+
=== Step 7: Reboot ===
 +
Reboot:
  reboot
  reboot
-
8. Get ready to use the GPS:
+
=== Step 8: Prepare to use the GPS ===
 +
Get ready to use the GPS:
  /etc/init.d/libgpsbt restart
  /etc/init.d/libgpsbt restart
  /etc/init.d/gpsdriver restart
  /etc/init.d/gpsdriver restart
  /etc/init.d/gps5300driver restart
  /etc/init.d/gps5300driver restart
-
9. Start GPSD:
+
=== Step 9: Start GPSD ===
 +
Start GPSD:
  gpsd -n -N -D2 /dev/pgps
  gpsd -n -N -D2 /dev/pgps

Revision as of 18:20, 22 May 2009

Contents

Notes

  • 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.

Directions

Step 1: Install the necessary files

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

Step 2: Tweak /etc/init.d/libgpsbt

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

Step 3: Change ownership

Run:

chown -R YOURUSERNAME:users /var/lib/gps

Step 4: Make the necessary files

Make the following files:

/etc/default/gps5300driver.conf:

# /etc/default/gps5300driver.conf

# The user who can control the driver
GPS5300_USER=root

# Whether the driver will self-initialize, may or may not work (more on the may not side)
GPS5300_SELFINIT=true


/etc/init.d/gps5300driver:

#!/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"
#			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}"
#			--env "LD_PRELOAD=${GPS5300_PRELOAD}" \
#			--exec "${GPS5300_DRIVER}"
#		return 0
	;;

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

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

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

Step 5: Copy gpsdriver

Make a copy of gpsdriver to prevent confusion

cp /usr/sbin/gpsdriver /usr/sbin/gps5300driver

Step 6: Install libgps5300faker.so

Put libgps5300faker.so in /usr/lib (Not posted anywhere yet):

cp /path/to/libgps5300faker.so /usr/lib

Step 7: Reboot

Reboot:

reboot

Step 8: Prepare to use the GPS

Get ready to use the GPS:

/etc/init.d/libgpsbt restart
/etc/init.d/gpsdriver restart
/etc/init.d/gps5300driver restart

Step 9: Start GPSD

Start GPSD:

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 have a lock and are ready to use your GPS (I've also gotten other messages indicating the GPS is ready. Basically anything new/other than what it routinely spits out should be a good indicator).