RG520N-LA GPS with qmicli is not working

Hi, I am using the module RG520N-LA (Revision: RG520NLADAR03A03M8G) with qmicli v1.36.0. It is already able to connect with GPS by AT commands and 5G mobile network by AT commands and qmicli, but I also wanted to control the GPS by CLI commands.

#The module is in QMI mode
AT+QCFG="usbnet"
+QCFG: "usbnet",0

When I use AT commands, the GPS works fine:

AT+QGPSCFG="gpsnmeatype"
+QGPSCFG: "gpsnmeatype",31

OK
AT+QGPSCFG="nmeasrc",1
OK
AT+QGPS=1
OK
AT+QGPSGNMEA="GGA"
+QGPSGNMEA: $GPGGA,145213.00,2521.632753,S,04912.497447,W,1,06,1.0,952.8,M,3.4,M,,*54

OK

To control GPS by qmicli, I tried the commands in this post with qmi-proxy and without it: Enabling MSA/MBS A-GPS modes isn’t working through QMI on EG25-G - IoT Modules / LTE Standard Module - Quectel Forums

root:~# qmicli -d /dev/cdc-wdm0 --client-no-release-cid --loc-noop
[/dev/cdc-wdm0] Client ID not released:
        Service: 'loc'
            CID: '2'
root:~# qmicli -d /dev/cdc-wdm0 --client-no-release-cid --client-cid=2 --loc-get-operation-mode
Successfully retrieved operation mode: standalone
[/dev/cdc-wdm0] Client ID not released:
        Service: 'loc'
            CID: '2'
root:~# qmicli -d /dev/cdc-wdm0 --client-no-release-cid --client-cid=2 --loc-start -v
[11 Apr 2018, 12:05:12] [Debug] [/dev/cdc-wdm0] opening device with flags 'auto'...
[11 Apr 2018, 12:05:12] [Debug] [/dev/cdc-wdm0] automatically selecting QMI mode
[11 Apr 2018, 12:05:12] [Debug] [/dev/cdc-wdm0] created endpoint
[11 Apr 2018, 12:05:12] [Debug] QMI Device at '/dev/cdc-wdm0' ready
[11 Apr 2018, 12:05:12] [Debug] Reusing CID '2'
[11 Apr 2018, 12:05:12] [Debug] [/dev/cdc-wdm0] assuming service 'loc' is supported...
[11 Apr 2018, 12:05:12] [Debug] [/dev/cdc-wdm0] reusing client CID '2'...
[11 Apr 2018, 12:05:12] [Debug] [/dev/cdc-wdm0] registered 'loc' (version unknown) client with ID '2'
[11 Apr 2018, 12:05:12] [Debug] [/dev/cdc-wdm0] sent message...
<<<<<< RAW:
<<<<<<   length = 38
<<<<<<   data   = 01:25:00:00:10:02:00:01:00:22:00:19...

[11 Apr 2018, 12:05:12] [Debug] [/dev/cdc-wdm0] sent generic request (translated)...
<<<<<< QMUX:
<<<<<<   length  = 37
<<<<<<   flags   = 0x00
<<<<<<   service = "loc"
<<<<<<   client  = 2
<<<<<< QMI:
<<<<<<   flags       = "none"
<<<<<<   transaction = 1
<<<<<<   tlv_length  = 25
<<<<<<   message     = "Start" (0x0022)
<<<<<< TLV:
<<<<<<   type       = "Minimum Interval between Position Reports" (0x13)
<<<<<<   length     = 4
<<<<<<   value      = E8:03:00:00
<<<<<<   translated = 1000
<<<<<< TLV:
<<<<<<   type       = "Intermediate Report State" (0x12)
<<<<<<   length     = 4
<<<<<<   value      = 01:00:00:00
<<<<<<   translated = enable
<<<<<< TLV:
<<<<<<   type       = "Fix Recurrence Type" (0x10)
<<<<<<   length     = 4
<<<<<<   value      = 01:00:00:00
<<<<<<   translated = periodic-fixes
<<<<<< TLV:
<<<<<<   type       = "Session ID" (0x01)
<<<<<<   length     = 1
<<<<<<   value      = 00
<<<<<<   translated = 0

[11 Apr 2018, 12:05:12] [Debug] [/dev/cdc-wdm0] received message...
<<<<<< RAW:
<<<<<<   length = 20
<<<<<<   data   = 01:13:00:80:10:02:02:01:00:22:00:07...

[11 Apr 2018, 12:05:12] [Debug] [/dev/cdc-wdm0] received generic response (translated)...
<<<<<< QMUX:
<<<<<<   length  = 19
<<<<<<   flags   = 0x80
<<<<<<   service = "loc"
<<<<<<   client  = 2
<<<<<< QMI:
<<<<<<   flags       = "response"
<<<<<<   transaction = 1
<<<<<<   tlv_length  = 7
<<<<<<   message     = "Start" (0x0022)
<<<<<< TLV:
<<<<<<   type       = "Result" (0x02)
<<<<<<   length     = 4
<<<<<<   value      = 00:00:00:00
<<<<<<   translated = SUCCESS

[/dev/cdc-wdm0] Successfully started location tracking (session id 0)
[/dev/cdc-wdm0] Client ID not released:
        Service: 'loc'
            CID: '2'
