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@lists.freedesktop.org > > Or to gitlab: > > https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues >