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