First wds/wda command fails in approx 70% of all boots on SIMCom 7600E-H
Tor Rune Skoglund
trs at fourc.eu
Fri Jul 17 16:17:50 UTC 2020
Hi List,
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'
As you see, subsequent calls then also fail.
However, if the first command is e.g. wds-get-autoconnect-settings or
wds-reset or others, then subsequent wda/wds commands always work:
platform ~ # ip link set dev wwp0s20u5u1i5 down
platform ~ # qmicli -p -d /dev/cdc-wdm0 --wds-get-autoconnect-settings
# should print disabled, but fails ~70% of the time
error: couldn't create client for the 'wds' service: CID allocation
failed in the CTL client: Transaction timed out
platform ~ # qmicli -p -d /dev/cdc-wdm0 --get-expected-data-format
802-3
platform ~ # qmicli -p -d /dev/cdc-wdm0 --set-expected-data-format=raw-ip
[/dev/cdc-wdm0] expected data format set to: raw-ip
platform ~ # qmicli -p -d /dev/cdc-wdm0 --wda-get-data-format
[/dev/cdc-wdm0] Successfully got data format
QoS flow header: no
Link layer protocol: 'raw-ip'
Uplink data aggregation protocol: 'disabled'
Downlink data aggregation protocol: 'disabled'
NDP signature: '0'
Uplink data aggregation max size: '0'
Downlink data aggregation max size: '0'
platform ~ # qmicli -p -d /dev/cdc-wdm0 --wda-set-data-format=raw-ip
[/dev/cdc-wdm0] Successfully set data format
QoS flow header: no
Link layer protocol: 'raw-ip'
Uplink data aggregation protocol: 'disabled'
Downlink data aggregation protocol: 'disabled'
NDP signature: '0'
Downlink data aggregation max datagrams: '0'
Downlink data aggregation max size: '0'
One quick and dirty fix is to run an "empty" wds command first (which
then fails or works - does not matter), as subsequent wds/wda commands
do never seem to fail then:
platform ~ # ip link set dev wwp0s20u5u1i5 down
platform ~ # qmicli -p -d /dev/cdc-wdm0 --wds-noop
error: couldn't create client for the 'wds' service: CID allocation
failed in the CTL client: Transaction timed out
platform ~ # qmicli -p -d /dev/cdc-wdm0 --wds-get-autoconnect-settings
# should print disabled
Autoconnect settings retrieved:
Status: 'disabled'
.... working, as above ....
Of course, this also makes qmi-network to fail at ~70% of the
invocations. The fix above could work fine, but I think it would be best
to know the actual reason for the problem and have a proper solution
that could be trusted in the longer run. And save 10 secs during boot :)
The system is Gentoo, 32-bit, kernel 4.9.221. Tested with both newest
SIMCom FW and the FW before that, and with two modems. Settings for the
cards reset to factury without any change. Also tested with
libqmi-1.22.2 and the newest master. Does not happen on Sierra Wireless
MC7304. No dhcpc client is active. Autoconnect is disabled:
platform ~ # qmicli -p -d /dev/cdc-wdm0 --wds-get-autoconnect-settings
Autoconnect settings retrieved:
Status: 'disabled'
Any clues? Am wondering if I have hit a bug, or if I just am plain
stupid and am not getting something.... Been trying to figure out this
for some days now. Any help appreciated.
BR,
Tor Rune Skoglund
*
*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libqmi-devel/attachments/20200717/09c7127e/attachment.htm>
More information about the libqmi-devel
mailing list