Can't (easily) connect to the Internet using Quectel EC20 on my balenaFin V1.1

I’ve bought a Quectel EC20EA-MINIPCE since I need 3/3.5G cellular connectivity in an application and the EC20 “is known to work out of the box, hence only APN configuration is required” as shown on https://www.balena.io/fin/1.1/docs/developers/#Cellular-via-mPCIe-card.

I’ve configured the connection as shown on https://www.balena.io/docs/reference/OS/network/2.x/#cellular-modem-setup, but the EC20 can’t connect to the Internet!

I’ve installed minicom within my container and issuing commands such as AT+CPIN? and AT+CIMI on /dev/ttyUSB2 does reveal that the modem is feeling good.

I’ve also tried to get some inspiration from https://github.com/balena-io-playground/gps-tracker, so I’ve added the “udevRules” to my config.json, even if not sctricly needed.

The balenaFin V1.1 has been installed with balenaOS 2.29.2+rev7 and Suvervisor 9.0.1 is running on it. The image is based on:

FROM balenalib/%%RESIN_MACHINE_NAME%%-python:3.7.2-stretch-20190123

I’ve investigated some hours, then I found that the EC20 is not correctly detected at boot:

Mar 07 10:46:15 localhost systemd[1]: Starting Modem Manager...
Mar 07 10:46:15 b339bce ModemManager[651]: ModemManager (version 1.8.2) starting in system bus...
Mar 07 10:46:17 b339bce systemd[1]: Started Modem Manager.
Mar 07 10:46:17 b339bce NetworkManager[698]: <info>  [1551955577.5660] modem-manager: ModemManager available
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0] Opening device with flags 'version-info, proxy'...
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0] loaded driver of cdc-wdm port: qmi_wwan
Mar 07 10:46:18 b339bce ModemManager[651]: cannot connect to proxy: Could not connect: Connection refused
Mar 07 10:46:18 b339bce ModemManager[651]: spawning new qmi-proxy (try 1)...
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0] Checking version info (10 retries)...
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0] QMI Device supports 27 services:
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    ctl (1.5)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    wds (1.36)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    dms (1.14)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    nas (1.25)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    qos (1.3)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    wms (1.10)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    pds (1.0)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    auth (1.2)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    at (1.2)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    voice (2.1)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    cat2 (2.16)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    uim (1.25)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    pbm (1.4)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    test (1.0)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    loc (2.0)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    sar (1.0)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    ims (1.0)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    ts (1.0)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    tmd (1.0)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    wda (1.10)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    csvt (1.0)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    qcmap (1.0)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    imsp (1.0)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    imsvt (1.0)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    imsa (1.0)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    coex (1.0)
Mar 07 10:46:18 b339bce ModemManager[651]: [/dev/cdc-wdm0]    rfrpe (1.0)
Mar 07 10:46:19 b339bce ModemManager[651]: Couldn't check support for device '/sys/devices/platform/soc/3f300000.mmc/mmc_host/mmc1/mmc1:0001/mmc1:0001:1': not supported by any plugin
Mar 07 10:46:19 b339bce ModemManager[651]: Couldn't check support for device '/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1': not supported by any plugin
Mar 07 10:46:27 b339bce ModemManager[651]: (usbmisc/cdc-wdm0): released by device '/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2'
Mar 07 10:46:27 b339bce ModemManager[651]: (tty/ttyUSB3): released by device '/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2'
Mar 07 10:46:27 b339bce ModemManager[651]: (tty/ttyUSB0): released by device '/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2'
Mar 07 10:46:27 b339bce ModemManager[651]: [plugin manager] task 0,ttyUSB0: error when checking support with plugin 'Telit': 'Operation was cancelled'
Mar 07 10:46:27 b339bce ModemManager[651]: [plugin manager] task 0,ttyUSB0: failed: Operation was cancelled
Mar 07 10:46:27 b339bce ModemManager[651]: (tty/ttyUSB1): released by device '/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2'
Mar 07 10:46:27 b339bce ModemManager[651]: [plugin manager] task 0,ttyUSB1: error when checking support with plugin 'Telit': 'Operation was cancelled'
Mar 07 10:46:27 b339bce ModemManager[651]: [plugin manager] task 0,ttyUSB1: failed: Operation was cancelled
Mar 07 10:46:27 b339bce ModemManager[651]: [device /sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2] creating modem with plugin 'Generic' and '2' ports
Mar 07 10:46:27 b339bce ModemManager[651]: Modem for device '/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2' successfully created
Mar 07 10:46:27 b339bce ModemManager[651]: (tty/ttyUSB2): released by device '/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2'
Mar 07 10:46:27 b339bce ModemManager[651]: Couldn't check support for device '/sys/devices/platform/soc/3f300000.mmc/mmc_host/mmc1/mmc1:0001/mmc1:0001:1': not supported by any plugin
Mar 07 10:46:27 b339bce ModemManager[651]: (net/eth0): released by device '/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1'
Mar 07 10:46:27 b339bce ModemManager[651]: [plugin manager] task 4,eth0: failed: Operation was cancelled
Mar 07 10:46:27 b339bce ModemManager[651]: Couldn't check support for device '/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1': not supported by any plugin
Mar 07 10:46:27 b339bce ModemManager[651]: (net/wwan0): released by device '/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2'
Mar 07 10:46:27 b339bce ModemManager[651]: couldn't load Supported IP families: 'AT command was cancelled'
Mar 07 10:46:27 b339bce ModemManager[651]: couldn't load Power State: 'No AT port available to run command'
Mar 07 10:46:27 b339bce ModemManager[651]: Modem couldn't be initialized: Couldn't check unlock status: Couldn't get interface skeleton
Mar 07 10:46:27 b339bce ModemManager[651]: couldn't initialize the modem: 'Operation was cancelled'

