ModemManager will not probe all TTYs, NET and cdc-wdm ports found in the system, as this may end up interfering e.g. with TTYs that have nothing to do with modem devices.
The daemon comes with several predefined filter policies, each of them composed of one or more filter rules.
The device filter in ModemManager defines the following independent filter rules. The predefined filter policies are based on one or more of these predefined filter rules.
MM_FILTER_RULE_EXPLICIT_ALLOWLIST
This filter allows users to manually tag devices and/or device ports with the ID_MM_DEVICE_PROCESS udev tag. If the filter finds this tag, the device and/or device ports will be automatically accepted and port probing will be allowed.
$ sudo vim /lib/udev/rules.d/78-mm-allowlist-internal-modem.rules ACTION!="add|change|move", GOTO="mm_allowlist_internal_modem_end" ATTRS{idVendor}=="1199", ATTRS{idProduct}=="a001", ENV{ID_MM_DEVICE_PROCESS}="1" LABEL="mm_allowlist_internal_modem_end" // Apply new rules without reboot $ sudo udevadm control --reload $ sudo udevadm trigger
MM_FILTER_RULE_EXPLICIT_BLACKLIST
This filter allows users to manually tag devices and/or device ports with the ID_MM_DEVICE_IGNORE udev tag. If the filter finds this tag, the device and/or device ports will be automatically ignored and port probing will be never run on them.
$ sudo vim /lib/udev/rules.d/78-mm-blacklist-internal-modem.rules ACTION!="add|change|move", GOTO="mm_blacklist_internal_modem_end" ATTRS{idVendor}=="1199", ATTRS{idProduct}=="a001", ENV{ID_MM_DEVICE_IGNORE}="1" LABEL="mm_blacklist_internal_modem_end" // Apply new rules without reboot $ sudo udevadm control --reload $ sudo udevadm trigger
MM_FILTER_RULE_PLUGIN_ALLOWLIST
This filter will automatically allowlist devices that are explicitly referenced by plugins, either with plugin-specific allowlist tags, with exact vid:pid matches, or just with vid matches.
MM_FILTER_RULE_QRTR
This filter will automatically flag as allowed all QRTR nodes that have been notified as being modem management capable.
This filter rule is available since 1.18.0.
MM_FILTER_RULE_VIRTUAL
This filter will automatically flag as forbidden all ports exposed by virtual devices, like the 'lo' network interface or the tty0, tty1... virtual terminals. There is no reason to disable this filter, except for testing purposes.
MM_FILTER_RULE_NET
This filter will automatically flag as allowed all network ports exposed by devices. Unless there is a will to explicitly forbid network ports, this filter should always be enabled.
MM_FILTER_RULE_USBMISC
This filter will automatically flag as allowed all cdc-wdm ports exposed in the usbmisc subsystem. Unless there is a will to explicitly forbid the cdc-wdm ports exposed by qmi_wwan, cdc_mbim or huawei-cdc-ncm kernel drivers, this filter should always be enabled.
MM_FILTER_RULE_RPMSG
This filter will automatically flag as allowed all rpmsg ports exposed in the rpmsg subsystem. Unless there is a will to explicitly forbid the rpmsg ports, this filter should always be enabled.
This filter rule is available since 1.16.0.
MM_FILTER_RULE_WWAN
This filter will automatically flag as allowed all wwan control ports exposed in the wwan subsystem. Unless there is a will to explicitly forbid the wwan control ports, this filter should always be enabled.
This filter rule is available since 1.18.0.
MM_FILTER_RULE_TTY
If the MM_FILTER_RULE_TTY filter is disabled, no TTY port will be allowed. If this filter is enabled, TTY ports will only be allowed if the TTY-specific filters (defined next) allow it.
MM_FILTER_RULE_TTY_PLATFORM_DRIVER
If this filter is enabled, all platform TTY ports will be forbidden automatically.
MM_FILTER_RULE_TTY_DRIVER
If this filter is enabled, all TTY ports managed by modem-specific kernel drivers will be allowed automatically.
FILTER_RULE_TTY_ACM_INTERFACE
If this filter is enabled, all TTY ports managed by the cdc-acm kernel driver with class=2/subclass=2/protocol=1 (AT command capable ttyACM port) will be allowed automatically.
MM_FILTER_RULE_TTY_WITH_NET
If this filter is enabled, all TTY ports for devices that also expose a network interface port will be allowed automatically.
MM_FILTER_RULE_TTY_DEFAULT_FORBIDDEN
This rule is the implicit one defining what happens when a TTY port isn't explicitly accepted by any of the TTY-specific filters; i.e. the TTY port will be forbidden.
The following filter rules have been deprecated and are no longer used.
MM_FILTER_RULE_TTY_BLACKLIST
Deprecated in 1.18.0.
MM_FILTER_RULE_TTY_MANUAL_SCAN_ONLY
Deprecated in 1.18.0.