N900 GPS Proxy

As of 2019, supl.nokia.com is not working, thus the N900 cannot get GPS assistance information. On the other hand, the N900 is also unable to communicate with Google's supl server, supl.google.com. So getting a GPS fix can take a very long time as there is no network assistance.

The use of an A-GPS proxy, such as https://www.tajuma.com/supl/index.html can get around the problem. It is already packaged, and available from Extras-Devel (you can temporarily enable -devel, then disable it afterwards)

Configuration

After installation of supl on the N900, you can perform the following steps:

  • Choose a subdomain for the certificates you will create. The subdomain needs to conform to the general rules for domain names, and have a valid TLD. It does not necessarily need to exist however, but it is a good idea to use a domain that you have control of. For our example, we will use supl.fremantle.com
  • Create the certificates on the device. Since the proxy needs to find the certificates in the current working directory, it is also a good idea to create a specific directory for this purpose:
~$ mkdir supl && cd supl/
~/supl$ supl-cert supl.fremantle.com
  • Install the CA certificate via cmcli:
~/supl$ sudo cmcli -c common-ca -a ca-cert.pem
  • Edit the "Location server" field in Settings > Connectivity > Location > Network Positioning to point to the subdomain you chose earlier
  • If you used a non-existent domain name, edit /etc/hosts to resolve its IP, e.g. add the following:
127.0.0.1  supl.fremantle.com
  • Reboot the device (otherwise the proxy will fail the certificates check)

Use

  • Start the proxy and point it to supl.google.com (or any other supl server you know works):
~$ cd supl/
~/supl$ supl-proxy supl.google.com
  • Run your GPS consumer application

If all went well, you should see a lot of output from the proxy, after which it will exit. Hopefully you get a fix in a few seconds.

Notes

  • As is, the supl proxy will exit after one successful transaction
  • If you did not get a fix, and there were no errors from the proxy, you will likely find that the device will not make another supl request even if the proxy is running. You can try the following:
~$ sudo stop location-proxy
~$ sudo start location-proxy
  • Also, it seems that a new supl request can be issued after a change in CellID, so moving to a different location may help.

Please update this wiki with your observations.