[11 Apr 2018, 12:05:12] [Debug] [/dev/cdc-wdm0] releasing 'loc' client with flags 'none'...
[11 Apr 2018, 12:05:12] [Debug] [/dev/cdc-wdm0] unregistered 'loc' client with ID '2'
[11 Apr 2018, 12:05:12] [Debug] Client released
[11 Apr 2018, 12:05:12] [Debug] Closed
root:~# qmicli -d /dev/cdc-wdm0 --client-no-release-cid --client-cid=2 --loc-follow-nmea -v
[11 Apr 2018, 12:05:38] [Debug] [/dev/cdc-wdm0] opening device with flags 'auto, expect-indications'...
[11 Apr 2018, 12:05:38] [Debug] [/dev/cdc-wdm0] automatically selecting QMI mode
[11 Apr 2018, 12:05:38] [Debug] [/dev/cdc-wdm0] created endpoint
[11 Apr 2018, 12:05:38] [Debug] QMI Device at '/dev/cdc-wdm0' ready
[11 Apr 2018, 12:05:38] [Debug] Reusing CID '2'
[11 Apr 2018, 12:05:38] [Debug] [/dev/cdc-wdm0] assuming service 'loc' is supported...
[11 Apr 2018, 12:05:38] [Debug] [/dev/cdc-wdm0] reusing client CID '2'...
[11 Apr 2018, 12:05:38] [Debug] [/dev/cdc-wdm0] registered 'loc' (version unknown) client with ID '2'
[11 Apr 2018, 12:05:38] [Debug] [/dev/cdc-wdm0] sent message...
<<<<<< RAW:
<<<<<<   length = 24
<<<<<<   data   = 01:17:00:00:10:02:00:01:00:21:00:0B...

[11 Apr 2018, 12:05:38] [Debug] [/dev/cdc-wdm0] sent generic request (translated)...
<<<<<< QMUX:
<<<<<<   length  = 23
<<<<<<   flags   = 0x00
<<<<<<   service = "loc"
<<<<<<   client  = 2
<<<<<< QMI:
<<<<<<   flags       = "none"
<<<<<<   transaction = 1
<<<<<<   tlv_length  = 11
<<<<<<   message     = "Register Events" (0x0021)
<<<<<< TLV:
<<<<<<   type       = "Event Registration Mask" (0x01)
<<<<<<   length     = 8
<<<<<<   value      = 04:00:00:00:00:00:00:00
<<<<<<   translated = nmea

[11 Apr 2018, 12:05:38] [Debug] [/dev/cdc-wdm0] received message...
<<<<<< RAW:
<<<<<<   length = 20
<<<<<<   data   = 01:13:00:80:10:02:02:01:00:21:00:07...

[11 Apr 2018, 12:05:38] [Debug] [/dev/cdc-wdm0] received generic response (translated)...
<<<<<< QMUX:
<<<<<<   length  = 19
<<<<<<   flags   = 0x80
<<<<<<   service = "loc"
<<<<<<   client  = 2
<<<<<< QMI:
<<<<<<   flags       = "response"
<<<<<<   transaction = 1
<<<<<<   tlv_length  = 7
<<<<<<   message     = "Register Events" (0x0021)
<<<<<< TLV:
<<<<<<   type       = "Result" (0x02)
<<<<<<   length     = 4
<<<<<<   value      = 01:00:30:00
<<<<<<   translated = FAILURE: InvalidArgument

error: could not register location tracking events: QMI protocol error (48): 'InvalidArgument'
[/dev/cdc-wdm0] Client ID not released:
        Service: 'loc'
            CID: '2'
[11 Apr 2018, 12:05:38] [Debug] [/dev/cdc-wdm0] releasing 'loc' client with flags 'none'...
[11 Apr 2018, 12:05:38] [Debug] [/dev/cdc-wdm0] unregistered 'loc' client with ID '2'
[11 Apr 2018, 12:05:38] [Debug] Client released
[11 Apr 2018, 12:05:38] [Debug] Closed

The command --loc-start returns like the operation was successfull, but It does not start GPS receiving and the command --loc-follow-nmea always returns: error: could not register location tracking events: QMI protocol error (48): ‘InvalidArgument’

How can I configure it correctly? This module really suports QMI-LOC?

Is location engine unlocked?

$ sudo qmicli -p -d /dev/cdc-wdm0 --loc-get-engine-lock 
Successfully retrieved engine lock: none

$ sudo qmicli -p -d /dev/cdc-wdm0 --loc-set-engine-lock none
Successfully set engine lock

It was not unlocked, so I did it now, but still works the same :confused:

root:~# qmicli -p -d /dev/cdc-wdm0 --loc-set-engine-lock none
Successfully set engine lock
root:~# qmicli -p -d /dev/cdc-wdm0 --loc-get-engine-lock
Successfully retrieved engine lock: none
root:~# qmicli -d /dev/cdc-wdm0 --client-no-release-cid --loc-noop
[/dev/cdc-wdm0] Client ID not released:
        Service: 'loc'
            CID: '3'
root:~# qmicli -d /dev/cdc-wdm0 --client-no-release-cid --client-cid=3 --loc-start
[/dev/cdc-wdm0] Successfully started location tracking (session id 0)
[/dev/cdc-wdm0] Client ID not released:
        Service: 'loc'
            CID: '3'
root:~# qmicli -d /dev/cdc-wdm0 --client-no-release-cid --client-cid=3 --loc-follow-nmea
error: could not register location tracking events: QMI protocol error (48): 'InvalidArgument'
[/dev/cdc-wdm0] Client ID not released:
        Service: 'loc'
            CID: '3'
