ANN: ModemManager 1.18 released

Dylan Van Assche me at dylanvanassche.be
Thu Sep 9 18:25:59 UTC 2021


AWESOME!
Thank you for all the work on this great piece of software!


Kind regards,
Dylan

> Hey hey,
> 
> This is a new major release of ModemManager, which will be the base
> for the 1.18.x stable series (the new "mm-1-18" branch in git). The
> release has been tagged as "1.18.0".
> 
> This is probably the biggest major release we have done since 1.0,
> and that is thanks to a lot of people!
>   * Thanks to Iñigo Martinez for the meson build system integration
> not only in MM but also in libqmi, libmbim and libqrtr-glib.
>   * Thanks to the postmarketOS devs (Stephan Gerhold, Dylan Van
> Assche, Joel Selvaraj, Caleb Connolly...), working on the MM
> integration and testing for various devices (Qualcomm SoCs,
> PinePhone...) and features (QMI voice call management, quick
> sleep/resume procedure, QRTR+IPA integration...).
>   * Thanks to the Google ChromeOS team (Eric Caruso, Andrew Lassalle,
> Pavan Holla...) working on multiple different features (Multi-APN
> support, Dual SIM, profile management, QRTR+IPA integration...).
>   * Thanks to Teijo Kinnunen for the work cleaning up the MNC PCS
> digit management in QMI devices and the new SIM preferred network
> APIs.
>   * Thanks to Michal Mazur for the work implementing the APIs to
> disable facility locks.
>   * Thanks to the Fibocom team (Zhang Mingjie, King Sun...) for
> developing the DSSA support in MBIM-only devices.
>   * Thanks to Loic Poulain for the continuous support in the new PCIe
> module integration.
>   * Thanks to Bjørn Mork, Daniele Palmas, Carl Yin and many more for
> the help and support during the development of major features in this
> release.
> 
> 
> ModemManager 1.18.0
> -------------------------------------------
> This is a new stable release of ModemManager.
> 
> The following notes are directed to package maintainers:
> 
>   * This version now requires:
>     ** glib2 >= 2.56
>     ** libgudev >= 232
>     ** libmbim >= 1.26.0 (for the optional MBIM support)
>     ** libqmi >= 1.30.2 (for the optional QMI support)
>     ** libqrtr-glib >= 1.0.0 (for the optional QRTR support)
> 
>   * The ModemManager.service file for systemd integration provided in
> the sources is updated as follows:
>     ** 'CAP_NET_ADMIN' is now required in the 'CapabilityBoundingSet'
> field.
>     ** 'AF_NETLINK' and 'AF_QIPCRTR' are now required in the
> 'RestrictAddressFamilies' field.
>     If the system where ModemManager is being integrated provides a
> custom systemd service configuration, these updates should be
> considered.
> 
>   * The LEGACY and PARANOID filter types that were allowed options in
> the '--filter-policy' option in the ModemManager daemon were
> deprecated in version 1.16.0 and have now been completely removed,
> along with the vid:pid blacklist of devices and the vid:pid greylist
> of RS232<->USB adapters.
> 
>   * Building from git no longer requires autoconf-archive, the needed
> AX_ macros are now shipped inside m4/.
> 
>   * In addition to building from a source release tarball, or
> building from git checkouts using the GNU autotools suite
> (autoconf/automake/libtool), this release includes the initial
> support for the meson build system. The meson port is not fully
> complete yet, as there are some missing things in the doc generation
> and test steps, but for system integration or development purposes,
> the port should be fully operational. This major release, including
> all its stable updates in the 1.18.x series, will be the last ones
> providing support for GNU autotools. The next major release will
> likely be a meson-only one, and will therefore not be based on a
> source release tarball any more, but on specific git tags instead.
> 
> The most important features and changes in this release are the
> following:
> 
>   * Data session multiplexing can now be enabled in QMI and MBIM
> modems, e.g. so that multiple different APNs can be connected
> separately over a single network interface. The multiplexing is
> disabled by default in this release, except for cases where it's
> required (e.g. if non-multiplexed sessions aren't supported) like IPA
> based Qualcomm SoCs. Users can request the multiplexing support
> explicitly via settings when creating the connection bearer object.
> 
>     In order to allow easy testing of the multiplexing feature
> without requiring any additional change in the stack, a new '--test-
> multiplex-requested' option in the daemon allows to switch the
> default (when not explicitly given by the user) to attempt to use
> multiplexing.
> 
>     It is worth noting that when multiplexing is enabled, the data
> network interface used by the modem will be a virtual network
> interface created in runtime, and will therefore have a different
> name than the real network interface exposed by the modem. If there
> are additional settings in the system relying on the data network
> interface name (e.g. iptables rules), they
>     may need to be updated.
> 
>   * The ModemManager daemon can run now in a 'quick suspend/resume'
> mode, in which no explicit data disconnection is triggered on
> suspend, and no explicit device re-probing from scratch is launched
> on resume. Instead, the daemon will try to refresh the state of all
> interfaces upon suspend, e.g. to see if the module keeps registered
> to the same operator, to see if it is still connected, and so on.
> 
>     This mode of operation is useful when the WWAN module stays awake
> while the host is suspended, and can be enabled with the '--test-
> quick-suspend-resume' option in the daemon.
> 
>   * API:
>     ** New '3gppProfileManager' interface, providing operations on
> the list of connection profiles stored in the 3GPP module. This
> interface is implemented for all AT, QMI and MBIM protocols.
>     ** New 'DisableFacilityLock()' method in the 3GPP interface,
> implemented for QMI and MBIM devices.
>     ** The 'MaxBearers' property is now deprecated, as it didn't
> provide any additional information to what 'MaxActiveBearers' already
> provides.
>     ** New 'MaxActiveMultiplexedBearers' property, listing how many
> bearers can be connected at the same time if multiplexing is enabled.
>     ** New settings in the bearer properties, applicable to both the
> 'Simple.Connect()' and 'Modem.CreateBearer()' methods:
>        *** 'multiplex': which allows the user to specify whether
> multiplexing should be avoided ('none'), whether it should be
> mandatory ('required') or whether it should be enabled if available
> or skipped if unavailable ('requested').
>        *** 'profile-id': which allows the user to request a
> connection attempt with an existing profile stored in the module.
>        *** 'apn-type': which allows the user to specify the purpose
> of a given connection, e.g. the user could create a connection to an
> APN providing default internet connectivity and another one to an APN
> providing access to the MMS gateway. This setting may or may not be
> stored in the module itself, it depends on the type of module.
>     ** New 'Multiplexed' boolean property in the Bearer object,
> specifying whether the bearer is connected through a multiplexed
> interface.
>     ** New 'ConnectionError' property in the bearer object,
> specifying the last error reported by the module during a failed
> connection attempt or during a network-initiated disconnection.
>     ** Updated the list of enum values in the MMMobileEquipmentError'
> type, according to the error codes defined in v17.1.0 of 3GPP TS
> 27.007.
> 
>   * Core:
>     ** iconv() features support is detected at runtime, and logged
> when the daemon starts.
>     ** Updated the base modem object to allow plugins to specify the
> types of data ports they support, based on the specific plugin
> implementations, e.g. so that a modem supporting only AT+PPP can
> ignore NET ports and vice versa.
>     ** Added support for modems exposing control ports via QRTR
> channels.
> 
>   * Modem interface:
>     ** The Dual SIM logic that would iterate over all slots during
> initialization is updated, so that we only report the information
> that we can gather without any explicit slot change. E.g. with QMI we
> can know whether there is a SIM in the non-active slot, and the ICCID
> of that SIM, but we cannot know the MCCMNC or the operator name of
> the SIM unless we change to that slot. We must not do slot changes
> arbitrarily like that, and so that logic is removed, even if we lose
> some of the information that we were providing in the interface.
> 
>   * Location interface:
>     ** The multi-sentence NMEA trace support is updated to include
> additional possible trace types in addition to GSV (e.g. ALM, GSV,
> RTE, SFI) and also when coming from other constellations, not just
> GPS.
> 
>   * SIM:
>     ** New 'PreferredNetworks' property and 'SetPreferredNetworks'
> method, implemented using '+CPOL' for generic AT modems and 'NAS
> Get/Set Preferred Networks' for QMI modems. Several different modules
> and plugins (e.g. Sierra Wireless EM7345, Telit LN930, SIM7070, all
> Option and Iridium devices...) have this feature explicitly disabled
> due to '+CPOL' not behaving properly (even crashing the module
> sometimes).
> 
>   * QMI:
>     ** The logic that decides which data mode (802.3 or raw-ip) is
> used in modules managed by the qmi_wwan driver changes in this
> release. Until now, if a module reported itself as configured in
> 802.3 mode on boot, that mode would be the one used in normal
> operation. Due to the new multiplexing feature, this is no longer
> true, and if possible the daemon will always try to switch the module
> to raw-ip, and fallback to 802.3 only if raw-ip is unsupported.
>     ** Enabled both AT and QMI indications for the messaging and
> voice interfaces so that new SMS and call events are reported via
> both channels. This solves issues seen in the Pinephone when waking
> up from suspend.
>     ** Enabled network reject indications.
>     ** If operator name not updated through standard indications, it
> will be explicitly queried with 'NAS Get Plmn Name'.
>     ** Added support for transfer-route MT messages.
>     ** Increased the QMI open timeout to 45s, as required by the
> newest modules.
>     ** Implemented additional logic to read the status of the
> different facility locks in the module.
>     ** Updated ICCID reading logic to parse it as hex instead of BCD.
>     ** Improved handling of the MNC PCS digit in the operations
> involving MCCMNC.
>     ** Automatically run the 'DPM Open Port' logic on IPA based
> setups to bind the hardware tx/rx endpoints with the logical ones in
> the QMI protocol.
>     ** Implemented support for the Voice interface and its
> operations, not only standard voice call management, but also support
> for the supplementary services. Voice call management will be done
> completely using QMI, even if the new call indications are notified
> via AT URCs.
> 
>   * MBIM:
>     ** Implemented support for Dual SIM in non-QMI MBIM devices,
> using the Microsoft Basic Connect Extensions service.
>     ** Increased the timeout for the MBIM_CID_HOME_PROVIDER query to
> 30s.
>     ** Updated to load model string using QMI over MBIM if available.
>     ** Increased the MBIM open timeout to 45s, as required by the
> newest modules.
> 
>   * SMS:
>     ** Defined a common timeout of 180s for all send operations.
> 
>   * libmm-glib:
>     ** Updated with new methods and types to handle all the DBus API
> updates.
>     ** Extended with additional methods in the Location3gpp object to
> get/set the full operator MCCMNC string, instead of integers without
> MNC PCS digit info.
>     ** Extended the 'ModemLocation' interface with methods to get the
> signaled location updates; i.e. without requiring an explicit
> GetLocation(), and obviously only supported when location signaling
> is explicitly enabled.
>     ** Updated the way the internal monitored properties are handled
> in the different types, now using some handy helper macros to share
> the same logic among all.
> 
>   * Plugins:
>     ** zte: disabled CIND/CMER support.
>     ** qcom-soc: added support for QRTR+IPA based setups.
>     ** qcom-soc: added support for the WWAN subsystem instead of
> RPMSG.
>     ** quectel: enabled QGPSXTRA by default when starting the GNSS
> engine.
>     ** quectel: add support for EM120/160 PCIe modules.
>     ** quectel: added Firehose update method.
>     ** ublox: added additional URAT combinations.
>     ** ublox: flagged UBANDSEL as unsupported in the SARA-R4 and -N4
> modules.
>     ** cinterion: added new custom MBIM based modem with shared reset
> operation.
>     ** cinterion: ignored the MBIM Intel Firmware Update service
> completely.
>     ** foxconn: added custom carrier config setup for the T77W968
> module.
> 
> The following features which were backported to 1.16.x releases are
> also present in ModemManager 1.18.0:
> 
>   * core: added support for the new 'WWAN' subsystem in Linux kernel
> 5.13, enabling PCIe-only modules.
>   * core: The charset conversion methods rework, including the
> avoiding of the iconv() //TRANSLIT extension support, which isn't
> available in all libc implementations.
>   * qmi: the logic managing allowed/preferred modes was fixed for
> multimode devices like the MC7304, making sure the acquisition order
> preference always had the same items.
>   * serial: when modem is connected with AT+PPP, ignore forced
> disconnections, so that we don't take ownership of the PPP port
> before pppd has released it.
>   * foxconn: added support for the T99W175 (SDX55) module, including
> built-in FCC unlock procedure.
>   * foxconn: added new MBIM QDU firmware update method.
> 
> ----------------------------------------
> 
> About ModemManager:
>      https://www.freedesktop.org/wiki/Software/ModemManager
> 
> Download here:
>      
> https://www.freedesktop.org/software/ModemManager/ModemManager-1.18.0.tar.xz
>      
> https://www.freedesktop.org/software/ModemManager/ModemManager-1.18.0.tar.xz.asc
> 
> Verify it:
>      $ sha256sum ModemManager-1.18.0.tar.xz
>      48ede5b4f9fb2678a86f5aca74ae3bb32dcb35c61543afb30f20c184f8a69e5d
>   ModemManager-1.18.0.tar.xz
>      $ gpg --verify ModemManager-1.18.0.tar.xz.asc ModemManager-
> 1.18.0.tar.xz
> 
> APIs and manpages here:
>      
> https://www.freedesktop.org/software/ModemManager/doc/1.18.0/ModemManager
>      
> https://www.freedesktop.org/software/ModemManager/doc/1.18.0/libmm-glib
>      
> https://www.freedesktop.org/software/ModemManager/man/1.18.0/ModemManager.8.html
>      
> https://www.freedesktop.org/software/ModemManager/man/1.18.0/mmcli.1.html
> 
> Please report bugs either to:
>      modemmanager-devel at lists.freedesktop.org
> 
> Or to gitlab:
>      
> https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues
> 



More information about the ModemManager-devel mailing list