Can't connect using ModemManager when modem is in QMI mode

Bushman, Jeff jbushman at ciena.com
Wed Dec 1 01:59:36 UTC 2021


I'm running a Sierra Wireless MC7455 modem with SWI9X30C_02.32.11.00 r8042 CARMD-EV-FRMWR2 firmware. Using ModemManager 1.18.2 on Ubuntu 20.04.

I can get the modem to connect using mmcli -m 0 --simple-connect=. when the modem is in MBIM mode.
I can get the modem to connect using qmicli and qmi-network when the modem is in QMI mode.

But when I use mmcli with ModemManager, --simple-connect fails with

    error: couldn't connect the modem: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Cancelled: operation cancelled'

What is strange is that the modem seems to create a default bearer channel when it is enabled. Using simple-connect seems to create a second bearer channel which is rejected. But using -connect on the default bearer channel also fails.

Following a modem reset, I see:

root at de-01:~# mmcli -m 1
  ----------------------------------
  General  |                   path: /org/freedesktop/ModemManager1/Modem/1
...
  ----------------------------------
  Status   |                   lock: sim-pin2
           |         unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10)
           |                  state: disabled
           |            power state: on
           |         signal quality: 0% (cached)
  ----------------------------------
...
  ----------------------------------
  3GPP EPS |   ue mode of operation: ps-2
           |     initial bearer apn: broadband
           | initial bearer ip type: ipv4v6
  ----------------------------------
  SIM      |       primary sim path: /org/freedesktop/ModemManager1/SIM/1
           |         sim slot paths: slot 1: /org/freedesktop/ModemManager1/SIM/1 (active)
           |                         slot 2: none

Then if I enable the modem, the state goes to registered and a bearer is created. No bearer is created when in MBIM mode.

root at de-01:~# mmcli -m 1 --enable
successfully enabled the modem
root at de-01:~# mmcli -m 1
  ----------------------------------
  General  |                   path: /org/freedesktop/ModemManager1/Modem/1
...
  ----------------------------------
  Status   |                   lock: sim-pin2
           |         unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10)
           |                  state: registered
           |            power state: on
           |            access tech: lte
           |         signal quality: 92% (recent)
  ----------------------------------
...
  ----------------------------------
  3GPP EPS |   ue mode of operation: ps-2
           |    initial bearer path: /org/freedesktop/ModemManager1/Bearer/2
           |     initial bearer apn: broadband
           | initial bearer ip type: ipv4v6
  ----------------------------------
  SIM      |       primary sim path: /org/freedesktop/ModemManager1/SIM/1
           |         sim slot paths: slot 1: /org/freedesktop/ModemManager1/SIM/1 (active)
           |                         slot 2: none

Printing the properties of this bearer shows:

root at de-01:~# mmcli -b 2
  -------------------------
  General    |        path: /org/freedesktop/ModemManager1/Bearer/2
             |        type: default-attach
  -------------------------
  Status     |   connected: yes
             |   suspended: no
             | multiplexed: no
             |  ip timeout: 20
  -------------------------
  Properties |         apn: broadband
             |     ip type: ipv4

So the bearer is "connected" but the modem is not in a "connected" state. There are also no IPv4 parameters available.

An attempt to connect the bearer is also rejected:

root at de-01:~# mmcli -m 1 --bearer 2 --connect
error: couldn't connect the bearer: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Failed: Bearer doesn't allow explicit connection requests'

Using simple connect results in two bearers.

root at de-01:~# mmcli -m 1 --simple-connect='apn=broadband'
error: couldn't connect the modem: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Cancelled: operation cancelled'
root at de-01:~# mmcli -m 1
  ----------------------------------
  General  |                   path: /org/freedesktop/ModemManager1/Modem/1
...
  ----------------------------------
  Status   |                   lock: sim-pin2
           |         unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10)
           |                  state: registered
           |            power state: on
           |            access tech: lte
           |         signal quality: 91% (recent)
  ----------------------------------
...
  ----------------------------------
  3GPP EPS |   ue mode of operation: ps-2
           |    initial bearer path: /org/freedesktop/ModemManager1/Bearer/3
           |     initial bearer apn: broadband
           | initial bearer ip type: ipv4v6
  ----------------------------------
  SIM      |       primary sim path: /org/freedesktop/ModemManager1/SIM/1
           |         sim slot paths: slot 1: /org/freedesktop/ModemManager1/SIM/1 (active)
           |                         slot 2: none
  ----------------------------------
  Bearer   |                  paths: /org/freedesktop/ModemManager1/Bearer/4
root at de-01:~# mmcli -b 3
  -------------------------
  General    |        path: /org/freedesktop/ModemManager1/Bearer/3
             |        type: default-attach
  -------------------------
  Status     |   connected: yes
             |   suspended: no
             | multiplexed: no
             |  ip timeout: 20
  -------------------------
  Properties |         apn: broadband
             |     ip type: ipv4
root at de-01:~# mmcli -b 4
  --------------------------------------
  General    |                     path: /org/freedesktop/ModemManager1/Bearer/4
             |                     type: default
  --------------------------------------
  Status     |                connected: no
             |    connection error name: org.freedesktop.ModemManager1.Error.Core.Cancelled
             | connection error message: operation cancelled
             |                suspended: no
             |              multiplexed: no
             |               ip timeout: 20
  --------------------------------------
  Properties |                      apn: broadband
             |                  roaming: allowed
  --------------------------------------
  Statistics |                 attempts: 1
             |                 attempts: 1

Can anyone explain what is happening and how to rectify the situation?
(I do have ModemManager debug logs if that would help.)


Jeffrey M Bushman
Software Engineer 4 |  Ciena 
Spokane, WA, USA 
O | +1.509.242-9405 
M | +1.678.232.4013 




More information about the ModemManager-devel mailing list