GPS stopped working

Pretty much what I did, the only difference is I have updated my XA2 via UI several times during last year. Often it takes 10…20 minutes to get fix, sometimes even one hour. Yes, it will get a fix but often after I’m back at home already. Not good test results.
Xperia 10 ii is much quicker. I flashed clean system and set location settings exactly as in my XA2 (and what you did, @jovirkku). 10 ii gets location fix within one minute even inside house far away from windows.
Today I took XA2 to glazed terrace with view to sky. 10 min and no location, wlan 2.4 GHz active. Then I disconnected wlan and got a fix within 10 seconds. Coincidence or HW interference?

[1] Yes, I agree. 10 II is so much better.
[2] Interesting. That needs more testing. Or else, you just happened to get it then at that same moment. With more attempts that would be clarified.

With the offline MLS positioning data from Jolla store installed, shouldn’t one get a coarse location based on cell towers within a very short time? Even indoors? I’m trying now on my XA2, but nope, even after many minutes GPSInfo / Puremaps puts me at previous location where I did had a fix, several hundreds kilometers away.

Also… What’s the point of having “online” services if the service provider is not available anymore? The UX is… not great.

1 Like

I agree, 10 ii works as it should. Location off → start Here → previous location shown → location ON → within 5 seconds Here knows where the phone is located.
I’ll flash Android to XA2, lock bootloader and start using 10 ii as my daily phone next few days. Even when current release is a bit shaky sometimes. I just need to not use anything that does not always work. Such as reboot instead of using Sailfish Utilities.

Here is another experiment:

  • H3113 with mobile network connectivity and not a cold start.

  • Phone indoors but with reasonable reception
    I ran geoclue-hybris with the following command line to include time stamps:

    QT_LOGGING_RULES="*.debug=true" QT_MESSAGE_PATTERN="%{time} [%{type}] %{appname} (%{file}:%{line}) - %{message}" /usr/libexec/geoclue-hybris

Now I started a GPS client (gpscon from openrepos in this case) and got the following (edited) log lines:

2021-05-28T18:16:03 [debug] geoclue-hybris (unknown:0) - new watched service, stopping idle timer.
2021-05-28T18:16:03 [debug] geoclue-hybris (unknown:0) - Starting positioning
2021-05-28T18:16:03 [debug] geoclue-hybris (unknown:0) - Engine on
2021-05-28T18:16:03 [debug] geoclue-hybris (unknown:0) - AGNSS type: 1 status: 1
2021-05-28T18:16:03 [debug] geoclue-hybris (unknown:0) - Start data connection
2021-05-28T18:16:04 [debug] geoclue-hybris (unknown:0) - Cellular connected true
2021-05-28T18:16:04 [debug] geoclue-hybris (unknown:0) - Data service connected
2021-05-28T18:16:04 [debug] geoclue-hybris (unknown:0) - Connected to "MY OPERATOR"
2021-05-28T18:16:04 [debug] geoclue-hybris (unknown:0) - Remaining connection contexts to check: ("/ril_0/context1", "/ril_0/context2", "/ril_0/context3")
2021-05-28T18:16:04 [debug] geoclue-hybris (unknown:0) - Getting APN for "/ril_0/context1"
2021-05-28T18:16:04 [debug] geoclue-hybris (unknown:0) - Connection context valid changed
2021-05-28T18:16:04 [debug] geoclue-hybris (unknown:0) - Found connection context APN "internet"
2021-05-28T18:16:04 [debug] geoclue-hybris (unknown:0) - Set location 1622218564000 XXX
2021-05-28T18:16:04 [debug] geoclue-hybris (unknown:0) - Stop listening to all PositionChanged signals
...
2021-05-28T18:16:04 [debug] geoclue-hybris (unknown:0) - AGNSS type: 1 status: 2
2021-05-28T18:16:04 [debug] geoclue-hybris (unknown:0) - Stop data connection
2021-05-28T18:16:04 [debug] geoclue-hybris (unknown:0) - Cellular connected false
2021-05-28T18:16:05 [debug] geoclue-hybris (unknown:0) - 1622218565018 
...
2021-05-28T18:16:05 [debug] geoclue-hybris (unknown:0) - 1622218565040 "$GPGGA,161605.00,XXX,N,YYY,E,1,03,0.0,261.8,M,47.4,M,,*68"