More important, I’ve found that manually forcing a “mmcli --scan-modems” on the host solves the problem:

Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0] Opening device with flags 'version-info, proxy'...
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0] loaded driver of cdc-wdm port: qmi_wwan
Mar 07 10:57:55 b339bce ModemManager[651]: cannot connect to proxy: Could not connect: Connection refused
Mar 07 10:57:55 b339bce ModemManager[651]: spawning new qmi-proxy (try 1)...
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0] Checking version info (10 retries)...
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0] QMI Device supports 27 services:
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    ctl (1.5)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    wds (1.36)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    dms (1.14)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    nas (1.25)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    qos (1.3)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    wms (1.10)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    pds (1.0)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    auth (1.2)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    at (1.2)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    voice (2.1)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    cat2 (2.16)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    uim (1.25)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    pbm (1.4)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    test (1.0)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    loc (2.0)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    sar (1.0)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    ims (1.0)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    ts (1.0)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    tmd (1.0)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    wda (1.10)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    csvt (1.0)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    qcmap (1.0)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    imsp (1.0)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    imsvt (1.0)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    imsa (1.0)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    coex (1.0)
Mar 07 10:57:55 b339bce ModemManager[651]: [/dev/cdc-wdm0]    rfrpe (1.0)
Mar 07 10:57:56 b339bce ModemManager[651]: Couldn't check support for device '/sys/devices/platform/soc/3f300000.mmc/mmc_host/mmc1/mmc1:0001/mmc1:0001:1': not supported by any plugin
Mar 07 10:57:56 b339bce ModemManager[651]: Couldn't check support for device '/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1': not supported by any plugin
Mar 07 10:58:14 b339bce ModemManager[651]: [device /sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2] creating modem with plugin 'Generic' and '6' ports
Mar 07 10:58:14 b339bce ModemManager[651]: Could not grab port (tty/ttyUSB1): 'Cannot add port 'tty/ttyUSB1', unhandled serial type'
Mar 07 10:58:14 b339bce ModemManager[651]: Modem for device '/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2' successfully created
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0] Opening device with flags 'version-info, proxy'...
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0] loaded driver of cdc-wdm port: qmi_wwan
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0] Checking version info (10 retries)...
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0] QMI Device supports 27 services:
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    ctl (1.5)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    wds (1.36)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    dms (1.14)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    nas (1.25)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    qos (1.3)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    wms (1.10)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    pds (1.0)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    auth (1.2)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    at (1.2)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    voice (2.1)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    cat2 (2.16)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    uim (1.25)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    pbm (1.4)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    test (1.0)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    loc (2.0)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    sar (1.0)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    ims (1.0)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    ts (1.0)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    tmd (1.0)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    wda (1.10)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    csvt (1.0)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    qcmap (1.0)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    imsp (1.0)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    imsvt (1.0)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    imsa (1.0)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    coex (1.0)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0]    rfrpe (1.0)
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0] Reading expected data format from: /sys/class/net/wwan0/qmi/raw_ip
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0] Allocating new client ID...
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0] Registered 'wda' (version 1.10) client with ID '1'
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0] Allocating new client ID...
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0] Releasing 'wda' client with flags 'release-cid'...
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0] Unregistered 'wda' client with ID '1'
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0] Registered 'dms' (version 1.14) client with ID '6'
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0] Allocating new client ID...
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0] Registered 'nas' (version 1.25) client with ID '3'
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0] Allocating new client ID...
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0] Registered 'wms' (version 1.10) client with ID '2'
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0] Allocating new client ID...
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0] Registered 'pds' (version 1.0) client with ID '1'
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0] Allocating new client ID...
Mar 07 10:58:14 b339bce ModemManager[651]: [/dev/cdc-wdm0] Registered 'uim' (version 1.25) client with ID '2'
Mar 07 10:58:15 b339bce ModemManager[651]: couldn't load list of Own Numbers: 'Couldn't get MSISDN: QMI protocol error (16): 'NotProvisioned''
Mar 07 10:58:15 b339bce ModemManager[651]: Modem: state changed (unknown -> disabled)
Mar 07 10:58:15 b339bce NetworkManager[698]: <info>  [1551956295.4172] modem["cdc-wdm0"]: modem state changed, 'disabled' --> 'enabling' (reason: user preference)
Mar 07 10:58:15 b339bce NetworkManager[698]: <info>  [1551956295.4252] device (cdc-wdm0): modem state 'enabling'
Mar 07 10:58:15 b339bce ModemManager[651]: Modem /org/freedesktop/ModemManager1/Modem/0: state changed (disabled -> enabling)
Mar 07 10:58:15 b339bce ModemManager[651]: Simple connect started...
Mar 07 10:58:15 b339bce ModemManager[651]: Simple connect state (4/8): Wait to get fully enabled
Mar 07 10:58:16 b339bce ModemManager[651]: Modem /org/freedesktop/ModemManager1/Modem/0: state changed (enabling -> enabled)
Mar 07 10:58:16 b339bce ModemManager[651]: Simple connect state (5/8): Register
Mar 07 10:58:16 b339bce NetworkManager[698]: <info>  [1551956296.0984] modem["cdc-wdm0"]: modem state changed, 'enabling' --> 'enabled' (reason: user-requested)
Mar 07 10:58:16 b339bce ModemManager[651]: Modem /org/freedesktop/ModemManager1/Modem/0: 3GPP Registration state changed (unknown -> registering)
Mar 07 10:58:16 b339bce ModemManager[651]: Modem /org/freedesktop/ModemManager1/Modem/0: 3GPP Registration state changed (registering -> home)
Mar 07 10:58:16 b339bce ModemManager[651]: Modem /org/freedesktop/ModemManager1/Modem/0: state changed (enabled -> registered)
Mar 07 10:58:16 b339bce NetworkManager[698]: <info>  [1551956296.1773] modem["cdc-wdm0"]: modem state changed, 'enabled' --> 'registered' (reason: unknown)
Mar 07 10:58:16 b339bce ModemManager[651]: Simple connect state (6/8): Bearer
Mar 07 10:58:16 b339bce ModemManager[651]: Simple connect state (7/8): Connect
Mar 07 10:58:16 b339bce ModemManager[651]: Modem /org/freedesktop/ModemManager1/Modem/0: state changed (registered -> connecting)
Mar 07 10:58:16 b339bce NetworkManager[698]: <info>  [1551956296.2357] modem["cdc-wdm0"]: modem state changed, 'registered' --> 'connecting' (reason: user-requested)
Mar 07 10:58:16 b339bce ModemManager[651]: [/dev/cdc-wdm0] Allocating new client ID...
Mar 07 10:58:16 b339bce ModemManager[651]: [/dev/cdc-wdm0] Registered 'wds' (version 1.36) client with ID '6'
Mar 07 10:58:16 b339bce ModemManager[651]: QMI IPv4 Settings:
Mar 07 10:58:16 b339bce ModemManager[651]:     Address: 10.101.123.180/30
Mar 07 10:58:16 b339bce ModemManager[651]:     Gateway: 10.101.123.181
Mar 07 10:58:16 b339bce ModemManager[651]:     DNS #1: 62.13.169.94
Mar 07 10:58:16 b339bce ModemManager[651]:     DNS #2: 62.13.169.95
Mar 07 10:58:16 b339bce ModemManager[651]:        MTU: 1500
Mar 07 10:58:16 b339bce ModemManager[651]: Modem /org/freedesktop/ModemManager1/Modem/0: state changed (connecting -> connected)
Mar 07 10:58:16 b339bce ModemManager[651]: Simple connect state (8/8): All done
Mar 07 10:58:16 b339bce NetworkManager[698]: <info>  [1551956296.6554] modem["cdc-wdm0"]: modem state changed, 'connecting' --> 'connected' (reason: user-requested)