root:~# qmicli -d /dev/cdc-wdm0 --client-no-release-cid --client-cid=3 --loc-follow-nmea -v
[12 Apr 2018, 04:53:55] [Debug] [/dev/cdc-wdm0] opening device with flags 'auto, expect-indications'...
[12 Apr 2018, 04:53:55] [Debug] [/dev/cdc-wdm0] automatically selecting QMI mode
[12 Apr 2018, 04:53:55] [Debug] [/dev/cdc-wdm0] created endpoint
[12 Apr 2018, 04:53:55] [Debug] QMI Device at '/dev/cdc-wdm0' ready
[12 Apr 2018, 04:53:55] [Debug] Reusing CID '3'
[12 Apr 2018, 04:53:55] [Debug] [/dev/cdc-wdm0] assuming service 'loc' is supported...
[12 Apr 2018, 04:53:55] [Debug] [/dev/cdc-wdm0] reusing client CID '3'...
[12 Apr 2018, 04:53:55] [Debug] [/dev/cdc-wdm0] registered 'loc' (version unknown) client with ID '3'
[12 Apr 2018, 04:53:55] [Debug] [/dev/cdc-wdm0] sent message...
<<<<<< RAW:
<<<<<<   length = 24
<<<<<<   data   = 01:17:00:00:10:03:00:01:00:21:00:0B...

[12 Apr 2018, 04:53:55] [Debug] [/dev/cdc-wdm0] sent generic request (translated)...
<<<<<< QMUX:
<<<<<<   length  = 23
<<<<<<   flags   = 0x00
<<<<<<   service = "loc"
<<<<<<   client  = 3
<<<<<< QMI:
<<<<<<   flags       = "none"
<<<<<<   transaction = 1
<<<<<<   tlv_length  = 11
<<<<<<   message     = "Register Events" (0x0021)
<<<<<< TLV:
<<<<<<   type       = "Event Registration Mask" (0x01)
<<<<<<   length     = 8
<<<<<<   value      = 04:00:00:00:00:00:00:00
<<<<<<   translated = nmea

[12 Apr 2018, 04:53:55] [Debug] [/dev/cdc-wdm0] received message...
<<<<<< RAW:
<<<<<<   length = 20
<<<<<<   data   = 01:13:00:80:10:03:02:01:00:21:00:07...

[12 Apr 2018, 04:53:55] [Debug] [/dev/cdc-wdm0] received generic response (translated)...
<<<<<< QMUX:
<<<<<<   length  = 19
<<<<<<   flags   = 0x80
<<<<<<   service = "loc"
<<<<<<   client  = 3
<<<<<< QMI:
<<<<<<   flags       = "response"
<<<<<<   transaction = 1
<<<<<<   tlv_length  = 7
<<<<<<   message     = "Register Events" (0x0021)
<<<<<< TLV:
<<<<<<   type       = "Result" (0x02)
<<<<<<   length     = 4
<<<<<<   value      = 01:00:30:00
<<<<<<   translated = FAILURE: InvalidArgument

error: could not register location tracking events: QMI protocol error (48): 'InvalidArgument'
[/dev/cdc-wdm0] Client ID not released:
        Service: 'loc'
            CID: '3'
[12 Apr 2018, 04:53:55] [Debug] [/dev/cdc-wdm0] releasing 'loc' client with flags 'none'...
[12 Apr 2018, 04:53:55] [Debug] [/dev/cdc-wdm0] unregistered 'loc' client with ID '3'
[12 Apr 2018, 04:53:55] [Debug] Client released
[12 Apr 2018, 04:53:55] [Debug] Closed
root:~# qmicli -d /dev/cdc-wdm0 --client-no-release-cid --client-cid=3 --loc-stop
[/dev/cdc-wdm0] Successfully stopped location tracking (session id 0)
[/dev/cdc-wdm0] Client ID not released:
        Service: 'loc'
            CID: '3'
root:~# qmicli -d /dev/cdc-wdm0 --client-cid=3 --loc-noop

I’ve found following issue for libqmi.
It would be nice to get feedback from Quectel support.
Does RG520N-LA supports location service over QMI interface?

1 Like

Dear @viviane.r
I have sent a new firmware to you, please try again.

1 Like

Thank you, Silvia.

I successfully installed the new firmware using QFlash v7.5. Unfortunately, the behavior remains the same. I still receive the error “QMI protocol error (48): InvalidArgument” when using --loc-follow-nmea, and “QMI protocol error (94): NotSupported” when running the --loc-get-nmea-types command.

Is there anything else I can try to resolve this issue?
For reference, here is the module information:

ATI
Quectel
RG520N-LA
Revision: RG520NLADAR03A04M8G

I have tried to configure it with and without proxy. These are the commands I have used and the outputs:

root:~# qmicli  -d /dev/cdc-wdm0  --device-open-proxy  --loc-get-operation-mode
Successfully retrieved operation mode: standalone
root:~# qmicli  -d /dev/cdc-wdm0  --device-open-proxy  --loc-get-engine-lock
Successfully retrieved engine lock: none
root:~# qmicli  -d /dev/cdc-wdm0  --device-open-proxy  --loc-get-nmea-types -v
[19 Apr 2018, 05:27:49] [Debug] [/dev/cdc-wdm0] opening device with flags 'proxy, auto, expect-indications'...
[19 Apr 2018, 05:27:49] [Debug] [/dev/cdc-wdm0] automatically selecting QMI mode
[19 Apr 2018, 05:27:49] [Debug] [/dev/cdc-wdm0] created endpoint
[19 Apr 2018, 05:27:49] [Debug] [/dev/cdc-wdm0] sent message...
<<<<<< RAW:
<<<<<<   length = 28
<<<<<<   data   = 01:1B:00:00:00:00:00:01:00:FF:10:00...