The GPGGA NMEA record indicates a GPS fix (Fix Quality = 1), so it took about 2 seconds with the aid of a SUPL server.

I ran this under blue sky with either WLAN or cell data or no connectivity and got same output
2021-05-29T13:01:51 [debug] geoclue-hybris (unknown:0) - 1622286111407 “$GPG
GA,110151.32,xxx,N,yyy,E,1,00,0.0,-194.3,M,46.7,M,*41”

but GPSinfo did not tell me any fix nor any more than 2 or 3 satellites, just a rough estimation of around 5000 to 6000 m
So?

Sony Xperia X and Sony Xperia XA2 both running 4.1.0.24, location settings as recommended.

Xperia X hasn’t been switched on for about 2 weeks. It has no sim card just WiFi access to the outside world, so no MLS functionality. GPS lock on within 2 to 3 minutes and 6 satellites within 5 minutes on GPSInfo. Accurate GPS position on Here within 2 to three minutes.

Xperia XA2 had horizontal accuracy of 9000 metres within a minute in GPSInfo. Still no satellites after 5 minutes, Taking over 5 minutes to get a lock on makes it unusable for GPS and totally useless for navigation.

What makes the GPS functionality of the XA2 so bad compared to other Sailfish devices? Location is a core function of any mobile device. Not having a functional location service severely cripples the XA2.

It would be nice to get some information and or help from Jolla on this problem. What is the cause of this issue? Is there a way to fix it? How can we implement this fix?

Unfortunately Jolla seem to bury their heads when issues like this arise. Total radio silence. Some help/feedback to your loyal fellow sailors would be nice.

5 Likes

This is most definitely a hardware issue that was maybe hidden by the availability of AGPS. Maybe a flaw in the design or positioning of the GPS antenna. Jolla can’t do anything about this.

1 Like

How can you be so sure about it being a hardware issue?

I think it’s pretty well established that it is most likely not a hardware issue, i.e aerial placement etc. Once a lock is obtained the device holds a good signal and the GPS function works well.

It is just very slow gaining a lock on which points to an almanac or empheris issue.

Some sailors have reported that they have been able to get a very quick lock on by making changes to some files but these changes are not permanent as the devices resets the changes.

1 Like

The almanac is fine since I get satellites immediately in GPSInfo.
It could be an ephemeris issue but even with off-line data it fails to lock quickly.
Moreover, the XA2 is the only model affected.
This point strongly to an antenna issue. Unless somebody is deleting ephemeris data at every start of the GPS.

I’ve just done a quick and dirty check comparing the signal strengths in GPSInfo between the X and the XA2. For the GPS satellite vehicles that were common to both devices the signal strength was the same. To me that says the antenna isn’t the problem.

Apparently the GPS works well when the XA2 is using Android.

Many of the satellite vehicles being displayed for each device were different.

EDIT: Even though the X and XA2 show similar numbers of satellite vehicles (about 15 in total) and with similar signal strengths across the displayed SV’s the X will show several SV’s (10 just now) in use and be giving good horizontal and vertical accuracy whereas the XA2 will be showing no SV’s in use despite showing a similar number of SV’s to the X and have no horizontal or vertical accuracy. The XA2 seems to have good satellite coverage but isn’t able to translate this into a position lock.

I have been trying to cook a receipt for GPS use for non-techy and I’m not ready. My experience is like yours. I have one X and 2 XA2. Did you try to put the phones in a place where the reception is not so good? In open sky is hard to see a difference between X and XA2. But, as the signal gets weaker, XA2 looses much earlier than the X. So, this is the hardware part. On the software part, I see the XA2 starting up with zero satellites, and aquiring them very slowly.