Have you got any suggestion? Maybe it’s just a timing problem?

Hi, we’ll retest this locally with a Fin and will get back to you very soon! Thanks for digging in and the logs you shared!

Hi @daghemo, just tried it ourselves with a Fin 1.1.0 + EC20EA-256-STD + Raspberry Pi CM3+, using OS version 2.29.7+rev7, and seems to be working like a charm so far.

root@eeae7b3:~# dmesg |grep 1-1.2  
[    3.031513] usb 1-1.2: new high-speed USB device number 4 using dwc_otg
[    3.163223] usb 1-1.2: New USB device found, idVendor=05c6, idProduct=9215
[    3.171001] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    3.179456] usb 1-1.2: Product: Quectel LTE Module
[    3.185147] usb 1-1.2: Manufacturer: Quectel
[    9.764043] qmi_wwan 1-1.2:1.4: cdc-wdm0: USB WDM device
[    9.777038] qmi_wwan 1-1.2:1.4 wwan0: register 'qmi_wwan' at usb-3f980000.usb-1.2, WWAN/QMI device, ca:66:f5:3b:27:8d
[    9.796662] qcserial 1-1.2:1.0: Qualcomm USB modem converter detected
[    9.804834] usb 1-1.2: Qualcomm USB modem converter now attached to ttyUSB0
[    9.814314] qcserial 1-1.2:1.1: Qualcomm USB modem converter detected
[    9.822248] usb 1-1.2: Qualcomm USB modem converter now attached to ttyUSB1
[    9.831022] qcserial 1-1.2:1.2: Qualcomm USB modem converter detected
[    9.839210] usb 1-1.2: Qualcomm USB modem converter now attached to ttyUSB2
[    9.848242] qcserial 1-1.2:1.3: Qualcomm USB modem converter detected
[    9.869231] usb 1-1.2: Qualcomm USB modem converter now attached to ttyUSB3
root@eeae7b3:~# mmcli -L

