Using qmicli with a Sierra Wireless EM7455

Friedrich Romstedt friedrichromstedt at gmail.com
Sat Jun 20 13:22:47 UTC 2020


Hello,

This is about getting a Sierra Wireless EM7455 Qualcomm Snapdragon X7
LTE-A modem connected to the cellular network.

The modem came together with the Lenovo T470p it is built into. I am
using current Arch Linux.

My resources for the proceeding I am reporting about here are: I
started out at [1]
https://wiki.archlinux.org/index.php/ThinkPad_mobile_Internet. I then
tried to follow step-by-step the commands in the script mentioned in
[1]: [2] https://github.com/penguin2716/qmi_setup. Googling for my
error message I ended up with during following [2] led me to [3]
https://lists.freedesktop.org/archives/libqmi-devel/2017-March/002193.html
and [4] https://bugzilla.redhat.com/show_bug.cgi?id=1379406. After
this the libqmi-devel mailing list came to my attention, so I am
asking now here for advice. I am not using any front-end tool; I would
like to use qmicli and qmi-network directly.

Normally I am figuring out things like this on my own, and I skimmed
through the Google results for EM7455 with
`site:lists.freedesktop.org` carefully, but I couldn't find a definite
answer for my problems. I noticed that at least the majority of the
Google results mentioned are messages sent to
modemmanager-devel at lists.freedesktop.org, but since I am intending to
get along without frontends aside of, say, `qmi-network`, I am turning
to the libqmi-devel list here.

This is with kernel modules `qmi-wwan` and `qcserial` loaded properly;
the `$ modprobe qmi-wwan` step resulted in Journal output (the other
modprobe call went along silently):

Jun 19 14:56:16 T470p kernel: usbcore: registered new interface driver qmi_wwan

Here is the checklist I extracted from [2] to connect (all commands to
be run as root):

$ ifconfig <dev> up
$ qmicli -d /dev/cdc-wdm0 --dms-set-operating-mode online
$ qmi-network /dev/cdc-wdm0 start
$ <start dhcpcd>

I am running into trouble in the second command. I tried to ignore the
problem and ran the third command, which also failed.

The call of `qmicli` in the abovementioned list failed with:

error: couldn't set operating mode: QMI protocol error (60): 'InvalidTransition'

I then inspected `$ qmicli -d /dev/cdc-wdm0 --dms-get-operating-mode`:

[/dev/cdc-wdm0] Operating mode retrieved:
    Mode: 'low-power'
    Reason: 'unknown'
    HW restricted: 'no'

I tried to set the operation mode to 'offline' and then to 'reset',
which made me end up in the 'low-power' mode again, with quite a lot
of output in the Journal which I am omitting here. Notice that the
'reset' step resulted in output:

[/dev/cdc-wdm0] Operating mode set successfully
error: couldn't close: Transaction timed out

while the transition to 'offline' emitted:

[/dev/cdc-wdm0] Operating mode set successfully

In the desperate situation I found myself in I attempted to run `$
qmi-network /dev/cdc-wdm0 start` even though the device wasn't in the
'online' mode.  This resulted in output:

Loading profile at /etc/qmi-network.conf...
    APN: internet.telekom
    APN user: telekom
    APN password: telekom
    qmi-proxy: no
Checking data format with 'qmicli -d /dev/cdc-wdm0 --wda-get-data-format '...
Device link layer protocol retrieved: raw-ip
Getting expected data format with 'qmicli -d /dev/cdc-wdm0
--get-expected-data-format'...
error: cannot get expected data format: Expected data format not
retrieved properly: Failed to open file
'/sys/class/net/wwp0s20f0u5i12/qmi/raw_ip': No such file or directory
[19 Jun 2020, 16:15:15] -Warning ** [/dev/cdc-wdm0] MBIM device wasn't
explicitly closed
Expected link layer protocol not retrieved: kernel unsupported
Updating device link layer protocol with 'qmicli -d /dev/cdc-wdm0
--wda-set-data-format=802-3 '...
New device link layer protocol retrieved: raw-ip
Starting network with 'qmicli -d /dev/cdc-wdm0
--wds-start-network=apn='internet.telekom',username='telekom',password='telekom'
 --client-no-release-cid '...
error: couldn't start network: QMI protocol error (14): 'CallFailed'
call end reason (12): (null)
verbose call end reason (0,0): [(null)] (null)
Saving state at /tmp/qmi-network-state-cdc-wdm0... (CID: 51)
error: network start failed, no packet data handle
error: couldn't release client: QMI protocol error (7): 'InvalidClientId'
Clearing state at /tmp/qmi-network-state-cdc-wdm0...

which I am providing here mostly for completeness.

The APN settings are correct. I succeeded to connect the modem in
Windows 10 on the same machine with the APN settings as given in the
log.

During these hours I spent searching for keywords related to my
problem I quite often ran across the following options to `qmicli`:
`--device-open-mbim` and `--dms-set-fcc-authentication`. I am guessing
that these might help since the former might be needed to talk to the
EM7455 while the latter one might be used during authentication with
the network. However, I don't feel confident enough to try any of
these without having checked back with someone more knowledgeable than
me about this things.

Thanks in advance,
Friedrich


More information about the libqmi-devel mailing list