Help on an invalid modem case

Aleksander Morgado aleksander at aleksander.es
Tue Jul 7 06:44:16 UTC 2020


Hey Louis-Alexis,

>
> logs for the E3372h device.
>

in this case, we see two interfaces, and both flagged wrongly as PPP:

USB if#0 ---> ttyUSB0 ---> ff/2/18 ---> PPP
USB if#1 ---> ttyUSB1 ---> ff/2/1 ---> PPP

The reason for ttyUSB1 flagged as PPP is legit, that is ok, because
ff/2/1 implies being a data port. This flag is taken from udev rules.
The reason for ttyUSB0 flagged as PPP is not right, in this case the
flag is added due to this code:
        /* If GETPORTMODE unsupported and no other port type hints, we assume
         * usbif 0 is the modem port */
        if (usbif == 0) {
            at_port_flags = MM_PORT_SERIAL_AT_FLAG_PPP;
            goto next;
        }
We're wrongly assuming that there are no other port type hints,
because the hints are coming from udev ports in the generic plugin
code, not from huawei-specific port type hint logic. This is
definitely something to fix.

But anyway, I still believe we should be relying on GETPORTMODE for
all cases; i.e. I don't think we should flag GETPORTMODE as not being
supported for this vid:pid, we should probably improve the logic to
detect whether the NCM interface in GETPORTMODE is listed *before* the
TTYs, and if so, "count" the NCM interface as 2 interfaces, instead of
just one.

I've opened issues in gitlab for these:
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/238
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/239

--
Aleksander
https://aleksander.es


More information about the ModemManager-devel mailing list