ModemManager randomly uses AT instead of QMI interface on Quectel EG25G

Aleksander Morgado aleksandermj at chromium.org
Mon Nov 7 15:22:12 UTC 2022


Hey

>
> I have a problem where rarely, but randomly ModemManager choosest to make
> the the connection over the AT rather than the QMI interface. A failed one
> looks on the log like:
>
> -snip-
> <info>  ModemManager (version 1.16.10) starting in system bus...
> systemd[1]: Started Modem Manager.
> [/dev/cdc-wdm0] Opening device with flags 'version-info, proxy'...
> [/dev/cdc-wdm0] created endpoint
> cannot connect to proxy: Could not connect: Connection refused
> spawning new qmi-proxy (try 1)...
> cannot connect to proxy: Could not connect: Connection refused
> spawning new qmi-proxy (try 2)...
> [/dev/cdc-wdm0] Checking version info (45 retries)...
> [/dev/cdc-wdm0] QMI Device supports 27 services:
> [/dev/cdc-wdm0]    ctl (1.5)
> [/dev/cdc-wdm0]    wds (1.67)
> [/dev/cdc-wdm0]    dms (1.0)
> [/dev/cdc-wdm0]    nas (1.25)
> [/dev/cdc-wdm0]    qos (1.12)
> [/dev/cdc-wdm0]    wms (1.10)
> [/dev/cdc-wdm0]    auth (1.3)
> [/dev/cdc-wdm0]    at (1.2)
> [/dev/cdc-wdm0]    voice (2.1)
> [/dev/cdc-wdm0]    cat2 (2.24)
> [/dev/cdc-wdm0]    uim (1.46)
> [/dev/cdc-wdm0]    pbm (1.4)
> [/dev/cdc-wdm0]    test (1.0)
> [/dev/cdc-wdm0]    loc (2.0)
> [/dev/cdc-wdm0]    sar (1.0)
> [/dev/cdc-wdm0]    csd (1.0)
> [/dev/cdc-wdm0]    ts (1.0)
> [/dev/cdc-wdm0]    tmd (1.0)
> [/dev/cdc-wdm0]    wda (1.16)
> [/dev/cdc-wdm0]    csvt (1.1)
> [/dev/cdc-wdm0]    coex (1.0)
> [/dev/cdc-wdm0]    pdc (1.0)
> [/dev/cdc-wdm0]    rfrpe (1.0)
> [/dev/cdc-wdm0]    dsd (1.0)
> [/dev/cdc-wdm0]    unknown [0x2d] (1.0)
> [/dev/cdc-wdm0]    unknown [0x30] (1.0)
> [/dev/cdc-wdm0]    unknown [0x36] (1.0)
> <info>  [device HomeModem] creating modem with plugin 'quectel' and '1' ports
> <warn>  [base-manager] couldn't create modem for device 'HomeModem': Failed to find a net port in the QMI modem
> <info>  [device HomeModem] creating modem with plugin 'quectel' and '5' ports
> -snip-
>

This happened because the kernel was slow exposing the ports of the
same device. We have some logic to "wait" for new port additions to
happen since the last one we process. In this case we ended up
splitting the ports in two blocks, one with only the QMI port (so no
net port) and the other one with the AT ports and the net port.

> The successful connections instead look like:
>
> -snip-
> <info>  [device HomeModem] creating modem with plugin 'quectel' and '6' ports
> <info>  [base-manager] modem for device 'HomeModem' successfully created
> -snip-
>
> Any hints why this happens and howto prevent it? Due to random nature
> it's hard to catch with debug on.
>

There have been several fixes and updates in that regard recently, I
would suggest upgrading to a newer version like hte latest 1.18.x or
1.20.0

-- 
Aleksander


More information about the ModemManager-devel mailing list