ModemManager 1.10.8 ------------------------------------------- This is a new bugfix release of ModemManager. The list of changes in this version includes: * Polkit policy: ** Added several missing methods to the policy rules. ** Use the explicit Firmware policy for all firmware operations. ** Updated USSD policy to require user authentication in strict mode. * systemd service: ** Always start after polkit service when policy control is enabled. * Broadband modem: ** Fix signal quality reporting when +CSQ is used. * 3GPP: ** Fix reporting 'denied' registration state. * QMI: ** Fixed NAS SSP support check during supported capability loading. * Simple interface: ** Allow one single ongoing Connect() attempt. ** Fixed Disconnect() when an explicit bearer path is given. * mmcli: ** Fixed key-value output when printing array with 10 elements. * Plugins: ** simtech: added port type hints for the SIM7000/SIM7600 family. ** x22x: added support for the Alcatel X602D. ** telit: increased timeout for AT#REBOOT. ** quectel: fixed port type hints for the EG91. ** quectel: added port type hints for the BG96. ModemManager 1.10.6 ------------------------------------------- This is a new bugfix release of ModemManager. The list of changes in this version includes: * Bearer: if connecting a bearer with PPP method, require upper layers to disconnect the bearer explicitly and completely ignore the connectivity checks performed by the modem itself. This makes sure that the TTY is not reused by ModemManager before pppd has finished using it. * Serial port: ** Fix serial port flash cancellation logic to avoid assertion if the device gets unplugged during the flash operation. ** Fix serial port reopen logic to flag the port as forced-closed if the reopening fails, to avoid assertion if the device gets unplugged during the reopen operation. ** Avoid warning when signals are disconnected automatically during last object unref. * SMS: ** Initialize common fields early for multipart messages, without waiting for the last part to arrive. * 3GPP: ** Report consolidated registration state as DENIED if all the other ones are either idle or unknown. * udev: ** Updated ID_MM_DEVICE_IGNORE to make it really a user-usable tag, applicable not only to TTY devices but to any kind of device (e.g. to blacklist MBIM modems); and also applicable under any kind of filter mode (including 'strict' mode). * Filter: ** Added new 'explicit blacklist' filter rule, by default enabled for all filter modes and controlled with the MM_FILTER_RULE_EXPLICIT_BLACKLIST envvar. ** Added new 'plugin whitelist' filter rule, enabled exclusively in 'strict' filter mode, which allows us to automatically flag for probing those devices that are flagged with specific plugin-selected udev tags or which have vid:pid pairs registered as allowed in the plugins. ** Updated the 'AT-capable ttyACM' filter rule, so that we only process and probe the serial port if the device also exposes other ports (serial, cdc-wdm, net) that ModemManager may process. This fix should allow us to automatically ignore Arduino devices that wrongly report themselves as speaking AT protocol in the ttyACM port. * QMI: ** Fix segfault while updating bands and the device doesn't support the 'extended LTE band preference' TLV. * MBIM: ** Fix segfault while processing empty USSD responses. * libmm-glib: ** Properly handle NULL pointer on MMFirmwareUpdateSettings. * Plugins: ** sierra: added port type hints for the MC74xx family. ** telit: added port type hints for the ME910 and the EG91. ** cinterion: added port type hints for the PLS8. ModemManager 1.10.4 ------------------------------------------- This is a new bugfix release of ModemManager. The list of changes in this version includes: * QMI: ** Fix assertion when cleaning up event report indications. * MBIM: ** Fix detecting errors in "Register State Set" responses. * 3GPP interface: ** Use correct finish() method to complete user registration. * Plugins: ** u-blox: fix segfault when UACT? returns empty band list. ModemManager 1.10.2 ------------------------------------------- This is a new bugfix release of ModemManager. Unlike previous bugfix releases of stable branches, this release comes with a new feature that may require packaging updates: * Carrier configuration reporting and automatic selection. It is now possible to load and expose in the modem interface the currently selected carrier configuration in the module, if any, via the new 'CarrierConfiguration' and 'CarrierConfigurationRevision' properties. Additionally, if the modem/plugin supports it via a custom mapping, ModemManager will also automatically select the best carrier configuration for the currently available SIM card. The mapping is provided via an external file that associates a SIM card MCCMNC with a given carrier ID string as reported by the specific module. Initially the carrier configuration reporting is available to all QMI modems with PDC service support, and the automatic carrier configuration switching only to the Dell DW5821e, for which a mapping configuration file is provided. This carrier configuration support provides the foundation for "carrier based firmware upgrade paths" in the fwupd/LVFS integration. E.g. a modem running with a Vodafone-specific carrier configuration will only be suggested firmware upgrades providing Vodafone-specific carrier configurations, as the specific GUIDs generated for fwupd contain the USB VID/PID/REV plus the currently used carrier name: USB\VID_413C&PID_81D7&REV_0318&CARRIER_VODAFONE. Some notes to distribution packagers: ** The mapping files will be installed under ${pkgdatadir}, e.g.: /usr/share/ModemManager/mm-dell-dw5821e-carrier-mapping.conf ** libqmi 1.22.4 is required as a buildtime and runtime dependency. The list of changes in this version includes: * Manager interface: ** Fixed inhibition alloc/dealloc mixup. * Modem interface: ** New 'CarrierConfiguration' property that shows which is the currently selected carrier configuration in the device, if known. ** New automatic carrier configuration selection logic, based on per-device or per-vendor mapping. * Messaging interface: ** Flush SMS list update before notifying added/removed signals. * SMS: ** Fixed sending binary PDUs via AT commands when other AT command operations are scheduled at the same time. * QMI: ** Increased the number of open retries from 10 to 20, required e.g. for the Telit LM940/960 modems. ** Implemented QMI PDC based carrier config loading and automatic switching. * Plugins: ** dell: added port type hints for the DW5820e. ** dell: use QMI DMS extension method to load properly formatted firmware version strings. ** quectel: added port type hints for the EG06. ** ublox: added alternative port type hints for the LISA/SARA-U2. ** telit: added support for MBIM-based telit modems. * mmcli: ** Updated --monitor-state to report modem removal. * Several memory leak fixes in different modules. ModemManager 1.10.0 ------------------------------------------- This is a new stable release of ModemManager. The following notes are directed to package maintainers: * This version requires: ** libmbim >= 1.18.0 (for the optional MBIM support) ** libqmi >= 1.22.0 (for the optional QMI support) The most important features and changes in this release are the following: * udev: ** Consolidated common tag names among all the supported plugins. E.g. ID_MM_PORT_TYPE_GPS, ID_MM_PORT_TYPE_AT_*, ID_MM_PORT_TYPE_QCDM... All these generic tags are included as symbols in the API, and compatibility will be maintained for these. Custom setups of ModemManager relying on previously available per-plugin udev tags may need to manually port them to this new generic subset. ** New tag to allow specifying flow control settings to use in serial ports. * Core: ** Avoid probing other protocols on TTYs tagged in udev with specific port type tags (e.g. avoid probing QCDM if a port is tagged as AT). This allows faster port probing and modem detection for known modem layouts. ** Implemented support to enable and handle +CGEV URCs for asynchronous connection state updates in AT-controlled devices. * Manager interface: ** New runtime daemon version reporting. ** New support for requesting device inhibition, e.g. so that ModemManager stops completely using a modem device until the inhibition is released. This feature is implemented to allow fwupd taking over of a device completely for as long as it needs during a firmware update. * Modem interface: ** All methods are always connected, even in Failed state. ** Allow parallel Enable()/Disable() calls. ** Deprecated redundant ListBearers() method, the read-only Bearers property is already showing the same information. * Bearer interface: ** New 'BearerType' property, e.g. to specify whether a bearer is the initial LTE default bearer or not. ** Deprecated 'number' field in bearer settings. Applications do not need to send the 'number' field in Bearer.Connect() or in Modem.Simple.Connect(), as the setting is totally ignored. * mmcli: ** New 'key-value' output, easier to parse by scripts than the default. ** Removed redundant '--location-get-XXX' actions, as the '--location-get' already reports the location information for all sources. ** Removed redundant '--simple-status' action, as the same information can be obtained through different mmcli operations. ** New manager '--inhibit-device' action and modem-specific '--inhibit', to allow requesting device inhibition. * 3GPP interface: ** New support for exposing the network reported Protocol Configuration Options (PCO), to be used instead of the new deprecated Subscription State property. ** New support for exposing the initial LTE default bearer status. ** New support for configuring the initial LTE default bearer settings. * Location interface: ** New LTE Tracking Area Code (TAC) in 3GPP location information. ** New support for injecting assistance data (e.g. Qualcomm XTRA) into the GNSS engine, useful when there is no mobile connection to use MSA A-GPS. * Firmware interface: ** Support for reporting firmware update support properties, e.g. specifying which update methods are supported. This information will be consumed by fwupd in order to allow upgrading firmware in devices managed by ModemManager. * Voice interface: ** Multiple improvements and fixes in the voice call management logic implemented with generic AT commands. ** Added AudioPort and AudioFormat properties to the Call object. ** Added new generic audio channel setup/cleanup handlers in the Call object. * QMI: ** New LOC service based GNSS support, including A-GPS setup via SUPL server. ** New support for the "extended" LTE band list. ** New support for reading IMSI and ICCID with the UIM service. * MBIM: ** Implemented support for processing Protocol Configuration Options using Microsoft-defined Basic Connect Extensions. ** Implemented support for LTE attach status and configuration using Microsoft-defined Basic Connect Extensions. ** Implemented support for the extended signal interface and for 3GPP location details using the AT&T specific service. ** Implemented support for 3GPP USSD operations using the standard USSD service. ** For Qualcomm-based MBIM devices, those with QMI-over-MBIM support, a whole new set of features is now available, including: QMI LOC/PDS location support, allowed/preferred mode management, frequency band selection, power management operations... * Plugins: ** xmm: new XMM plugin, with shared logic (allowed/preferred mode management, frequency band selection, power management operations, extended signal quality reporting, GPS/A-GPS...) for Intel XMM based devices. ** fibocom: new plugin, with support for generic MBIM and XMM-based devices. ** dell: added support for XMM-based devices, like the DW5820e. ** dell: added custom support for the DW5821e, including 'unmanaged' GPS and firmware update integration details. ** cinterion: new shared interface to include all logic shared between Option and Option/HSO devices. ** sierra-legacy: implemented connection monitoring support. ** u-blox: added support for extended call state transitions. ** u-blox: added CDC-ECM support for SARA/LISA-U2xx modems. ** altair-lte: migrated from SubscriptionState to PCO. All the features and fixes which were backported to 1.8.x releases are also present in ModemManager 1.10.0. ModemManager 1.8.0 ------------------------------------------- This is a new stable release of ModemManager. The following notes are directed to package maintainers: * This version requires: ** GLib 2.36.0 ** gettext 0.19.8 (for the optional rebuild of documentation) ** libmbim >= 1.16.0 (for the optional MBIM support) ** libqmi >= 1.20.0 (for the optional QMI support) ** libsystemd >= 209 or libsystemd-login >= 183 (for the optional suspend and resume support) ** libsystemd >= 209 (for the optional systemd journal support) ** polkit >= 0.97 (for the optional PolicyKit support) * This version no longer requires: ** intltool (replaced by new features in gettext) * Distributions using systemd should explicitly use the following configure options: ** '--with-systemd-suspend-resume': the only supported source for suspend and resume events is now systemd, so the previous '--with-suspend-resume=[]' option was renamed. ** '--with-systemd-journal' to use the new journal support. * Distributions wanting to avoid ModemManager poking TTY ports that isn't supposed to touch may start using the new 'STRICT' filter policy, given as an option to the ModemManager daemon (e.g. patching the default systemd service file provided). See below for more info about the filter policy and the side effects of using the STRICT approach: ** E.g. ModemManager --filter-policy=STRICT The most important features and changes in this release are the following: * New 'filter policy' setting in the ModemManager daemon to decide which ports are probed and how. Currently these levels are defined: ** WHITELIST-ONLY: Only devices or ports explicitly whitelisted with the new 'ID_MM_DEVICE_PROCESS' udev tag are probed. ** DEFAULT: All ports are allowed to be probed except for the ones explicitly greylisted as RS232 adapters or completely blacklisted. This is the default approach that was used until now, and the default as well in this release if a different one isn't requested. ** STRICT: The daemon defines a set of heuristics to try to detect modems and ports to probe. Only the TTY ports that are very very likely to be modem ports are probed, therefore completely avoiding the need of having a separate blacklist or RS232 adapter greylist. But note that this policy may end up ignoring some devices, like TTY controlled modems without an associated network port. ** PARANOID: This is equivalent to running the STRICT mode but also applying the blacklist and RS232 greylist filters explicitly. * Device 'naming'. This release includes logic to allow 'naming' devices with the ID_MM_PHYSDEV_UID udev tag, so that the names can then be used in e.g. mmcli and also exposed in the 'Device' property in the Modem interface. This new setup makes it possible to give the devices unique names that are kept across reboots. * Allow skipping the automatic scan for devices in the daemon with the new '--no-auto-scan' daemon option. Instead, the daemon may be called with the '--initial-kernel-events=[PATH]' option including a predefined list of ports or otherwise get the port additions reported during runtime with the mmcli --report-kernel-event=[] command. * Allow building and running without 'udev'. In this setup, the previously explained '--no-auto-scan' is enabled by default, so ports are not automatically detected .Note that this setup is not suggested for standard distributions: if udev is available in the system, it is the preferred method to manage the port addition and removal. * SIM hot swap. The core includes the needed logic to support SIM hot swap in the different devices, although for now it's only tested for Telit and MBIM modems. If a SIM hot swap is detected, the modem is flagged as failed and reprobed from scratch. * Connection status monitoring logic. In order to try to detect network initiated disconnections, a generic setup is provided to plugins so that they can implement explicit connection status checks that would be executed periodically. * New support for 3GPP CSFB states and operation modes. We now support registration states reported as "SMS only" or "CSFB not preferred", and provide APIs to set and get the "UE mode of operation for EPS". This version comes with the following new features: * Build and system: ** Updated the systemd service file with additional security related rules. ** Added support for systemd journal logging. ** Updated most of the code to use GTask instead of the deprecated GSimpleAsyncResult based operations. ** ChangeLog is built from git during the dist tarball generation. * New translations: Polish, Brazilian Portuguese, Slovak, Hungarian, Czech, Ukrainian, Swedish and Indonesian. * API: ** Defined additional GSM, UMTS and LTE frequency bands. ** The MMModemBand enumeration values (EUTRAN, UTRAN and CDMA) have been renamed to consolidate how they are defined. A compatibility layer has been provided to avoid breaking the API. ** New 'HardwareRevision' property in the Modem interface. ** New 'EpsUeModeOperation' property and 'SetEpsUeModeOperation' method in the Modem 3GPP interface. * Core: ** Updated libqcdm to load signal strength from QCDM EVDO Pilot Sets. ** Updated udev rules with new per-vendor rules for quicker processing. ** Explicitly ignored ports are never probed now, but they will be reported as owned by the device and exposed in the Ports property. ** New 'ID_MM_TTY_BAUDRATE' udev tag to specify the baudrate to use in RS232 TTY ports. ** If using UCS2, still assume that the operator name may be given in ASCII. ** Explicitly open QCDM ports anytime it's needed, instead of assuming they are open when enabled. ** Query supported ME event reporting options and automatically set the best choice based on the supported ones. ** Query supported flow control modems and automatically set the best choice based on the supported ones. ** Explicitly configure flow control settings on the TTY as soon as it is connected, only applicable for RS232 devices. ** Implemented generic unlock retries loading. * MBIM: ** Explicitly reprobe the modem when the mbim-proxy is detected dead. ** Workaround implemented to keep track of the PIN1 unlock retries as the protocol isn't very good allowing this. ** Load and expose HW revision. * QMI: ** Explicitly reprobe the modem when the qmi-proxy is detected dead. ** Load and expose HW revision. ** Detect port closed and forbid client allocation operations. ** New optional connection status monitoring support, enabled by default for the Netgear AC341U. * Location interface: ** Disabled by default for MBIM modems. * Messaging interface: ** Try decoding with UTF-16BE when UCS-2 reported. * Plugins: ** u-blox: new plugin, currently supporting the TOBY-L2, TOBY-L4, TOBY-R2, LARA-R2 and LISA-R2. ** quectel: new plugin, supporting generic AT/QMI based modems. ** cinterion: implemented support for devices exposing a WWAN network interface. ** cinterion: support changing modes in LTE capable devices. ** cinterion: added GPS support for devices controlled only with AT^SGPSC. ** cinterion: use ^SIND unsolicited messages for access tech reporting. ** huawei: implemented Signal interface. ** telit: added support for RS232, QMI and MBIM modems. ** novatel: cleaned up registration state and access tech reporting. ** novatel-lte: implemented unlock retries loading. ** dell: speed probing time up and reduce udev dependency. ** mbm: added GPS support for the Dell DW5560. The following features which were backported to 1.6.x releases are also present in ModemManager 1.8.0: * Build and System: ** Explicitly use -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_36 and -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_36 so that we don't get warnings for GLib features that are flagged as deprecated in newer versions. ** Dropped After=syslog.target rule in systemd service file. ** Added all ModemManager udev tags also in "bind" events. * Core: ** Improved detection of 4G-only modems. ** TTY is set as connected as soon as ATD replies. ** Removed the default ID_MM_PLATFORM_DRIVER_PROBE whitelist. * Signal interface: ** Report RSCP if available. ** New generic implementation of the Signal interface in AT-based devices using AT+CESQ. * QMI: ** Run FCC auth sequence if "InvalidTransition" is reported when going online. ** Added WDS reporting event support. * Plugins: ** huawei: let the E3372 run NDISDUP via TTY (when the exposed cdc-wdm is non-functional). ** telit: added support for the GE910. ModemManager 1.6.0 ------------------------------------------- This is a new stable release of ModemManager. * This version requires: ** GLib 2.36.0 ** gettext 0.19.3 ** libmbim >= 1.14.0 (for the optional MBIM support) ** libqmi >= 1.16.0 (for the optional QMI support) ** libsystemd >= 209 or libsystemd-login >= 183 (for the optional suspend and resume support) * For distributions using systemd, it is suggested that the new optional suspend/resume is explicitly requested during configure with the new '--with-suspend-resume=systemd' argument. This version comes with the following new features: * Core: ** Implemented support for suspend/resume detection, currently working when systemd is in use. Whenever the system is suspended, we'll flag the modems as invalid so that they are re-probed from scratch when the system is resumed. ** Added cancellation support for the probing operations. ** Reworked and simplified the serial port response processing. * Location interface: ** Added A-GPS support, currently available only for QMI based modems with PDS service. ** Added support for updating the default GPS refresh time. * Time interface: ** New default implementation for all AT-based modems. * Voice interface: ** New DBus interface to allow the management of voice calls, which currently assumes that the audio channel is setup out of ModemManager. * Bearer: ** New support for reporting statistics of the ongoing connection with a new 'Stats' property, currently available for QMI and MBIM based modems. * QMI: ** Implemented support for devices which only work in "raw IP" mode, like the Sierra MC7455. ** Implemented support for SIM related operations using the UIM service, as newer modems with multi-SIM capabilities don't suppor the legacy DMS UIM operations. ** Implemented support for detecting network-initiated disconnections. * MBIM: ** If online mode fails, try to use the 'DMS Set FCC Authentication' QMI message via the QMI-over-MBIM support, if supported by the device. * udev: ** Added new supported 'ID_MM_PORT_IGNORE' tag to allow fully ignoring ports specified by the user. * mmcli: ** Added command completion. ** Added new operations to use the Voice interface. ** Added new operations to manage the A-GPS settings. * Build: ** Added code coverage support. * Plugins: ** haier: new plugin to support the Haier CE81B. ** thuraya: new plugin for Thuraya satellite modems. ** sierra-legacy,sierra: the implementation for Sierra modems is now split into two different plugins: a 'legacy' one for the old PPP and DirectIP based modems and the standard one for the newer QMI and MBIM based ones. ** dell: new plugin for Dell rebranded devices from Novatel, Sierra or Ericsson. ** gobi: removed the plugin. All non-vendor specific QMI devices should now be managed by the generic plugin. ** mbm: dynamically load the list of supported modes. ** mbm: fixed several connection/disconnection issues. ** simtech: support QMI devices. ** huawei: implemented Voice call management support. ** huawei: use static IP addressing in NDISDUP capable devices if the AT^DHCP response provides the IP details. The following features which were backported to 1.4.x releases are also present in ModemManager 1.6.0: * MBIM: ** The mbim-proxy is used by default. ** Implemented support for disconnection status notification while connected. ** Disabled CDMA capabilities, until properly supported. * QMI: ** The qmi-proxy is used by default. ** If online mode fails, use 'DMS Set FCC Authentication', required by some rebranded Sierra modems (e.g. Dell branded ones). ** Implemented support for loading SIM operator id and name. ** Implemented power-cycle reset functionality. * Plugins: ** telit: added support for new devices, like HE910, UE910 and UL865. ** telit: implemented dynamic port identification. ** telit: implemented unlock retries loading. ** telit: implemented supported/current bands management. ** telit: implemented supported/current modes management. ** telit: implemented modem reset and power down. ** mbm: implemented GPS support for Ericsson HS2350 and H5321gw modems. ModemManager 1.4.0 ------------------------------------------- This is a new stable release of ModemManager. * This version requires libmbim >= 1.10.0. This version comes with the following updates in the interfaces: * Updated the logic around the IP configuration properties in the Bearer: ** Setting DHCP as IP method in the IPv6 settings means that SLAAC should be used to retrieve correct addressing and routing details. ** DHCP IP method may now be combined with an explicit static IP address, as IPv6 SLAAC may require the link-local address to be present. ** MTU is now also included in the IP configuration properties, if specified by the modem, and applicable to both DHCP and STATIC methods. * New 'OFF' power state, which fully switches off the modem device. After setting the modem in this state, no further use of it can be done. Currently available in Wavecom and Cinterion. * Location interface: new 'unmanaged GPS' support, which allows to start/stop the GPS module in the modem, while leaving the location information retrieval to other processes. Currently available in modems with independent GPS TTYs, like Option/HSO, Cinterion and Huawei. * New Test DBus interface: not to be installed, just for internal system tests. Other notable changes include: * MBIM: support for ZTE and Sequans Communications modems. * Ericsson MBM: Support for AT-capable /dev/cdc-wdm ports. * Huawei: improved support for Network time retrieval. * Huawei: implemented GPS support. * Huawei: support for /dev/cdc-wdm AT ports via the new huawei-cdc-ncm driver. * Cinterion: implemented GPS support. * Cinterion: implemented unlock retries loading. * Cinterion: gather port types for multi-tty devices. * Cinterion: custom wait for SIM readiness after SIM-PIN unlock. * Wavecom: custom wait for SIM readiness after SIM-PIN unlock. * Probing: new flag to identify hotplugged devices which don't need full reset. * Tests: internal refactor of the ports handling code, allowing test-driven virtual ports and system tests run during 'make check'. This new feature also comes with a new internal 'Test' DBus interface, as well as new --test-[*] options in the ModemManager program. * and many more fixes... ModemManager 1.2.0 ------------------------------------------- This is a new stable release of ModemManager. This version comes with the following updates in the interfaces: * Signal interface: new interface for extended signal quality information * OMA interface: new interface to expose the Device Management capabilities defined by the Open Mobile Alliance * Messaging interface: new 'Messages' property * Modem interface: new 'Bearers' property * 3GPP interface: new 'SubscriptionState' property Other notable changes include: * QMI: Implemented Manual CDMA activation logic * QMI: Implemented 3GPP2/CDMA SMS support * QMI: Added support for QMI modems in the ZTE, x22x and Cinterion plugins. * Huawei: multiple improvements and fixes for the ^NDISDUP support * Huawei: new mode/switching logic with ^SYSCFGEX for LTE-capable devices * Altair-LTE: set subscription state based on PCO * MediaTek: new 'mtk' plugin added for MediaTek devices * libmm-glib: Added GObject Introspection and Vala support * and many more fixes... ModemManager 1.0.0 ------------------------------------------- This is a new stable release of ModemManager. Notable changes include: * More flexible D-Bus API that accounts for the capabilities of modern devices * Native support for Gobi and QMI-based Qualcomm devices via libqmi * Native support for MBIM-based devices via libmbim * Preliminary support for GPS-based Location Services with some devices * More complete messaging API * New libmm-glib client library * New fully-featured command-line client (mmcli) * systemd integration * and much more...