[19 Apr 2018, 05:27:49] [Debug] [/dev/cdc-wdm0] sent generic request (translated)...
<<<<<< QMUX:
<<<<<<   length  = 27
<<<<<<   flags   = 0x00
<<<<<<   service = "ctl"
<<<<<<   client  = 0
<<<<<< QMI:
<<<<<<   flags       = "none"
<<<<<<   transaction = 1
<<<<<<   tlv_length  = 16
<<<<<<   message     = "Internal Proxy Open" (0xFF00)
<<<<<< TLV:
<<<<<<   type       = "Device Path" (0x01)
<<<<<<   length     = 13
<<<<<<   value      = 2F:64:65:76:2F:63:64:63:2D:77:64:6D:30
<<<<<<   translated = /dev/cdc-wdm0

[19 Apr 2018, 05:27:49] [Debug] [/dev/cdc-wdm0] received message...
<<<<<< RAW:
<<<<<<   length = 19
<<<<<<   data   = 01:12:00:80:00:00:01:01:00:FF:07:00...

[19 Apr 2018, 05:27:49] [Debug] [/dev/cdc-wdm0] received generic response (translated)...
<<<<<< QMUX:
<<<<<<   length  = 18
<<<<<<   flags   = 0x80
<<<<<<   service = "ctl"
<<<<<<   client  = 0
<<<<<< QMI:
<<<<<<   flags       = "response"
<<<<<<   transaction = 1
<<<<<<   tlv_length  = 7
<<<<<<   message     = "Internal Proxy Open" (0xFF00)
<<<<<< TLV:
<<<<<<   type       = "Result" (0x02)
<<<<<<   length     = 4
<<<<<<   value      = 00:00:00:00
<<<<<<   translated = SUCCESS

[19 Apr 2018, 05:27:49] [Debug] QMI Device at '/dev/cdc-wdm0' ready
[19 Apr 2018, 05:27:49] [Debug] [/dev/cdc-wdm0] assuming service 'loc' is supported...
[19 Apr 2018, 05:27:49] [Debug] [/dev/cdc-wdm0] allocating new client ID...
[19 Apr 2018, 05:27:49] [Debug] [/dev/cdc-wdm0] sent message...
<<<<<< RAW:
<<<<<<   length = 16
<<<<<<   data   = 01:0F:00:00:00:00:00:02:22:00:04:00...

[19 Apr 2018, 05:27:49] [Debug] [/dev/cdc-wdm0] sent generic request (translated)...
<<<<<< QMUX:
<<<<<<   length  = 15
<<<<<<   flags   = 0x00
<<<<<<   service = "ctl"
<<<<<<   client  = 0
<<<<<< QMI:
<<<<<<   flags       = "none"
<<<<<<   transaction = 2
<<<<<<   tlv_length  = 4
<<<<<<   message     = "Allocate CID" (0x0022)
<<<<<< TLV:
<<<<<<   type       = "Service" (0x01)
<<<<<<   length     = 1
<<<<<<   value      = 10
<<<<<<   translated = loc

[19 Apr 2018, 05:27:49] [Debug] [/dev/cdc-wdm0] received message...
<<<<<< RAW:
<<<<<<   length = 24
<<<<<<   data   = 01:17:00:80:00:00:01:02:22:00:0C:00...

[19 Apr 2018, 05:27:49] [Debug] [/dev/cdc-wdm0] received generic response (translated)...
<<<<<< QMUX:
<<<<<<   length  = 23
<<<<<<   flags   = 0x80
<<<<<<   service = "ctl"
<<<<<<   client  = 0
<<<<<< QMI:
<<<<<<   flags       = "response"
<<<<<<   transaction = 2
<<<<<<   tlv_length  = 12
<<<<<<   message     = "Allocate CID" (0x0022)
<<<<<< TLV:
<<<<<<   type       = "Result" (0x02)
<<<<<<   length     = 4
<<<<<<   value      = 00:00:00:00
<<<<<<   translated = SUCCESS
<<<<<< TLV:
<<<<<<   type       = "Allocation Info" (0x01)
<<<<<<   length     = 2
<<<<<<   value      = 10:02
<<<<<<   translated = [ service = 'loc' cid = '2' ]

[19 Apr 2018, 05:27:49] [Debug] [/dev/cdc-wdm0] registered 'loc' (version unknown) client with ID '2'
[19 Apr 2018, 05:27:49] [Debug] [/dev/cdc-wdm0] sent message...
<<<<<< RAW:
<<<<<<   length = 13
<<<<<<   data   = 01:0C:00:00:10:02:00:01:00:3F:00:00...

[19 Apr 2018, 05:27:49] [Debug] [/dev/cdc-wdm0] sent generic request (translated)...
<<<<<< QMUX:
<<<<<<   length  = 12
<<<<<<   flags   = 0x00
<<<<<<   service = "loc"
<<<<<<   client  = 2
<<<<<< QMI:
<<<<<<   flags       = "none"
<<<<<<   transaction = 1
<<<<<<   tlv_length  = 0
<<<<<<   message     = "Get NMEA Types" (0x003F)

[19 Apr 2018, 05:27:49] [Debug] [/dev/cdc-wdm0] received message...
<<<<<< RAW:
<<<<<<   length = 20
<<<<<<   data   = 01:13:00:80:10:02:02:01:00:3F:00:07...

