New ID_MM_REQUIRED tag to avoid unwanted fallbacks to AT-only modem

Aleksander Morgado aleksandermj at chromium.org
Tue Mar 28 10:50:16 UTC 2023


Hey Peter & all,

The following merge request introduces a new per-port ID_MM_REQUIRED udev tag:
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/989

This udev tag can be specified on the control port that MUST be
successfully grabbed when creating a new modem object, or otherwise
the modem object will not be created at all. E.g. if you have a
QMI-capable modem and you want to make sure the modem is always
managed with the QMI protocol, this tag can be configured in the
specific QMI control port that is required (therefore avoiding the
fallback to AT-only and PPP).

E.g. flagging the MBIM port of the Fibocom L850 module:

       $ vim /lib/udev/rules.d/78-mm-test.rules
       ACTION!="add|change|move|bind", GOTO="mm_test_rules_end"
       SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*",
ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}"
       ATTRS{idVendor}=="2cb7", ATTRS{idProduct}=="0007",
ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_REQUIRED}="1"
       LABEL="mm_test_rules_end"

       $ sudo udevadm control --reload
       $ sudo udevadm trigger

       $ sudo udevadm info -p /sys/class/usbmisc/cdc-wdm0
       ...
       E: ID_MM_REQUIRED=1
       E: ID_MM_CANDIDATE=1

This tag should be used with caution, because when the given tagged
port is not successfully grabbed, the modem object won't be created
and it won't be exposed in DBus. It is assumed that when this tag is
used, some other external process may be monitoring the existence of
the modem in the bus, and if it's not there, it will trigger some
modem recovery mechanism or something to reset the device.

Please note, if the failure probing the port (that could lead to this
tag effectively ignoring the device completely) is due to something we
can fix in the probing phase, we should fix it. Please DO NOT rely on
this tag to recover from issues that could have been prevented by a
probing phase fix. If unsure, ask in the mailing list.

Let me know what you think.
Cheers!

-- 
Aleksander


More information about the ModemManager-devel mailing list