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