[19 Apr 2018, 05:27:49] [Debug] [/dev/cdc-wdm0] received generic response (translated)...
<<<<<< QMUX:
<<<<<<   length  = 19
<<<<<<   flags   = 0x80
<<<<<<   service = "loc"
<<<<<<   client  = 2
<<<<<< QMI:
<<<<<<   flags       = "response"
<<<<<<   transaction = 1
<<<<<<   tlv_length  = 7
<<<<<<   message     = "Get NMEA Types" (0x003F)
<<<<<< TLV:
<<<<<<   type       = "Result" (0x02)
<<<<<<   length     = 4
<<<<<<   value      = 01:00:5E:00
<<<<<<   translated = FAILURE: NotSupported

error: could not get NMEA types: QMI protocol error (94): 'NotSupported'
[19 Apr 2018, 05:27:49] [Debug] [/dev/cdc-wdm0] releasing 'loc' client with flags 'release-cid'...
[19 Apr 2018, 05:27:49] [Debug] [/dev/cdc-wdm0] unregistered 'loc' client with ID '2'
[19 Apr 2018, 05:27:49] [Debug] [/dev/cdc-wdm0] sent message...
<<<<<< RAW:
<<<<<<   length = 17
<<<<<<   data   = 01:10:00:00:00:00:00:03:23:00:05:00...

[19 Apr 2018, 05:27:49] [Debug] [/dev/cdc-wdm0] sent generic request (translated)...
<<<<<< QMUX:
<<<<<<   length  = 16
<<<<<<   flags   = 0x00
<<<<<<   service = "ctl"
<<<<<<   client  = 0
<<<<<< QMI:
<<<<<<   flags       = "none"
<<<<<<   transaction = 3
<<<<<<   tlv_length  = 5
<<<<<<   message     = "Release CID" (0x0023)
<<<<<< TLV:
<<<<<<   type       = "Release Info" (0x01)
<<<<<<   length     = 2
<<<<<<   value      = 10:02
<<<<<<   translated = [ service = 'loc' cid = '2' ]

[19 Apr 2018, 05:27:49] [Debug] [/dev/cdc-wdm0] received message...
<<<<<< RAW:
<<<<<<   length = 24
<<<<<<   data   = 01:17:00:80:00:00:01:03:23:00:0C:00...

[19 Apr 2018, 05:27:49] [Debug] [/dev/cdc-wdm0] received generic response (translated)...
<<<<<< QMUX:
<<<<<<   length  = 23
<<<<<<   flags   = 0x80
<<<<<<   service = "ctl"
<<<<<<   client  = 0
<<<<<< QMI:
<<<<<<   flags       = "response"
<<<<<<   transaction = 3
<<<<<<   tlv_length  = 12
<<<<<<   message     = "Release CID" (0x0023)
<<<<<< TLV:
<<<<<<   type       = "Result" (0x02)
<<<<<<   length     = 4
<<<<<<   value      = 00:00:00:00
<<<<<<   translated = SUCCESS
<<<<<< TLV:
<<<<<<   type       = "Release Info" (0x01)
<<<<<<   length     = 2
<<<<<<   value      = 10:02
<<<<<<   translated = [ service = 'loc' cid = '2' ]

[19 Apr 2018, 05:27:49] [Debug] Client released
[19 Apr 2018, 05:27:49] [Debug] Closed
root:~# qmicli  -d /dev/cdc-wdm0  --device-open-proxy  --loc-get-operation-mode
Successfully retrieved operation mode: standalone
root:~# qmicli  -d /dev/cdc-wdm0  --device-open-proxy  --loc-start
[/dev/cdc-wdm0] Successfully started location tracking (session id 0)
root:~# qmicli  -d /dev/cdc-wdm0  --device-open-proxy  --loc-follow-nmea -v
[19 Apr 2018, 05:32:42] [Debug] [/dev/cdc-wdm0] opening device with flags 'proxy, auto, expect-indications'...
[19 Apr 2018, 05:32:42] [Debug] [/dev/cdc-wdm0] automatically selecting QMI mode
[19 Apr 2018, 05:32:42] [Debug] [/dev/cdc-wdm0] created endpoint
[19 Apr 2018, 05:32:42] [Debug] [/dev/cdc-wdm0] sent message...
<<<<<< RAW:
<<<<<<   length = 28
<<<<<<   data   = 01:1B:00:00:00:00:00:01:00:FF:10:00...

[19 Apr 2018, 05:32:42] [Debug] [/dev/cdc-wdm0] sent generic request (translated)...
<<<<<< QMUX:
<<<<<<   length  = 27
<<<<<<   flags   = 0x00
<<<<<<   service = "ctl"
<<<<<<   client  = 0
<<<<<< QMI:
<<<<<<   flags       = "none"
<<<<<<   transaction = 1
<<<<<<   tlv_length  = 16
<<<<<<   message     = "Internal Proxy Open" (0xFF00)
<<<<<< TLV:
<<<<<<   type       = "Device Path" (0x01)
<<<<<<   length     = 13
<<<<<<   value      = 2F:64:65:76:2F:63:64:63:2D:77:64:6D:30
<<<<<<   translated = /dev/cdc-wdm0

[19 Apr 2018, 05:32:42] [Debug] [/dev/cdc-wdm0] received message...
<<<<<< RAW:
<<<<<<   length = 19
<<<<<<   data   = 01:12:00:80:00:00:01:01:00:FF:07:00...

