Details/sequence/order of allocate_client calls? Allocate client for WDA fails...

Martin Maurer martin.maurer at mmeacs.de
Fri Sep 29 15:44:52 UTC 2023


Am 29.09.2023 um 09:46 schrieb Martin Maurer:
> Hello,
>
> I have a question about allocating clients. I use this (based on 
> python example in repo):
>
> def open_ready(qmidev,result,user_data=None):
>     print("open_ready")
>     try:
>         qmidev.open_finish(result)
>     except GLib.GError as error:
>         sys.stderr.write("Couldn't open QMI device: %s\n" % 
> error.message)
>         main_loop.quit()
>         return
>
>     qmidev.allocate_client(Qmi.Service.DMS, Qmi.CID_NONE, 10, None, 
> allocate_client_DMS_ready, None)
>
>     qmidev.allocate_client(Qmi.Service.WDA, Qmi.CID_NONE, 10, None, 
> allocate_client_WDA_ready, None)
>
>     qmidev.allocate_client(Qmi.Service.WDS, Qmi.CID_NONE, 10, None, 
> allocate_client_WDS_ready, None)
>
>
> This gives me:
>
>
> open_ready
> allocate_client_DMS_ready
> allocate_client_DMS_ready: successful
> CID 4
> allocate_client_WDA_ready
> Couldn't allocate QMI client WDA: QMI protocol error (3): 'Internal'
> device_close
> device_close_ready
> Query done
> allocate_client_WDS_ready
> Couldn't allocate QMI client WDS: CID allocation failed in the CTL 
> client: Transaction timed out
>
>
> I am using:
>
> $ qmicli --version
> qmicli 1.33.8
> Copyright (C) 2012-2023 Aleksander Morgado
> License GPLv2+: GNU GPL version 2 or later 
> <http://gnu.org/licenses/gpl-2.0.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
>
> $
>
>
> Why it fails to allocate a simple WDA client? Does it need more, so 
> that I can allocate it successfully? Or order important?
>
> And even when it fails, why does WDS fail afterwards?
>
> When I comment out "WDA" it behaves correctly:
>
> open_ready
> allocate_client_DMS_ready
> allocate_client_DMS_ready: successful
> CID 5
> allocate_client_WDS_ready
> allocate_client_WDS_ready: successful
> CID 21
>
> Or do I need to wait for an answer from this
>
> qmidev.allocate_client(Qmi.Service.DMS, Qmi.CID_NONE, 10, None, 
> allocate_client_DMS_ready, None)
>
> before calling
>
> qmidev.allocate_client(Qmi.Service.WDA, Qmi.CID_NONE, 10, None, 
> allocate_client_WDA_ready, None)  ?
>
>
> PS: How can I query used libqmi version in Python?
>
> PS2: And how I can I enable debug (like -v) in Python? Some Python 
> call? Or must I use some environment variable?
>
>
> Many thanks!
>
> Best regards,
>
> Martin
>

Same happens via command line:

trio at radio2:~/qmi-python $ sudo qmicli -v -p -d /dev/cdc-wdm0 
--device-open-qmi --wda-noop
[29 Sep 2023, 16:41:27] [Debug] [/dev/cdc-wdm0] opening device with 
flags 'proxy'...
[29 Sep 2023, 16:41:27] [Debug] [/dev/cdc-wdm0] created endpoint
[29 Sep 2023, 16:41:27] [Debug] [/dev/cdc-wdm0] sent message...
<<<<<< RAW:
<<<<<<   length = 28
<<<<<<   data   = 01:1B:00:00:00:00:00:01:00:FF:10:00...

[29 Sep 2023, 16:41:27] [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

[29 Sep 2023, 16:41:27] [Debug] [/dev/cdc-wdm0] received message...
<<<<<< RAW:
<<<<<<   length = 19
<<<<<<   data   = 01:12:00:80:00:00:01:01:00:FF:07:00...

[29 Sep 2023, 16:41:27] [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

[29 Sep 2023, 16:41:27] [Debug] QMI Device at '/dev/cdc-wdm0' ready
[29 Sep 2023, 16:41:27] [Debug] [/dev/cdc-wdm0] assuming service 'wda' 
is supported...
[29 Sep 2023, 16:41:27] [Debug] [/dev/cdc-wdm0] allocating new client ID...
[29 Sep 2023, 16:41:27] [Debug] [/dev/cdc-wdm0] sent message...
<<<<<< RAW:
<<<<<<   length = 16
<<<<<<   data   = 01:0F:00:00:00:00:00:02:22:00:04:00...

[29 Sep 2023, 16:41:27] [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      = 1A
<<<<<<   translated = wda

[29 Sep 2023, 16:41:27] [Debug] [/dev/cdc-wdm0] received message...
<<<<<< RAW:
<<<<<<   length = 19
<<<<<<   data   = 01:12:00:80:00:00:01:02:22:00:07:00...

[29 Sep 2023, 16:41:27] [Debug] [/dev/cdc-wdm0] received generic 
response (translated)...
<<<<<< QMUX:
<<<<<<   length  = 18
<<<<<<   flags   = 0x80
<<<<<<   service = "ctl"
<<<<<<   client  = 0
<<<<<< QMI:
<<<<<<   flags       = "response"
<<<<<<   transaction = 2
<<<<<<   tlv_length  = 7
<<<<<<   message     = "Allocate CID" (0x0022)
<<<<<< TLV:
<<<<<<   type       = "Result" (0x02)
<<<<<<   length     = 4
<<<<<<   value      = 01:00:03:00
<<<<<<   translated = FAILURE: Internal

error: couldn't create client for the 'wda' service: QMI protocol error 
(3): 'Internal'
$


I am using a self compiled libqmi 1.33.8


wda is listed:

trio at radio2:~/qmi-python $ sudo qmicli -p -d /dev/cdc-wdm0 
--get-service-version-info
[/dev/cdc-wdm0] Supported versions:
         ctl (1.5)
         wds (1.67)
         dms (1.0)
         nas (1.25)
         qos (1.12)
         wms (1.10)
         auth (1.3)
         at (1.2)
         voice (2.1)
         cat2 (2.24)
         uim (1.46)
         pbm (1.4)
         test (1.0)
         loc (2.0)
         sar (1.0)
         ts (1.0)
         tmd (1.0)
         wda (1.16)
         csvt (1.1)
         coex (1.0)
         pdc (1.0)
         rfrpe (1.0)
         dsd (1.0)
         unknown [0x2d] (1.0)
         unknown [0x30] (1.0)
         unknown [0x32] (1.0)
         unknown [0x36] (1.0)
trio at radio2:~/qmi-python $



More information about the libqmi-devel mailing list