First wds/wda command fails in approx 70% of all boots on SIMCom 7600E-H

Aleksander Morgado aleksander at aleksander.es
Sat Jul 18 07:14:15 UTC 2020


Hey,

> I have a very weird problem with the SIMCom 7600E-H. In approx. 70% of all bootups, some wda/wds commands that apparently talk with the card always fail the first time (and possibly subsequent times) they are run. E.g. if I do:
>
> platform ~ # ip link set dev wwp0s20u5u1i5 down
> platform ~ # qmicli -p -d /dev/cdc-wdm0 --wda-get-data-format
> error: couldn't create client for the 'wda' service: CID allocation failed in the CTL client: Transaction timed out
> platform ~ # qmicli -p -d /dev/cdc-wdm0 --wda-get-data-format
> error: couldn't create client for the 'wda' service: QMI protocol error (3): 'Internal'
>

The type of error you received is in the CTL service, when attempting
to allocate a new client. I would assume that the error you're seeing
is just because the modem needs time to fully boot, could that be it?
Does the command also fail consistently if you e.g. wait some minutes
(just to be sure) before sending those commands?

Is the wda-get-data-format the first command you ever send to the device?

In ModemManager we do some initial "probing" of the port, e.g.
attempting to list the supported QMI services (an action that also
requires the CTL service) and only once that has been completed, we go
on with other things like several client allocations.

If you want to do this kind of probing yourself, you could also run
--wda-noop --client-no-release-cid so that qmicli attempts to just
allocate a WDA client and not release it on exit. You can run this
command in a loop until it succeeds, and when it does, you can then
run --wda-get-data-format --client-cid=X to use the successfully
allocated client. Or, well, you could also run in a loop the
--wda-get-data-format command until it succeeds.

-- 
Aleksander
https://aleksander.es


More information about the libqmi-devel mailing list