[19 Apr 2018, 05:32:42] [Debug] [/dev/cdc-wdm0] received generic response (translated)...
<<<<<< QMUX:
<<<<<<   length  = 18
<<<<<<   flags   = 0x80
<<<<<<   service = "ctl"
<<<<<<   client  = 0
<<<<<< QMI:
<<<<<<   flags       = "response"
<<<<<<   transaction = 1
<<<<<<   tlv_length  = 7
<<<<<<   message     = "Internal Proxy Open" (0xFF00)
<<<<<< TLV:
<<<<<<   type       = "Result" (0x02)
<<<<<<   length     = 4
<<<<<<   value      = 00:00:00:00
<<<<<<   translated = SUCCESS

[19 Apr 2018, 05:32:42] [Debug] QMI Device at '/dev/cdc-wdm0' ready
[19 Apr 2018, 05:32:42] [Debug] [/dev/cdc-wdm0] assuming service 'loc' is supported...
[19 Apr 2018, 05:32:42] [Debug] [/dev/cdc-wdm0] allocating new client ID...
[19 Apr 2018, 05:32:42] [Debug] [/dev/cdc-wdm0] sent message...
<<<<<< RAW:
<<<<<<   length = 16
<<<<<<   data   = 01:0F:00:00:00:00:00:02:22:00:04:00...

[19 Apr 2018, 05:32:42] [Debug] [/dev/cdc-wdm0] sent generic request (translated)...
<<<<<< QMUX:
<<<<<<   length  = 15
<<<<<<   flags   = 0x00
<<<<<<   service = "ctl"
<<<<<<   client  = 0
<<<<<< QMI:
<<<<<<   flags       = "none"
<<<<<<   transaction = 2
<<<<<<   tlv_length  = 4
<<<<<<   message     = "Allocate CID" (0x0022)
<<<<<< TLV:
<<<<<<   type       = "Service" (0x01)
<<<<<<   length     = 1
<<<<<<   value      = 10
<<<<<<   translated = loc

[19 Apr 2018, 05:32:42] [Debug] [/dev/cdc-wdm0] received message...
<<<<<< RAW:
<<<<<<   length = 24
<<<<<<   data   = 01:17:00:80:00:00:01:02:22:00:0C:00...

[19 Apr 2018, 05:32:42] [Debug] [/dev/cdc-wdm0] received generic response (translated)...
<<<<<< QMUX:
<<<<<<   length  = 23
<<<<<<   flags   = 0x80
<<<<<<   service = "ctl"
<<<<<<   client  = 0
<<<<<< QMI:
<<<<<<   flags       = "response"
<<<<<<   transaction = 2
<<<<<<   tlv_length  = 12
<<<<<<   message     = "Allocate CID" (0x0022)
<<<<<< TLV:
<<<<<<   type       = "Result" (0x02)
<<<<<<   length     = 4
<<<<<<   value      = 00:00:00:00
<<<<<<   translated = SUCCESS
<<<<<< TLV:
<<<<<<   type       = "Allocation Info" (0x01)
<<<<<<   length     = 2
<<<<<<   value      = 10:02
<<<<<<   translated = [ service = 'loc' cid = '2' ]

[19 Apr 2018, 05:32:42] [Debug] [/dev/cdc-wdm0] registered 'loc' (version unknown) client with ID '2'
[19 Apr 2018, 05:32:42] [Debug] [/dev/cdc-wdm0] sent message...
<<<<<< RAW:
<<<<<<   length = 24
<<<<<<   data   = 01:17:00:00:10:02:00:01:00:21:00:0B...

[19 Apr 2018, 05:32:42] [Debug] [/dev/cdc-wdm0] sent generic request (translated)...
<<<<<< QMUX:
<<<<<<   length  = 23
<<<<<<   flags   = 0x00
<<<<<<   service = "loc"
<<<<<<   client  = 2
<<<<<< QMI:
<<<<<<   flags       = "none"
<<<<<<   transaction = 1
<<<<<<   tlv_length  = 11
<<<<<<   message     = "Register Events" (0x0021)
<<<<<< TLV:
<<<<<<   type       = "Event Registration Mask" (0x01)
<<<<<<   length     = 8
<<<<<<   value      = 04:00:00:00:00:00:00:00
<<<<<<   translated = nmea

[19 Apr 2018, 05:32:42] [Debug] [/dev/cdc-wdm0] received message...
<<<<<< RAW:
<<<<<<   length = 20
<<<<<<   data   = 01:13:00:80:10:02:02:01:00:21:00:07...

[19 Apr 2018, 05:32:42] [Debug] [/dev/cdc-wdm0] received generic response (translated)...
<<<<<< QMUX:
<<<<<<   length  = 19
<<<<<<   flags   = 0x80
<<<<<<   service = "loc"
<<<<<<   client  = 2
<<<<<< QMI:
<<<<<<   flags       = "response"
<<<<<<   transaction = 1
<<<<<<   tlv_length  = 7
<<<<<<   message     = "Register Events" (0x0021)
<<<<<< TLV:
<<<<<<   type       = "Result" (0x02)
<<<<<<   length     = 4
<<<<<<   value      = 01:00:30:00
<<<<<<   translated = FAILURE: InvalidArgument

error: could not register location tracking events: QMI protocol error (48): 'InvalidArgument'
[19 Apr 2018, 05:32:42] [Debug] [/dev/cdc-wdm0] releasing 'loc' client with flags 'release-cid'...
[19 Apr 2018, 05:32:42] [Debug] [/dev/cdc-wdm0] unregistered 'loc' client with ID '2'
[19 Apr 2018, 05:32:42] [Debug] [/dev/cdc-wdm0] sent message...
<<<<<< RAW:
<<<<<<   length = 17
<<<<<<   data   = 01:10:00:00:00:00:00:03:23:00:05:00...

