[OpenWrt-Devel] [ModemManager] How can I make ModemManager work right?
Bjørn Mork
bjorn at mork.no
Wed Apr 29 06:56:49 EDT 2020
Michael Jones <mike at meshplusplus.com> writes:
> Instead, before using netifd, try talking directly to modemmanager using
> "mmcli".
Agreed. Verify that MM has detected the modem, and haven't found
anything wrong with it. That's the first step.
Run
mmcli -L
to list all modems, and
mmcli -m X
to look at the details for one of them where X is the number of the
modem. An example:
root at wrt1900ac-1:~# mmcli -L
/org/freedesktop/ModemManager1/Modem/0 [Sierra Wireless, Incorporated] EM7565
root at wrt1900ac-1:~# mmcli -m 0
--------------------------------
General | dbus path: /org/freedesktop/ModemManager1/Modem/0
| device id: af4c825714288908db4d5d2cca50e0d26cdc8bb5
--------------------------------
Hardware | manufacturer: Sierra Wireless, Incorporated
| model: EM7565
| firmware revision: SWI9X50C_01.11.00.00 5ba42f jenkins 2019/06/28 09:51:52
| carrier config: default
| h/w revision: 0.6
| supported: gsm-umts, lte
| current: gsm-umts, lte
| equipment id: 359260080xxxxxx
--------------------------------
System | device: /sys/devices/platform/soc/soc:pcie at 82000000/pci0000:00/0000:00:01.0/0000:01:00.0/usb3/3-2
| drivers: qmi_wwan, qcserial
| plugin: Sierra
| primary port: cdc-wdm0
| ports: cdc-wdm0 (qmi), ttyUSB4 (qcdm), ttyUSB5 (gps),
| ttyUSB6 (at), wwan0 (net)
--------------------------------
Status | lock: sim-pin2
| unlock retries: sim-pin (3), sim-pin2 (3), sim-puk (10), sim-puk2 (10)
| state: connected
| power state: on
| access tech: lte
| signal quality: 84% (recent)
--------------------------------
Modes | supported: allowed: 3g; preferred: none
| allowed: 4g; preferred: none
| allowed: 3g, 4g; preferred: 3g
| allowed: 3g, 4g; preferred: 4g
| current: allowed: 3g, 4g; preferred: 4g
--------------------------------
Bands | supported: utran-1, utran-3, utran-4, utran-6, utran-5, utran-8,
| utran-9, utran-2, eutran-1, eutran-2, eutran-3, eutran-4, eutran-5,
| eutran-7, eutran-8, eutran-9, eutran-12, eutran-13, eutran-18,
| eutran-19, eutran-20, eutran-26, eutran-28, eutran-29, eutran-30,
| eutran-32, eutran-41, eutran-42, eutran-43, eutran-46, eutran-48,
| eutran-66, utran-19
| current: utran-1, utran-3, utran-4, utran-6, utran-5, utran-8,
| utran-9, utran-2, eutran-1, eutran-2, eutran-3, eutran-4, eutran-5,
| eutran-7, eutran-8, eutran-9, eutran-12, eutran-13, eutran-18,
| eutran-19, eutran-20, eutran-26, eutran-28, eutran-29, eutran-30,
| eutran-32, eutran-41, eutran-42, eutran-43, eutran-46, eutran-48,
| eutran-66, utran-19
--------------------------------
IP | supported: ipv4, ipv6, ipv4v6
--------------------------------
3GPP | imei: 359260080xxxxxx
| operator id: 24201
| operator name: TELENOR
| registration: home
--------------------------------
3GPP EPS | ue mode of operation: csps-2
--------------------------------
SIM | dbus path: /org/freedesktop/ModemManager1/SIM/0
--------------------------------
Bearer | dbus path: /org/freedesktop/ModemManager1/Bearer/0
This will verify that
- the device path is correct and was found,
- the proper kernel devices were found by MM and probed OK,
- the SIM is connected and unlocked, and
- that the modem has registered in the network
It might not show connected, like mine does, but that's the next step.
When everything looks OK, you can try to connect with
ifup XXX
where XXX is your modem interface name from the config. Use
ifstatus XXX
look at the IP configuration when connected. For example, my interface
entry is named 'mm' (note that the "ip4table" is a special thing for my
environment - no need to copy this):
config interface 'mm'
option device '/sys/devices/platform/soc/soc:pcie at 82000000/pci0000:00/0000:00:01.0/0000:01:00.0/usb3/3-2'
option proto 'modemmanager'
option apn 'internet.public'
option pincode 'xxxx'
option iptype 'ipv4'
option ip4table '42'
so the IP session can be inspected by:
root at wrt1900ac-1:~# ifstatus mm
{
"up": true,
"pending": false,
"available": true,
"autostart": true,
"dynamic": false,
"uptime": 335711,
"l3_device": "wwan0",
"proto": "modemmanager",
"updated": [
"addresses",
"routes"
],
"ip4table": 42,
"metric": 0,
"dns_metric": 0,
"delegation": true,
"ipv4-address": [
{
"address": "77.18.146.13",
"mask": 30
}
],
"ipv6-address": [
],
"ipv6-prefix": [
],
"ipv6-prefix-assignment": [
],
"route": [
{
"target": "0.0.0.0",
"mask": 0,
"nexthop": "77.18.146.14",
"source": "77.18.146.13/32"
}
],
"dns-server": [
"193.213.112.4",
"130.67.15.198"
],
"dns-search": [
],
"neighbors": [
],
"inactive": {
"ipv4-address": [
],
"ipv6-address": [
],
"route": [
],
"dns-server": [
],
"dns-search": [
],
"neighbors": [
]
},
"data": {
}
}
An overlapping set of this is also available with mmcli, using the
bearer reference you'll find in the overview when connected:
root at wrt1900ac-1:~# mmcli -b 0
--------------------------------
General | dbus path: /org/freedesktop/ModemManager1/Bearer/0
| type: default
--------------------------------
Status | connected: yes
| suspended: no
| interface: wwan0
| ip timeout: 20
--------------------------------
Properties | apn: internet.public
| roaming: allowed
| ip type: ipv4
--------------------------------
IPv4 configuration | method: static
| address: 77.18.146.13
| prefix: 30
| gateway: 77.18.146.14
| dns: 193.213.112.4, 130.67.15.198
| mtu: 1500
--------------------------------
Statistics | duration: 336240
| bytes rx: 676026
| bytes tx: 562276
Hope that's enough to get you started.
And I totally agree: Upgrade to a recent OpenWrt. Doing development on
an arbitrary 17.01 snapshot is pointless.
Bjørn
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list