For the X I have places indoors where I can put the phone for 10 minutes before going out and have a fast fix outside, or even already indoors. For the XA2 this is much harder.

I have an X with Android, but no XA2 with Android. Walking outside seams to be equal for SFOS and Android (on X).

Hi Martin, could you give more detail of how to start this, and exactly where the log is as seems nice to add this view to GPSINFO .

Add it to : Add logging/view · Issue #23 · direc85/harbour-gpsinfo · GitHub

I enabled logging (which is as simple as running @martinh 's line as root), and noticed differences between having a WLAN-connection, and not having a WLAN-connection.

WLAN enabaled:

[root@XperiaXA2 defaultuser]# QT_LOGGING_RULES="*.debug=true" QT_MESSAGE_PATTERN="%{time} [%{type}] %{appname} (%{file}:%{line}) - %{message}" /usr/libexec/
geoclue-hybris
2021-06-01T11:56:23 [debug] geoclue-hybris (unknown:0) - QConnmanEngine: ofono dbus service registered: "org.ofono"
2021-06-01T11:56:23 [debug] geoclue-hybris (unknown:0) - QConnmanEngine: connman dbus service registered: "net.connman"
2021-06-01T11:56:23 [debug] geoclue-hybris (unknown:0) - QConnmanEngine: setup connman configurations
2021-06-01T11:56:23 [debug] geoclue-hybris (unknown:0) - QConnmanEngine: initialize
2021-06-01T11:56:23 [debug] geoclue-hybris (unknown:0) - QConnmanEngine: setup connman configurations
2021-06-01T11:56:23 [debug] geoclue-hybris (unknown:0) - Cellular technology not available
2021-06-01T11:56:23 [debug] geoclue-hybris (unknown:0) - Default data modem changed to ""
2021-06-01T11:56:23 [warning] geoclue-hybris (unknown:0) - Initialising GNSS interface
2021-06-01T11:56:23 [debug] geoclue-hybris (unknown:0) - capabilities 0x63
2021-06-01T11:56:23 [debug] geoclue-hybris (unknown:0) - GNSS set system info
2021-06-01T11:56:23 [warning] geoclue-hybris (unknown:0) - Initialising AGNSS interface
2021-06-01T11:56:23 [warning] geoclue-hybris (unknown:0) - Initialising GNSS NI interface
2021-06-01T11:56:23 [warning] geoclue-hybris (unknown:0) - Initialising AGNSS RIL interface
2021-06-01T11:56:23 [warning] geoclue-hybris (unknown:0) - Initialising GNSS Debug interface
2021-06-01T11:56:23 [debug] geoclue-hybris (unknown:0) - Default data modem changed to "/ril_0"
2021-06-01T11:56:23 [debug] geoclue-hybris (unknown:0) - Cellular technology available and not connected
2021-06-01T11:56:23 [debug] geoclue-hybris (unknown:0) - Cellular connected false
2021-06-01T11:56:23 [debug] geoclue-hybris (unknown:0) - Connection manager valid changed
2021-06-01T11:56:36 [debug] geoclue-hybris (unknown:0) - new watched service, stopping idle timer.
2021-06-01T11:56:36 [debug] geoclue-hybris (unknown:0) - Starting positioning
2021-06-01T11:56:37 [debug] geoclue-hybris (unknown:0) - Engine on
2021-06-01T11:56:37 [debug] geoclue-hybris (unknown:0) - 1622541397291 "$GPGSA,A,1,,,,,,,,,,,,,,,*1E"
2021-06-01T11:56:37 [debug] geoclue-hybris (unknown:0) - 1622541397293 "$GNGSA,A,1,,,,,,,,,,,,,,,*00"
2021-06-01T11:56:37 [debug] geoclue-hybris (unknown:0) - 1622541397294 "$PQGSA,A,1,,,,,,,,,,,,,,,*08"
2021-06-01T11:56:37 [debug] geoclue-hybris (unknown:0) - 1622541397295 "$GPVTG,,T,,M,,N,,K,N*2C"
2021-06-01T11:56:37 [debug] geoclue-hybris (unknown:0) - 1622541397296 "$GPRMC,,V,,,,,,,,,,N*53"
2021-06-01T11:56:37 [debug] geoclue-hybris (unknown:0) - 1622541397296 "$GPGGA,,,,,,0,,,,,,,,*66"

…

^C
[root@XperiaXA2 defaultuser]# ps aux | grep geocl
 6433 defaultu /usr/libexec/geoclue-mlsdb
 6686 defaultu /usr/bin/invoker --type=qt5 /usr/libexec/geoclue-mlsdb
 6744 root     grep geocl
16819 defaultu /usr/libexec/geoclue-master

Notice how it says Cellular technology available and not connected, even though I am connected to cell.

But here’s the thing: I turned off WLAN, verified cell (data) works, and tried again:

[root@XperiaXA2 defaultuser]# QT_LOGGING_RULES="*.debug=true" QT_MESSAGE_PATTERN="%{time} [%{type}] %{appname} (%{file}:%{line}) - %{message}" /usr/libexec/
geoclue-hybris
2021-06-01T11:55:17 [debug] geoclue-hybris (unknown:0) - QConnmanEngine: ofono dbus service registered: "org.ofono"
2021-06-01T11:55:17 [debug] geoclue-hybris (unknown:0) - QConnmanEngine: connman dbus service registered: "net.connman"
2021-06-01T11:55:17 [debug] geoclue-hybris (unknown:0) - QConnmanEngine: setup connman configurations
2021-06-01T11:55:17 [debug] geoclue-hybris (unknown:0) - QConnmanEngine: initialize
2021-06-01T11:55:17 [debug] geoclue-hybris (unknown:0) - QConnmanEngine: setup connman configurations
2021-06-01T11:55:17 [debug] geoclue-hybris (unknown:0) - Cellular technology not available
2021-06-01T11:55:17 [debug] geoclue-hybris (unknown:0) - Default data modem changed to ""
2021-06-01T11:55:17 [warning] geoclue-hybris (unknown:0) - Initialising GNSS interface
2021-06-01T11:55:17 [warning] geoclue-hybris (unknown:0) - QConnmanTechnologyInterface::scanReply() "No carrier"
2021-06-01T11:55:17 [debug] geoclue-hybris (unknown:0) - capabilities 0x63
2021-06-01T11:55:17 [debug] geoclue-hybris (unknown:0) - GNSS set system info
2021-06-01T11:55:17 [warning] geoclue-hybris (unknown:0) - Initialising AGNSS interface
2021-06-01T11:55:17 [warning] geoclue-hybris (unknown:0) - Initialising GNSS NI interface
2021-06-01T11:55:17 [warning] geoclue-hybris (unknown:0) - Initialising AGNSS RIL interface
2021-06-01T11:55:17 [warning] geoclue-hybris (unknown:0) - Initialising GNSS Debug interface
2021-06-01T11:55:17 [debug] geoclue-hybris (unknown:0) - Cellular technology available and connected
2021-06-01T11:55:17 [debug] geoclue-hybris (unknown:0) - Default data modem changed to "/ril_0"
2021-06-01T11:55:17 [debug] geoclue-hybris (unknown:0) - Cellular connected true
2021-06-01T11:55:17 [debug] geoclue-hybris (unknown:0) - Data service connected
2021-06-01T11:55:17 [debug] geoclue-hybris (unknown:0) - Connection manager valid changed
2021-06-01T11:55:23 [debug] geoclue-hybris (unknown:0) - new watched service, stopping idle timer.
2021-06-01T11:55:23 [debug] geoclue-hybris (unknown:0) - Starting positioning
2021-06-01T11:55:23 [debug] geoclue-hybris (unknown:0) - Engine on
2021-06-01T11:55:23 [debug] geoclue-hybris (unknown:0) - 1622541323294 "$GPGSA,A,1,,,,,,,,,,,,,,,*1E"
2021-06-01T11:55:23 [debug] geoclue-hybris (unknown:0) - 1622541323295 "$GNGSA,A,1,,,,,,,,,,,,,,,*00"
2021-06-01T11:55:23 [debug] geoclue-hybris (unknown:0) - 1622541323296 "$PQGSA,A,1,,,,,,,,,,,,,,,*08"
2021-06-01T11:55:23 [debug] geoclue-hybris (unknown:0) - 1622541323296 "$GPVTG,,T,,M,,N,,K,N*2C"
2021-06-01T11:55:23 [debug] geoclue-hybris (unknown:0) - 1622541323296 "$GPRMC,,V,,,,,,,,,,N*53"
2021-06-01T11:55:23 [debug] geoclue-hybris (unknown:0) - 1622541323297 "$GPGGA,,,,,,0,,,,,,,,*66"

…

^C
[root@XperiaXA2 defaultuser]# ps aux | grep geocl
 6194 defaultu /usr/libexec/geoclue-mlsdb
 6432 defaultu /usr/bin/invoker --type=qt5 /usr/libexec/geoclue-mlsdb
 6494 root     grep geocl
16819 defaultu /usr/libexec/geoclue-master

While it says: Cellular connected true, and I do have the MLS-package installed from Jolla store, it doesn’t seem to do anything with it, even after minutes. I also tried switching from 4G to 3G, no difference noted. Why doesn’t it work? And would it even work at all with WLAN active?

[edit] I’m indoors, using SFOS 4.1.0.24, XA2

Indeed, I was a bit ‘short of words’ in my above post:
I also detected that output and remembered N900 using AGPS only via cell data, not via WLAN.
And therefore tried again with only cell data enabled and connected.
To no avail (XA2, 3.2.1.20)

I was testing other stuff, and all of a sudden I did get a course location. Tested again with logging, and got:

2021-06-02T22:07:45 [debug] geoclue-hybris (unknown:0) - Injecting position 3 1622664465 yyy xxx nan 9000 nan
2021-06-02T22:07:45 [debug] geoclue-hybris (unknown:0) - Injecting position 3 1622664465 yyy xxx nan 9000 nan
2021-06-02T22:07:45 [debug] geoclue-hybris (unknown:0) - Injecting position 3 1622664465 yyy xxx nan 9000 nan

(with yyy xxx the location)

So it doesn’t not work, I think. However, apart from these three lines nothing significant is in the logs.

Hello,

I’ve got a fresh new xa2 with Sailfish 4.1, and yesterday I realised I don’t have Location services at all.

If I run this command:

I’ve got this error:
2021-06-03T08:33:28 [fatal] geoclue-hybris (unknown:0) - Failed to register service org.freedesktop.Geoclue.Providers.Hybris

I tried this, (well, I mixed it with my current gps.conf file) and it doesn’t work too.

My current settings is:

Thanks!

That only means there was another instance of it already running. Either you kill it before another attempt or you disable all location clients and wait a couple of seconds. When idle, it will end itself.

Modifying /etc/gps.conf is pointless, unless you have the GlobalSign Root CA - R2 in your Android installation. Otherwise SUPL calls will fail.

Some ROMs proviced bySony have this cert while others don’t.

the gps.conf is only for android? Currently I don’t have android support installed yet.

now, stopping everyhing, and running that command seems better, I’ve got this log:

No /etc/gps.conf is parsed by some lib used by android.hardware.gnss@1.0-service-qti from Jolla’s Android layer and also by geoclue-hybris.

Your log lines don’t show a SUPL attempt (log lines AGNSS type: 1 status: 1 and AGNSS type: 1 status: 2) so probably something disabled in /etc/location/location.conf.