[19 Apr 2018, 05:32:42] [Debug] [/dev/cdc-wdm0] sent generic request (translated)...
<<<<<< QMUX:
<<<<<<   length  = 16
<<<<<<   flags   = 0x00
<<<<<<   service = "ctl"
<<<<<<   client  = 0
<<<<<< QMI:
<<<<<<   flags       = "none"
<<<<<<   transaction = 3
<<<<<<   tlv_length  = 5
<<<<<<   message     = "Release CID" (0x0023)
<<<<<< TLV:
<<<<<<   type       = "Release Info" (0x01)
<<<<<<   length     = 2
<<<<<<   value      = 10:02
<<<<<<   translated = [ service = 'loc' cid = '2' ]

[19 Apr 2018, 05:32:42] [Debug] [/dev/cdc-wdm0] received message...
<<<<<< RAW:
<<<<<<   length = 24
<<<<<<   data   = 01:17:00:80:00:00:01:03:23:00:0C:00...

[19 Apr 2018, 05:32:42] [Debug] [/dev/cdc-wdm0] received generic response (translated)...
<<<<<< QMUX:
<<<<<<   length  = 23
<<<<<<   flags   = 0x80
<<<<<<   service = "ctl"
<<<<<<   client  = 0
<<<<<< QMI:
<<<<<<   flags       = "response"
<<<<<<   transaction = 3
<<<<<<   tlv_length  = 12
<<<<<<   message     = "Release CID" (0x0023)
<<<<<< TLV:
<<<<<<   type       = "Result" (0x02)
<<<<<<   length     = 4
<<<<<<   value      = 00:00:00:00
<<<<<<   translated = SUCCESS
<<<<<< TLV:
<<<<<<   type       = "Release Info" (0x01)
<<<<<<   length     = 2
<<<<<<   value      = 10:02
<<<<<<   translated = [ service = 'loc' cid = '2' ]

[19 Apr 2018, 05:32:42] [Debug] Client released
[19 Apr 2018, 05:32:42] [Debug] Closed
root:~# qmicli  -d /dev/cdc-wdm0  --device-open-proxy  --loc-stop
[/dev/cdc-wdm0] Successfully stopped location tracking (session id 0)

The same comands without proxy:

root:~# qmicli -d /dev/cdc-wdm0 --client-no-release-cid --loc-noop
[/dev/cdc-wdm0] Client ID not released:
        Service: 'loc'
            CID: '5'
root:~# qmicli -d /dev/cdc-wdm0 --client-no-release-cid --client-cid=5 --loc-get-nmea-types
error: could not get NMEA types: QMI protocol error (94): 'NotSupported'
[/dev/cdc-wdm0] Client ID not released:
        Service: 'loc'
            CID: '5'
root:~# qmicli -d /dev/cdc-wdm0 --client-no-release-cid --client-cid=5 --loc-get-nmea-types -v
[19 Apr 2018, 06:25:15] [Debug] [/dev/cdc-wdm0] opening device with flags 'auto, expect-indications'...
[19 Apr 2018, 06:25:15] [Debug] [/dev/cdc-wdm0] automatically selecting QMI mode
[19 Apr 2018, 06:25:15] [Debug] [/dev/cdc-wdm0] created endpoint
[19 Apr 2018, 06:25:15] [Debug] QMI Device at '/dev/cdc-wdm0' ready
[19 Apr 2018, 06:25:15] [Debug] Reusing CID '5'
[19 Apr 2018, 06:25:15] [Debug] [/dev/cdc-wdm0] assuming service 'loc' is supported...
[19 Apr 2018, 06:25:15] [Debug] [/dev/cdc-wdm0] reusing client CID '5'...
[19 Apr 2018, 06:25:15] [Debug] [/dev/cdc-wdm0] registered 'loc' (version unknown) client with ID '5'
[19 Apr 2018, 06:25:15] [Debug] [/dev/cdc-wdm0] sent message...
<<<<<< RAW:
<<<<<<   length = 13
<<<<<<   data   = 01:0C:00:00:10:05:00:01:00:3F:00:00...

[19 Apr 2018, 06:25:15] [Debug] [/dev/cdc-wdm0] sent generic request (translated)...
<<<<<< QMUX:
<<<<<<   length  = 12
<<<<<<   flags   = 0x00
<<<<<<   service = "loc"
<<<<<<   client  = 5
<<<<<< QMI:
<<<<<<   flags       = "none"
<<<<<<   transaction = 1
<<<<<<   tlv_length  = 0
<<<<<<   message     = "Get NMEA Types" (0x003F)

[19 Apr 2018, 06:25:15] [Debug] [/dev/cdc-wdm0] received message...
<<<<<< RAW:
<<<<<<   length = 20
<<<<<<   data   = 01:13:00:80:10:05:02:01:00:3F:00:07...

[19 Apr 2018, 06:25:15] [Debug] [/dev/cdc-wdm0] received generic response (translated)...
<<<<<< QMUX:
<<<<<<   length  = 19
<<<<<<   flags   = 0x80
<<<<<<   service = "loc"
<<<<<<   client  = 5
<<<<<< QMI:
<<<<<<   flags       = "response"
<<<<<<   transaction = 1
<<<<<<   tlv_length  = 7
<<<<<<   message     = "Get NMEA Types" (0x003F)
<<<<<< TLV:
<<<<<<   type       = "Result" (0x02)
<<<<<<   length     = 4
<<<<<<   value      = 01:00:5E:00
<<<<<<   translated = FAILURE: NotSupported

