Nexus 5 GPS Errors and other issues



  • @that_rin Maybe there's hope after all... I've been doing a bunch of troubleshooting and somehow it's all working properly. GPS resolution within around 10 seconds for all applications involved.

    Now, I wouldn't be surprised if I lose this once I reboot, which I'll test at some point soon. I stopped and started services so there's something in there that may be plaguing you as well. If I manage to isolate the workaround, I'll report back here with my findings.



  • @that_rin So I've tried a couple of restarts and I've managed to get it "stuck" again. But the solution appears to be this simple:

    phablet@ubuntu-phablet:~$ sudo restart ubuntu-location-service
    

    My preferred method for using this workaround (worked a couple of times now):

    1. Before restarting, turn on Wi-Fi and Location detection
    2. Restart
    3. Run sudo restart ubuntu-location-service from the terminal
    4. Open the SensorsStatus app and navigate to the GPS screen
    5. Wait until the GPS starts working


  • Another happy customer with the instructions above:

    Charlie Shekeris, [18.11.18 22:51]
    I've done steps 1-4 and the GPS now gives me a reading

    Hopefully, this workaround could be sufficient. @that_rin I'm interested to see if it works for you, too.



  • Potential solution (not just a workaround)

    After various research and testing, I believe that I have a potential solution. Since the changes, my GPS is now usable and reliable. I can switch it on and off and still expect it to work, no workarounds necessary.

    The fix has very simple changes that are reversible. Doesn't appear to be limited to Nexus 5, either.

    The solution being tested:

    • Simply change the GPS provider from wolfpack.geoclue2 to ubuntu.espoo

    Steps to test the potential solution

    1. Check that the fix is even needed (may already be using ubuntu.espoo) -- run in the terminal:
    $ ps aux | grep [l]ocation-service | grep provider
    root       987  0.0  0.5 146540  9852 ?        Ssl  19:19   0:00 /usr/bin/ubuntu-location-serviced --bus system --provider gps::Provider --provider remote::Provider --remote::Provider::name=com.ubuntu.espoo.Service.Provider --remote::Provider::path=/com/ubuntu/espoo/Service/Provider
    
    • Like above, if you see ubuntu.espoo in the output, then the fix is already in place
    • The fix below only works if you see wolfpack.geoclue2
    1. Run the following commands from the terminal:
    # (Optional) Save a copy of the file to your home directory
    $ cp /etc/init/ubuntu-location-service.override ~
    
    # Make the root partition writable 
    $ sudo mount -o remount,rw /
    
    # The following command changes `wolfpack.geoclue2` to `ubuntu.espoo` in both places in the file
    $ sudo sed -i -e 's:wolfpack\(.\)geoclue2:ubuntu\1espoo:' /etc/init/ubuntu-location-service.override
    
    # (Optional) Check that the changes have been made successfully
    $ grep espoo /etc/init/ubuntu-location-service.override
        opts="$opts --remote::Provider::name=com.ubuntu.espoo.Service.Provider"
        opts="$opts --remote::Provider::path=/com/ubuntu/espoo/Service/Provider"
    
    1. Before restarting, turn on Wi-Fi and Location detection
    2. Restart
    3. Open the Active Screen app and ensure that the screen stays on while attempting to get the fix
    4. Open the SensorsStatus app and navigate to the GPS screen
    5. Wait until the GPS starts working (the first fix can take a while)

    Once the GPS starts working, it should be fine with the various apps that use it, such as uNav, OpenStreetMap, GoogleMaps UT, etc.

    Steps to reset to the original configuration

    1. Run the following commands from the terminal:
    # Make the root partition writable 
    $ sudo mount -o remount,rw /
    
    # Reset back to `wolfpack.geoclue2`
    $ sudo sed -i -e 's:ubuntu\(.\)espoo:wolfpack\1geoclue2:' /etc/init/ubuntu-location-service.override
    
    # (Optional) Check that the changes have been made successfully
    $ grep wolfpack /etc/init/ubuntu-location-service.override
        opts="$opts --remote::Provider::name=com.wolfpack.geoclue2.Service.Provider"
        opts="$opts --remote::Provider::path=/com/wolfpack/geoclue2/Service/Provider"
    
    • The reset will be complete once you restart


  • Some caveats about this, quoting from the UBOF Telegram group:

    Marius Gripsgard, [20.11.18 21:47]
    [In reply to myii]
    thats the old one that wraps here

    Marius Gripsgard, [20.11.18 21:48]
    "here maps"

    Marius Gripsgard, [20.11.18 21:50]
    [In reply to myii]
    that has been removed, since here requre licensing

    Marius Gripsgard, [20.11.18 21:52]
    we are hopefully moving away from ubuntu location service and just use geoclue and qtlocation, and use the hybris platform

    myii, [20.11.18 21:52]
    Is it OK to use espoo in the meantime?

    Marius Gripsgard, [20.11.18 21:52]
    [In reply to myii]
    yeah should be ok

    Marius Gripsgard, [20.11.18 21:53]
    [In reply to myii]
    that will just use gps though, no agps support

    Key points:

    1. espoo uses HERE Maps, which requires licensing
    2. Lacks AGPS

Log in to reply