SUPL (Secure User-Plane Location) is protocol for A-GPS to receive assistance data over Internet. EG25-G has integrated SUPL client, that uses mobile data to communicate with SUPL server and feed assisted data into GNSS receiver. SUPL drastically improves TTFF (time to first fix) and is much more effective than XTRA. To configure it user has to set SUPL version (latest supported version is 2.0), select whether or not use SSL, set address for SUPL server. There are more tuning options in Quectel's documentation, but default values are good to make SUPL work: - AT+QGPSCFG="agpsposmode" Configure AGPS Positioning Mode - AT+QGPSCFG="lbsapn" Configure AGNSS Positioning AP - AT+QGPSCFG="agnssprotocol" Configure AGNSS Positioning Protocols There are some usage aspects of SUPL to be aware of: * modem uses mobile data to get information from SUPL server * mobile data is used even if it's disabled in operating system * firmware seems to try TLS 1.1, that is deprecated and not used in production anymore. See [1]. * IMSI (International Mobile Subscriber Identity) of your SIM-card, current cell Id and public IP are leaked to SUPL server. It's recommended to setup proxy server to hide IMSI and IP from SUPL server [2]. * all this information is visible in trafic dumps for network nodes in between since there is no SSL * SUPL requests with this information are not sent constantly, when geolocation is enabled. They are sent, when information in GNSS receiver is outdated. SUPL servers that could be found on the Internet: - supl.google.com (widely used, supports SSL and non-SSL) - supl.grapheneos.org (supports only SSL, AFAIK just proxy to supl.google.com) - supl.vodafone.com (resolves to supl.google.com) - supl.qxwz.com (probably doesn't provide data outside of China, Chinese company) - supl.nokia.com (is shutdown down) The only working SUPL server is supl.google.com. Support in ModemManager and Geoclue is already in place. ModemManager shows agps-msb capability and Geoclue enables agps-msb, when it's available. When precise geolocation is requested and assisted information is missing in the modem (cold start), when modem requests SUPL server for new assisted data. SUPL was successfully tested with stock modem firmware 30.007.30.007 and community firmware v0.7.4. For testing it was often needed to delete assistance data and enforce cold start. Following script was used for this, it requires ModemManager run in debug mode (--debug). ``` sudo mmcli -m any --command="AT+QGPSEND" sleep 1 sudo mmcli -m any --command="AT+QGPSDEL=0" sleep 1 sudo mmcli -m any --command="AT+QGPSDEL=3" sleep 1 sudo mmcli -m any --command="AT+QGPSDEL=1" sleep 1 sudo mmcli -m any --command="AT+QGPSDEL=0" sleep 1 ``` 1. https://forums.quectel.com/t/a-gnss-msb-with-tls-on-eg25-g/39334 2. https://github.com/Eierkopp/supl-proxy
eg25-manager - Quectel EG25 management daemon
eg25-manager is a daemon for managing the Quectel EG25 modem found on the
Pine64 PinePhone.
It implements the following features:
- cleanly power on/off the modem
- configure/check essential parameters (such as the audio format) on startup
- monitor the modem state through ModemManager
- put the modem in low-power mode when suspending the system, and restore it back to normal behavior when resuming
- monitor the modem state on resume and recover it if needed
Dependencies
eg25-manager requires the following development libraries:
- libglib2.0-dev
- libgpiod-dev (>= 2.0)
- libmm-glib-dev
Building
eg25-manager uses meson as its build system. Building and installing
eg25-manager is as simple as running the following commands:
$ meson ../eg25-build
$ ninja -C ../eg25-build
# ninja -C ../eg25-build install
Configuration
eg25-manager uses device-specific configuration files, named after the
device-tree compatible field. These files are installed to
/usr/share/eg25-manager. They can be copied to /etc/eg25-manager then
modified, that way they won't be overwritten during an upgrade.
Running
eg25-manager is usually run as a systemd service, but can also be
manually started from the command-line (requires root privileges):
# eg25manager
License
eg25-manager is licensed under the GPLv3+.