error: could not get NMEA types: QMI protocol error (94): 'NotSupported'
[/dev/cdc-wdm0] Client ID not released:
        Service: 'loc'
            CID: '5'
[19 Apr 2018, 06:25:15] [Debug] [/dev/cdc-wdm0] releasing 'loc' client with flags 'none'...
[19 Apr 2018, 06:25:15] [Debug] [/dev/cdc-wdm0] unregistered 'loc' client with ID '5'
[19 Apr 2018, 06:25:15] [Debug] Client released
[19 Apr 2018, 06:25:15] [Debug] Closed
root:~# qmicli -d /dev/cdc-wdm0 --client-no-release-cid --client-cid=5 --loc-start
[/dev/cdc-wdm0] Successfully started location tracking (session id 0)
[/dev/cdc-wdm0] Client ID not released:
        Service: 'loc'
            CID: '5'
root:~# qmicli -d /dev/cdc-wdm0 --client-no-release-cid --client-cid=5 --loc-follow-nmea
error: could not register location tracking events: QMI protocol error (48): 'InvalidArgument'
[/dev/cdc-wdm0] Client ID not released:
        Service: 'loc'
            CID: '5'
root:~# qmicli -d /dev/cdc-wdm0 --client-no-release-cid --client-cid=5 --loc-follow-nmea -v
[19 Apr 2018, 06:26:16] [Debug] [/dev/cdc-wdm0] opening device with flags 'auto, expect-indications'...
[19 Apr 2018, 06:26:16] [Debug] [/dev/cdc-wdm0] automatically selecting QMI mode
[19 Apr 2018, 06:26:16] [Debug] [/dev/cdc-wdm0] created endpoint
[19 Apr 2018, 06:26:16] [Debug] QMI Device at '/dev/cdc-wdm0' ready
[19 Apr 2018, 06:26:16] [Debug] Reusing CID '5'
[19 Apr 2018, 06:26:16] [Debug] [/dev/cdc-wdm0] assuming service 'loc' is supported...
[19 Apr 2018, 06:26:16] [Debug] [/dev/cdc-wdm0] reusing client CID '5'...
[19 Apr 2018, 06:26:16] [Debug] [/dev/cdc-wdm0] registered 'loc' (version unknown) client with ID '5'
[19 Apr 2018, 06:26:16] [Debug] [/dev/cdc-wdm0] sent message...
<<<<<< RAW:
<<<<<<   length = 24
<<<<<<   data   = 01:17:00:00:10:05:00:01:00:21:00:0B...

[19 Apr 2018, 06:26:16] [Debug] [/dev/cdc-wdm0] sent generic request (translated)...
<<<<<< QMUX:
<<<<<<   length  = 23
<<<<<<   flags   = 0x00
<<<<<<   service = "loc"
<<<<<<   client  = 5
<<<<<< QMI:
<<<<<<   flags       = "none"
<<<<<<   transaction = 1
<<<<<<   tlv_length  = 11
<<<<<<   message     = "Register Events" (0x0021)
<<<<<< TLV:
<<<<<<   type       = "Event Registration Mask" (0x01)
<<<<<<   length     = 8
<<<<<<   value      = 04:00:00:00:00:00:00:00
<<<<<<   translated = nmea

[19 Apr 2018, 06:26:16] [Debug] [/dev/cdc-wdm0] received message...
<<<<<< RAW:
<<<<<<   length = 20
<<<<<<   data   = 01:13:00:80:10:05:02:01:00:21:00:07...

[19 Apr 2018, 06:26:16] [Debug] [/dev/cdc-wdm0] received generic response (translated)...
<<<<<< QMUX:
<<<<<<   length  = 19
<<<<<<   flags   = 0x80
<<<<<<   service = "loc"
<<<<<<   client  = 5
<<<<<< QMI:
<<<<<<   flags       = "response"
<<<<<<   transaction = 1
<<<<<<   tlv_length  = 7
<<<<<<   message     = "Register Events" (0x0021)
<<<<<< TLV:
<<<<<<   type       = "Result" (0x02)
<<<<<<   length     = 4
<<<<<<   value      = 01:00:30:00
<<<<<<   translated = FAILURE: InvalidArgument

error: could not register location tracking events: QMI protocol error (48): 'InvalidArgument'
[/dev/cdc-wdm0] Client ID not released:
        Service: 'loc'
            CID: '5'
[19 Apr 2018, 06:26:16] [Debug] [/dev/cdc-wdm0] releasing 'loc' client with flags 'none'...
[19 Apr 2018, 06:26:16] [Debug] [/dev/cdc-wdm0] unregistered 'loc' client with ID '5'
[19 Apr 2018, 06:26:16] [Debug] Client released
[19 Apr 2018, 06:26:16] [Debug] Closed
root:~# qmicli -d /dev/cdc-wdm0 --client-no-release-cid --client-cid=5 --loc-stop
[/dev/cdc-wdm0] Successfully stopped location tracking (session id 0)
[/dev/cdc-wdm0] Client ID not released:
        Service: 'loc'
            CID: '5'
root:~# qmicli -d /dev/cdc-wdm0 --client-cid=5 --loc-noop

Dear @viviane.r
As checked internally, QMI is Qualcomm feature, we are not sure whether it supports. You can contact with Qualcomm.
You can use our AT commands of GNSS.

Thank you, Silvia.
I understand and appreciate your support!