Nexus 5 GPS Errors and other issues



  • @lakotaubp I have done wifi and mobile data, wifi only, and mobile data only.



  • If the problem is that the initial location is too far away but it gets better, that's to be expected. Your initial location lock is provided by the Mozilla assisted location service. This could be extremely accurate or extremely poor in your area, but it depends on how many users of Firefox for Android there are around.

    A hardware GPS lock sometimes requires the phone be near a thin window or outside (such as in a car). Inside an apartment complex will usually not do any good.

    I just fired up my Nexus 5, Nexus 7, and Fairphone 2, all got a location lock in seconds. I've been using Mozilla Stumbler to improve their data in my area, so that's to be expected.

    Your location issues are really strange, but they all come back to the GPS hardware lock never happening... I'm not sure why that would be, though.

    In the future, though, please post a separate topic for separate issues. It makes it much easier to follow the discussion and see exactly what the issue.



  • @that_rin hey, nexus 5 gps and OTA-5 works here.
    I have the issue with initial location, but after a few minutes it works. When I'm in hurry, I closed unav and relaunch it just after it found the wrong itinerary. This time, I have the correct position. Hop it could help.



  • Same isue for me with the Nexus 5. But if I reboot the system the just after start uNav then sometime it works fine. No trouble with OnePlus One



  • Hey @that_rin, I'm with you. In my case, GPS has never worked, but I've only started using UBports recently, since the problems began. I did get a few suggestions from the main Telegram group, so I'm going to bring those over to this discussion, in case they provide any useful leads.

    Debugging resource

    myii, [18.11.18 01:11]
    GPS has never worked on my Nexus 5 since first installation. SensorsStatus doesn't show any values. uNav has never resolved correctly. GPS is enabled and for each of the apps. What's the right way to troubleshoot this?

    Rodney, [18.11.18 01:15]
    [In reply to myii]
    https://wiki.ubuntu.com/Process/Merges/TestPlan/location-service#Debugging

    Rodney, [18.11.18 01:15]
    ubuntu-location-serviced-cli --bus system --get --property visible_space_vehicles is probably of particular interest

    myii, [18.11.18 01:26]
    [In reply to Rodney]

    phablet@ubuntu-phablet:~$ ubuntu-location-serviced-cli --bus system --get --property visible_space_vehicles
    Attempted to unregister path (path[0] = com path[1] = ubuntu) which isn't registered
    Problem executing the CLI: org.freedesktop.DBus.Error.ServiceUnknown: The name com.ubuntu.location.Service was not provided by any .service files
    

    Rodney, [18.11.18 01:27]
    i think you might need to run it with sudo

    myii, [18.11.18 01:28]
    Exact same output as above with sudo.

    Starting ubuntu-location-service

    Rodney, [18.11.18 01:27]
    or maybe that means the location-service isn't running

    Rodney, [18.11.18 01:28]
    does it appear in ps afx|grep location output?

    myii, [18.11.18 01:28]

     3777 ?        Ssl    0:00          \_ /usr/lib/arm-linux-gnueabihf/indicator-location/indicator-location-service
     7674 ?        Tsl    0:02          \_ system-settings settings:///location
    23356 pts/19   S+     0:00              \_ grep --color=auto location
    14209 ?        Ss     0:00 /usr/bin/ubuntu-location-provider-geoclue2
    

    Rodney, [18.11.18 01:29]
    try running sudo start ubuntu-location-service

    myii, [18.11.18 01:30]

    phablet@ubuntu-phablet:~$ sudo status ubuntu-location-service
    ubuntu-location-service start/running, process 23508
    

    myii, [18.11.18 01:31]
    ubuntu-location-serviced-cli still returning the previous output.

    Error in /var/log/syslog

    myii, [18.11.18 01:31]
    Noticed this in syslog:

    Nov 18 00:37:58 ubuntu-phablet kernel: [ 1488.385225] init: ubuntu-location-provider-geoclue2 main process (9716) killed by SEGV signal
    Nov 18 00:37:58 ubuntu-phablet kernel: [ 1488.385259] init: ubuntu-location-provider-geoclue2 main process ended, respawning
    

    So no progress so far.



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