Found 1 modems:
        /org/freedesktop/ModemManager1/Modem/0 [Quectel] EC20

and the ModemManager logs:

-- Logs begin at Tue 2018-11-27 10:31:17 UTC, end at Fri 2019-03-08 10:32:04 UTC. --
Mar 08 10:25:57 localhost systemd[1]: Starting Modem Manager...
Mar 08 10:25:58 eeae7b3 ModemManager[682]: ModemManager (version 1.8.2) starting in system bus...
Mar 08 10:25:59 eeae7b3 systemd[1]: Started Modem Manager.
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Opening device with flags 'version-info, proxy'...
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] loaded driver of cdc-wdm port: qmi_wwan
Mar 08 10:26:01 eeae7b3 ModemManager[682]: cannot connect to proxy: Could not connect: Connection refused
Mar 08 10:26:01 eeae7b3 ModemManager[682]: spawning new qmi-proxy (try 1)...
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Checking version info (10 retries)...
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] QMI Device supports 27 services:
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    ctl (1.5)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    wds (1.36)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    dms (1.14)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    nas (1.25)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    qos (1.3)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    wms (1.10)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    pds (1.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    auth (1.2)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    at (1.2)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    voice (2.1)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    cat2 (2.16)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    uim (1.25)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    pbm (1.4)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    test (1.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    loc (2.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    sar (1.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    ims (1.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    ts (1.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    tmd (1.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    wda (1.10)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    csvt (1.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    qcmap (1.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    imsp (1.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    imsvt (1.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    imsa (1.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    coex (1.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    rfrpe (1.0)
Mar 08 10:26:02 eeae7b3 ModemManager[682]: Couldn't check support for device '/sys/devices/platform/soc/3f300000.mmc/mmc_host/mmc1/mmc1:0001/mmc1:0001:1': not supported by any plugin
Mar 08 10:26:02 eeae7b3 ModemManager[682]: Couldn't check support for device '/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1': not supported by any plugin
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [device /sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2] creating modem with plugin 'Generic' and '6' ports
Mar 08 10:26:14 eeae7b3 ModemManager[682]: Could not grab port (tty/ttyUSB1): 'Cannot add port 'tty/ttyUSB1', unhandled serial type'
Mar 08 10:26:14 eeae7b3 ModemManager[682]: Modem for device '/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2' successfully created
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Opening device with flags 'version-info, proxy'...
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] loaded driver of cdc-wdm port: qmi_wwan
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Checking version info (10 retries)...
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] QMI Device supports 27 services:
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    ctl (1.5)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    wds (1.36)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    dms (1.14)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    nas (1.25)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    qos (1.3)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    wms (1.10)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    pds (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    auth (1.2)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    at (1.2)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    voice (2.1)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    cat2 (2.16)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    uim (1.25)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    pbm (1.4)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    test (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    loc (2.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    sar (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    ims (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    ts (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    tmd (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    wda (1.10)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    csvt (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    qcmap (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    imsp (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    imsvt (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    imsa (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    coex (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0]    rfrpe (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Reading expected data format from: /sys/class/net/wwan0/qmi/raw_ip
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Allocating new client ID...
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Registered 'wda' (version 1.10) client with ID '1'
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Allocating new client ID...
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Releasing 'wda' client with flags 'release-cid'...
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Unregistered 'wda' client with ID '1'
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Registered 'dms' (version 1.14) client with ID '4'
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Allocating new client ID...
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Registered 'nas' (version 1.25) client with ID '3'
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Allocating new client ID...
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Registered 'wms' (version 1.10) client with ID '2'
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Allocating new client ID...
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Registered 'pds' (version 1.0) client with ID '2'
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Allocating new client ID...
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Registered 'uim' (version 1.25) client with ID '2'
Mar 08 10:26:15 eeae7b3 ModemManager[682]: Modem: state changed (unknown -> disabled)
Mar 08 10:26:15 eeae7b3 ModemManager[682]: Modem /org/freedesktop/ModemManager1/Modem/0: state changed (disabled -> enabling)
Mar 08 10:26:15 eeae7b3 ModemManager[682]: Simple connect started...
Mar 08 10:26:15 eeae7b3 ModemManager[682]: Simple connect state (4/8): Wait to get fully enabled
Mar 08 10:26:16 eeae7b3 ModemManager[682]: Modem /org/freedesktop/ModemManager1/Modem/0: state changed (enabling -> enabled)
Mar 08 10:26:16 eeae7b3 ModemManager[682]: Simple connect state (5/8): Register
Mar 08 10:26:16 eeae7b3 ModemManager[682]: Modem /org/freedesktop/ModemManager1/Modem/0: 3GPP Registration state changed (unknown -> registering)
Mar 08 10:26:16 eeae7b3 ModemManager[682]: Modem /org/freedesktop/ModemManager1/Modem/0: 3GPP Registration state changed (registering -> roaming)
Mar 08 10:26:16 eeae7b3 ModemManager[682]: Modem /org/freedesktop/ModemManager1/Modem/0: state changed (enabled -> registered)
Mar 08 10:26:16 eeae7b3 ModemManager[682]: Simple connect state (6/8): Bearer
Mar 08 10:26:16 eeae7b3 ModemManager[682]: Simple connect state (7/8): Connect
Mar 08 10:26:16 eeae7b3 ModemManager[682]: Modem /org/freedesktop/ModemManager1/Modem/0: state changed (registered -> connecting)
Mar 08 10:26:16 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Allocating new client ID...
Mar 08 10:26:16 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Registered 'wds' (version 1.36) client with ID '6'
Mar 08 10:26:17 eeae7b3 ModemManager[682]: QMI IPv4 Settings:
Mar 08 10:26:17 eeae7b3 ModemManager[682]:     Address: 10.171.153.57/30
Mar 08 10:26:17 eeae7b3 ModemManager[682]:     Gateway: 10.171.153.58
Mar 08 10:26:17 eeae7b3 ModemManager[682]:     DNS #1: 100.127.0.53
Mar 08 10:26:17 eeae7b3 ModemManager[682]:     DNS #2: 100.127.1.53
Mar 08 10:26:17 eeae7b3 ModemManager[682]:        MTU: 1500
Mar 08 10:26:17 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Allocating new client ID...
Mar 08 10:26:17 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Registered 'wds' (version 1.36) client with ID '7'
....

and it’s connected too:

root@eeae7b3:~# nmcli c show --active
NAME         UUID                                  TYPE    DEVICE      
soracom      189daef0-c949-358b-af4d-4b9f6323edd0  gsm     cdc-wdm0    
supervisor0  2c6b7755-036b-4f52-b368-8179786bf765  bridge  supervisor0 

Questions

We have a couple of quesitions:

  • does this difficulty connecting happen on the first provisioning (when there’s no user application on the device yet)?
  • does your application itself use udev inside the container?
  • can you share your code with us to try to reproduce things closer to what you are doing?

So far as we know things it should work, and trying to get the differences between what either of us are doing.

Hi @daghemo, just tried it ourselves with a Fin 1.1.0 + EC20EA-256-STD + Raspberry Pi CM3+, using OS version 2.29.7+rev7, and seems to be working like a charm so far.
root@eeae7b3:~# dmesg |grep 1-1.2
[ 3.031513] usb 1-1.2: new high-speed USB device number 4 using dwc_otg
[ 3.163223] usb 1-1.2: New USB device found, idVendor=05c6, idProduct=9215
[ 3.171001] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 3.179456] usb 1-1.2: Product: Quectel LTE Module
[ 3.185147] usb 1-1.2: Manufacturer: Quectel
[ 9.764043] qmi_wwan 1-1.2:1.4: cdc-wdm0: USB WDM device
[ 9.777038] qmi_wwan 1-1.2:1.4 wwan0: register ‘qmi_wwan’ at usb-3f980000.usb-1.2, WWAN/QMI device, ca:66:f5:3b:27:8d
[ 9.796662] qcserial 1-1.2:1.0: Qualcomm USB modem converter detected
[ 9.804834] usb 1-1.2: Qualcomm USB modem converter now attached to ttyUSB0
[ 9.814314] qcserial 1-1.2:1.1: Qualcomm USB modem converter detected
[ 9.822248] usb 1-1.2: Qualcomm USB modem converter now attached to ttyUSB1
[ 9.831022] qcserial 1-1.2:1.2: Qualcomm USB modem converter detected
[ 9.839210] usb 1-1.2: Qualcomm USB modem converter now attached to ttyUSB2
[ 9.848242] qcserial 1-1.2:1.3: Qualcomm USB modem converter detected
[ 9.869231] usb 1-1.2: Qualcomm USB modem converter now attached to ttyUSB3
root@eeae7b3:~# mmcli -L

Found 1 modems:
/org/freedesktop/ModemManager1/Modem/0 [Quectel] EC20
and the ModemManager logs:
`
– Logs begin at Tue 2018-11-27 10:31:17 UTC, end at Fri 2019-03-08 10:32:04 UTC. –
Mar 08 10:25:57 localhost systemd[1]: Starting Modem Manager…
Mar 08 10:25:58 eeae7b3 ModemManager[682]: ModemManager (version 1.8.2) starting in system bus…
Mar 08 10:25:59 eeae7b3 systemd[1]: Started Modem Manager.
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Opening device with flags ‘version-info, proxy’…
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] loaded driver of cdc-wdm port: qmi_wwan
Mar 08 10:26:01 eeae7b3 ModemManager[682]: cannot connect to proxy: Could not connect: Connection refused
Mar 08 10:26:01 eeae7b3 ModemManager[682]: spawning new qmi-proxy (try 1)…
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Checking version info (10 retries)…
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] QMI Device supports 27 services:
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] ctl (1.5)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] wds (1.36)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] dms (1.14)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] nas (1.25)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] qos (1.3)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] wms (1.10)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] pds (1.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] auth (1.2)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] at (1.2)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] voice (2.1)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] cat2 (2.16)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] uim (1.25)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] pbm (1.4)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] test (1.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] loc (2.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] sar (1.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] ims (1.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] ts (1.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] tmd (1.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] wda (1.10)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] csvt (1.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] qcmap (1.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] imsp (1.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] imsvt (1.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] imsa (1.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] coex (1.0)
Mar 08 10:26:01 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] rfrpe (1.0)
Mar 08 10:26:02 eeae7b3 ModemManager[682]: Couldn’t check support for device ‘/sys/devices/platform/soc/3f300000.mmc/mmc_host/mmc1/mmc1:0001/mmc1:0001:1’: not supported by any plugin
Mar 08 10:26:02 eeae7b3 ModemManager[682]: Couldn’t check support for device ‘/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1’: not supported by any plugin
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [device /sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2] creating modem with plugin ‘Generic’ and ‘6’ ports
Mar 08 10:26:14 eeae7b3 ModemManager[682]: Could not grab port (tty/ttyUSB1): ‘Cannot add port ‘tty/ttyUSB1’, unhandled serial type’
Mar 08 10:26:14 eeae7b3 ModemManager[682]: Modem for device ‘/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2’ successfully created
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Opening device with flags ‘version-info, proxy’…
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] loaded driver of cdc-wdm port: qmi_wwan
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Checking version info (10 retries)…
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] QMI Device supports 27 services:
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] ctl (1.5)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] wds (1.36)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] dms (1.14)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] nas (1.25)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] qos (1.3)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] wms (1.10)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] pds (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] auth (1.2)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] at (1.2)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] voice (2.1)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] cat2 (2.16)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] uim (1.25)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] pbm (1.4)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] test (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] loc (2.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] sar (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] ims (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] ts (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] tmd (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] wda (1.10)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] csvt (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] qcmap (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] imsp (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] imsvt (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] imsa (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] coex (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] rfrpe (1.0)
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Reading expected data format from: /sys/class/net/wwan0/qmi/raw_ip
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Allocating new client ID…
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Registered ‘wda’ (version 1.10) client with ID ‘1’
Mar 08 10:26:14 eeae7b3 ModemManager[682]: [/dev/cdc-wdm0] Allocating new client ID…
Mar 08 10:26:14 eeae7b3 ModemManager[682]:
… about 67% shown.

Thank you @imrehg!
I’m going mad about this, because I can’t see what can be wrong in my application and “mmcli --scan-modems” just solves the problem. Any idea from your side?
I’m going to try with https://github.com/balena-io-projects/cellular-test.

I’ve forgot to post an update on this.
Using https://github.com/balena-io-projects/cellular-test the EC20 is detected correctly on every reboot!
So I’ll investigate on my application…

I’d advise to try simplifying your application to the point where it works, then start re-adding your features and stop when it breaks.
Let us know if you figure it out or need some more help!

Just FYI, I got EC25 Quectel module working very well as wwan0 device, using Quectel QMI interface. With this kernel drive you see EC2x as a network interface.

1 Like

Hey @dobova86 thanks for the info! Very curious, we will try to see if there’s more to discover for the EC20’s side. In the meantime, glad that EC25 works for you, and should unblock you, right? That’s an even nicer modem anyways with more features. :slight_smile:

This is log from qmicli /dev/cdc-wdm0 on a Balenafin 1.1 (with cm3+):

[05-15_15:26:24:235] WCDMA&LTE_QConnectManager_Linux&Android_V1.1.45
[05-15_15:26:24:236] ./files/quectel-CM/quectel-CM profile[1] = iot.1nce.net///0, pincode = (null)
[05-15_15:26:24:238] Find /sys/bus/usb/devices/1-1.2 idVendor=2c7c idProduct=0125
[05-15_15:26:24:238] Find /sys/bus/usb/devices/1-1.2:1.4/net/wwan0
[05-15_15:26:24:238] Find usbnet_adapter = wwan0
[05-15_15:26:24:238] Find /sys/bus/usb/devices/1-1.2:1.4/usbmisc/cdc-wdm0
[05-15_15:26:24:238] Find qmichannel = /dev/cdc-wdm0
[05-15_15:26:24:342] cdc_wdm_fd = 7
[05-15_15:26:24:919] Get clientWDS = 20
[05-15_15:26:24:951] Get clientDMS = 1
[05-15_15:26:24:983] Get clientNAS = 4
[05-15_15:26:25:015] Get clientUIM = 1
[05-15_15:26:25:047] Get clientWDA = 1
[05-15_15:26:25:079] requestBaseBandVersion EC25EFAR06A03M4G
[05-15_15:26:25:207] requestGetSIMStatus SIMStatus: SIM_READY
[05-15_15:26:25:207] requestSetProfile[1] iot.1nce.net///0
[05-15_15:26:25:271] requestGetProfile[1] iot.1nce.net///0
[05-15_15:26:25:303] requestRegistrationState2 MCC: 222, MNC: 1, PS: Attached, DataCap: LTE
[05-15_15:26:25:335] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
[05-15_15:26:25:399] requestRegistrationState2 MCC: 222, MNC: 1, PS: Attached, DataCap: LTE
[05-15_15:26:25:431] requestSetupDataCall WdsConnectionIPv4Handle: 0x8728aab0
[05-15_15:26:25:495] requestQueryDataCall IPv4ConnectionStatus: CONNECTED
[05-15_15:26:25:527] ifconfig wwan0 up
[05-15_15:26:25:536] busybox udhcpc -f -n -q -t 5 -i wwan0
[05-15_15:26:25:543] udhcpc (v1.22.1) started
[05-15_15:26:25:768] Sending discover…
[05-15_15:26:25:858] Sending select for 100.115.XXX.YYY…
[05-15_15:26:25:958] Lease of 100.115.XXX.YYY obtained, lease time 7200
^C
[05-15_15:26:30:132] requestDeactivateDefaultPDP err = 0
[05-15_15:26:30:132] ifconfig wwan0 down
[05-15_15:26:30:143] ifconfig wwan0 0.0.0.0
[05-15_15:26:30:359] QmiWwanThread exit
[05-15_15:26:30:360] main exit

I just spent 10 Euro from www.1nce.com sim card … (ip address showed is fixed by 1nce to the sim card)

Hi @imrehg,
sorry I’m late, but I’m busy on several fronts.

As you may remember, the EC20 modules seems not to be recognized in my application until I run “mmcli -S” on the host. So I’ve deployed the code from https://github.com/balena-io-projects/cellular-test/ and the EC20 worked like a charm at every boot!

Since I use both UDEV and INITSYSTEM within my application I merged the code from https://github.com/balena-io-projects/cellular-test/ with the one from https://github.com/balena-io-library/base-images/tree/master/examples/INITSYSTEM/systemd/systemd.v230.

That is, I’ve modified FROM to point to newer balenalib Stretch images, switched UDEV to on and added the contents of the Dockerfile from the second repository after CMD, along with the entry.sh and resin.service file.

I’ve deployed the whole stuff to my Fin and the EC20 was missing on the first boot!
So I’ve tried a lot of times. Rebooting may work. Or not.
Running “mmcli -S” on the host seems to solve the problem.

I’ve also noted the the EC20 sometimes comes up as wwan0, while other times via ppp0.

The same code has been deployed to Raspberry Pi 3 B+ devices running with Huawei MS2131 USB dongles and never had a problem. As soon as I can solve the problem I may switch to the Fin.

Hi @daghemo,

I provisioned a Fin device with latest OS v2.36.0, since it has ModemManager upgraded to v1.10.0.

I added a balenalib image with UDEV set to on, a very simple one:

FROM balenalib/%%RESIN_MACHINE_NAME%%-debian
ENV UDEV=on
CMD ["sleep", "infinity"]

Each time I reboot the device the EC20 modem is recognized without an issue. Can you please check OS v2.36 on your side as well, so that we see whether that will work better for you?

Thanks,
Zahari

Hi @majorz,
sorry, I forgot to say that I tried with 2.36.0+rev2.

The problem here may be the fact that I also need to bring back the INITSYSTEM.
As I wrote, starting from your cellular-test repository, I’ve added support for INITSYSTEM.

That is:

FROM balenalib/%%RESIN_MACHINE_NAME%%-debian:stretch
RUN apt-get update && apt-get install -yq python && apt-get clean && rm -rf /var/lib/apt/lists/*
ENV UDEV=on
WORKDIR /usr/src/app
COPY src/mmcli /usr/bin/mmcli
COPY src/mmcli_libs /usr/lib
COPY src/start.sh start.sh
COPY src/speedtest.py speedtest.py
RUN chmod +x /usr/bin/mmcli
ENV DBUS_SYSTEM_BUS_ADDRESS=unix:path=/host/run/dbus/system_bus_socket
CMD ["bash", "/usr/src/app/start.sh"]
RUN apt-get update && apt-get install -y --no-install-recommends systemd systemd-sysv && rm -rf /var/lib/apt/lists/*
ENV container docker
RUN systemctl mask dev-hugepages.mount sys-fs-fuse-connections.mount sys-kernel-config.mount \
    display-manager.service getty@.service systemd-logind.service systemd-remount-fs.service \
    getty.target graphical.target kmod-static-nodes.service
COPY entry.sh /usr/bin/entry.sh
COPY resin.service /etc/systemd/system/resin.service
RUN systemctl enable resin.service
STOPSIGNAL 37
ENTRYPOINT ["/usr/bin/entry.sh"]
ENV INITSYSTEM=on

I know that using SystemD within the container is not a best bractice now, but I need some time to move my application away from it.

Hi again @majorz,
I’ve done some more testing on my side.

Using the code form stock cellular-test I can either turn or or off UDEV.
But as long as I also add and INITSYSTEM to the Dockerfile (just taken my one here above) turning UDEV on or off seems to make the difference. That is, with UDEV off the Quectel EC20 always connects at boot time, but with UDEV on it may not work on boot. In this case, running “mmcli -S” seems to solve the problem.

Hi @daghemo thanks for the info. Do you have the same issue with the balenalib base image? The basic issue as i understand it is that one needs to run the udevd in the container in a different network namespace than the OS. This can be done by making sure the container doesn’t have host_networking enabled or one needs to run udevd in a special network namespace as done in the new base images here https://github.com/balena-io-library/base-images/blob/master/balena-base-images/armv7hf/debian/stretch/run/entry.sh#L39

Hi @shaunmulligan,
what do you mean with “the balenalib base image”? Right now I’m using:

FROM balenalib/%%RESIN_MACHINE_NAME%%-debian:stretch

I’ve also tried using “balenalib/armv7hf-debian:stretch” with the same results.

We are impressed by the balenaFin, but the problem seems to happen only with it, not when using the Raspberry Pi 3 B+ with a MS2131 3G USB dongle. As soon as we can resolve the issue, we may start to adopt the balenaFin as a replacement solution.

Hi @daghemo,

With the new balenalib images you do not have to add the INITSYSTEM env variable anymore (the Dockerfile contents above your INITSYSTEM is already doing that effectively). You may read about the changes here: https://www.balena.io/docs/reference/base-images/base-images/#major-changes

What my colleague Shaun meant was that if you need to run systemd and udev in a container, then you need to change the container network mode from host to bridge for the problem with the modem to not occur.

If you are not using docker-compose.yml and you have only one container running, then the container network mode will be set to host - not good for your use case. The way to get around this is to use a docker-compose.yml file where you can fine tune the container settings and change the network mode to bridge.

Here is the documentation about our docker-compose.yml support:
https://www.balena.io/docs/learn/develop/multicontainer/
https://www.balena.io/docs/learn/develop/multicontainer/#network-mode

Although it is generally about setting up multiple containers, you may still setup a single container in the docker-compose.yml file.

Please let us know if you have any questions regarding changing the network mode to bridge or anything else.