I used the grep
command.
sudo cat /dev/gnss0
will give you a stream of information, which will be relatively incomprehensible unless you track down some documentation. I have teseo-liv3f-dm00398983-teseoliv3-gnss-moduleâsoftware-manual-stmicroelectronics.pdf which I imagine was linked to in this forum. I am not going to pretend that I am an expert but the information in that document was adequate to confirm the type of messages that the GNSS was emitting and approximately what those messages mean i.e. adequate for a human to parse the message and understand it.
sudo grep -a '$..GLL' /dev/gnss0
will give you your fix, so to speak.
From the above document, the format of that message is: $<TalkerID>GLL,<Lat>,<N/S>,<Long>,<E/W>,<Timestamp>,<Status>,<mode indicator>*<checksum><cr><lf>
and an example from that document is:
$GPGLL,4055.04673,N,01416.54941,E,110505.000,A,A*54
^
I have indicated with ^ the status field. It is A for valid and V for invalid. You of course want A but you donât get an A until
a) the phone gets a fix on one satellite, and
b) maintains the fix for long enough to download the ephemeris, and then
c) gets a fix on enough satellites to determine your position.
I already did the first two steps. So I just wandered outside with my Librem 5, doing the above grep
command, and it took maybe 20 or 30 seconds to get a fix and thereby reported
$GPGLL,<lat>,S,<long>,E,021343.000,A,A*40
(where I have removed the latitude and longitude for privacy reasons, but they were correct before I removed them).
As far as I am aware, I have not installed gnss-share
. What I am doing here is just very basic, low-level diagnostics to demonstrate that the GNSS chip is working.