1433 lines
68 KiB
Plaintext
1433 lines
68 KiB
Plaintext
|
|
ModemManager 1.22.0
|
|
-------------------------------------------
|
|
This is a new stable release of ModemManager.
|
|
|
|
The following notes are directed to package maintainers:
|
|
|
|
* This version now requires:
|
|
** libmbim >= 1.30.0 (for the optional MBIM support)
|
|
** libqmi >= 1.34.0 (for the optional QMI support)
|
|
|
|
* The GNU autotools (autoconf/automake/libtool) support has been fully
|
|
removed, this release requires the use of the meson build system.
|
|
|
|
* Build:
|
|
** Flag types are now generated in their own files (e.g. 'mm-flags-types.h').
|
|
** A new 'fuzzer' option is available to build LLVM LibFuzzer based unit
|
|
testers.
|
|
** A new 'builtin_plugins' option is available to integrate all built plugins
|
|
within the ModemManager daemon binary. This makes the daemon load much
|
|
quicker as it doesn't dynamically load the plugins on runtime.
|
|
|
|
The most important features and changes in this release are the following:
|
|
|
|
* A new "MSG" (message) log verbosity level is introduced, which is also the
|
|
new default one if none explicitly defined. This level takes the place of the
|
|
old "INFO" level, as a level including the most important messages that should
|
|
be logged without needing to be warnings or errors. The new "INFO" level is
|
|
more verbose than "MSG" but less verbose than "DBG", and may be useful as
|
|
default in systems where active debugging of WWAN related issues is required.
|
|
E.g. all user operations triggered via DBus method calls are logged in "INFO"
|
|
level.
|
|
|
|
* Introduced the concept of "personal information" which should by default not
|
|
be included in log messages. Enabling personal information in logs requires
|
|
to run the daemon with the '--log-personal-info' option. This feature is
|
|
mostly implemented for QMI and MBIM specific logs, but hasn't yet been
|
|
included in generic daemon logs or when using the AT protocol. Changes and
|
|
fixes related to this feature will be cherry-picked and included in the
|
|
future stable branch updates.
|
|
|
|
* API:
|
|
** Added new 'Modem.Physdev' property to unconditionally publish the physical
|
|
modem device path.
|
|
** Updated the 'Modem.GetCellInfo()' method to include serving cell type and
|
|
bandwidth information in LTE and 5GNR cells.
|
|
** New 'Modem3gpp.SetCarrierLock()' method to send the list of carrier
|
|
network information to the modem.
|
|
** The 'SetLogging()' method allows a new "MSG" log level.
|
|
|
|
* Core:
|
|
** The codebase has been updated to use GTask in all operations and there are
|
|
no longer any deprecated methods from GLib being used.
|
|
** The port probing logic is now able to guess port type hints during
|
|
runtime, e.g. based on the kernel driver in use or the wwan subsystem port
|
|
'type' attributes.
|
|
** Default probing and wait times have been increased, in order to cope with
|
|
slow kernel events reporting new port additions.
|
|
|
|
* Modem interface:
|
|
** Updated the logic loading unlock retries to allow restarting the check
|
|
count based on the state reported by the device (e.g. if the SIM is
|
|
detected but not fully ready during the last expected check, a new set
|
|
of check retries is allowed).
|
|
|
|
* 3GPP interface:
|
|
** Added support for packet service state updates via unsolicited
|
|
indications.
|
|
** Added support for ignoring registration and packet service state updates
|
|
if the interface has already been disabled.
|
|
** Updated initialization sequence to allow showing IMEI even if the device
|
|
is locked.
|
|
** Logged available profiles in "INFO" level whenever they are listed.
|
|
|
|
* Simple interface:
|
|
** Logged user provided settings during a connect attempt in "INFO" level.
|
|
** Added support to abort an ongoing connect operation at any step in the
|
|
state machine, e.g. if the modem is going to be disabled.
|
|
** Added support to explicitly request attaching to packet service during
|
|
the connection attempt.
|
|
|
|
* Signal interface:
|
|
** Added logic to rate-limit printing the extended signal information with
|
|
"INFO" level, even if the actual refresh rate is higher.
|
|
|
|
* New udev tags:
|
|
** The 'ID_MM_REQUIRED' port-specific udev tag allows users to specify that
|
|
the modem must be able to succesfully probe and use the given control
|
|
port.
|
|
** The 'ID_MM_MAX_MULTIPLEXED_LINKS' udev tag allows user to specify the
|
|
maximum amount of multiplexed links the modem supports. This tag may be
|
|
set to 0 to fully disable multiplexing support in the device.
|
|
|
|
* mmcli:
|
|
** New '--messaging-create-sms-with-text' action to create a text SMS from
|
|
the contents of a given file.
|
|
** New '--3gpp-set-carrier-lock' action to send the carrier lock data to the
|
|
device.
|
|
** Updated '--modem' to always allow using the modem physdev path for lookup.
|
|
|
|
* SMS:
|
|
** Improved the parsing of 3GPP and CDMA SMS parts, fixing multiple different
|
|
errors that lead to unexpected crashes on SMS reception.
|
|
|
|
* MBIM:
|
|
** Updated device model loading logic to use an AT port if available.
|
|
** Added support for the carrier lock feature using the Google MBIM service.
|
|
** Implemented support for reporting serving cell type and bandwidth in the
|
|
cell scan operation.
|
|
** Limited the amount of different APN types usable when MS extensions are
|
|
unsupported.
|
|
** Updated packet service state info loading to use the values reported by
|
|
the device instead of attempting to guess them.
|
|
** Updated IPv6 IP addressing logic to rely on whether the provided address
|
|
is global or not to decide whether static or dynamic addressing is needed.
|
|
|
|
* QMI:
|
|
** Implemented support for detecting and processing profile change
|
|
indications, e.g. during a SIM card IMSI refresh operation.
|
|
** Implemented support for scanning LTE and 5GNR cells.
|
|
** Fixed operating mode update logic to avoid needing to receive indications,
|
|
as old devices don't support them.
|
|
** Implemented multiplexing support for Qualcomm PCI devices using the MHI
|
|
driver.
|
|
** Updated logic to read IPA tx/rx offload values from sysfs, making the IPA
|
|
support work seamlessly in multiple different Qualcomm SoCs.
|
|
** Updated logic reading the SIM card operator identifier to avoid using the
|
|
NAS service, as that sometimes involved actual network access. The new
|
|
logic exclusively uses SIM card read operations (e.g. IMSI and EFad).
|
|
** Consolidated the logic processing registration state from responses and
|
|
indications.
|
|
|
|
* Plugins:
|
|
** cinterion: implemented multiple-SIM support.
|
|
** fibocom: disabled multiplexing in the NL668, which doesn't support it.
|
|
** huawei: updated time interface to use ^NWTIME.
|
|
** quectel: added port type hints for the EG12, EC21, EM060, EM061 and new
|
|
EM120, EM160 and RM520 variants.
|
|
|
|
The following features which were backported to 1.20.x releases are also present
|
|
in ModemManager 1.22.0:
|
|
|
|
** build: new 'examples' option to allow disabling the installation of
|
|
examples.
|
|
** mmcli: improved JSON output in network scan results.
|
|
** mmcli: improved JSON output when creating SMS messages.
|
|
** MBIM: ignored SIM related indications during a SIM slot switch operation.
|
|
** MBIM: updated capabilities loading to use Microsoft Extensions if
|
|
available.
|
|
** MBIM: updated supported modes loading to use the CustomDataClass field
|
|
contents.
|
|
** QMI: fixed processing and exposing PCOs.
|
|
** cinterion: improved management of the ^SWWAN? operation.
|
|
** telit: improved support for 5G modems.
|
|
** messaging: allowed Delete operation during enabling/disabling.
|
|
|
|
|
|
ModemManager 1.20.0
|
|
-------------------------------------------
|
|
This is a new stable release of ModemManager.
|
|
|
|
The following notes are directed to package maintainers:
|
|
|
|
* This version now requires:
|
|
** libmbim >= 1.28.0 (for the optional MBIM support)
|
|
** libqmi >= 1.32.0 (for the optional QMI support)
|
|
|
|
* There is no longer an upstream-provided source tarball, please use the signed
|
|
git tag '1.20.0' instead to refer to the sources of this release.
|
|
|
|
* This release supports meson as the primary build system. The GNU autotools
|
|
support is considered deprecated and will no longer be used in future major
|
|
releases. The 1.20.x releases will be the last ones including GNU autotools
|
|
support.
|
|
|
|
The most important features and changes in this release are the following:
|
|
|
|
* API:
|
|
** New 'Modem.Sar' interface to allow the host to manage the SAR power level.
|
|
** New 'Modem.GetCellInfo()' method, that allows querying information about
|
|
the current serving and neighboring cells. Currently including
|
|
'cell-type' and 'serving' fields for all cell types, plus additional
|
|
type-specific fields:
|
|
*** CDMA: 'nid', 'sid', 'base-station-id', 'ref-pn' and 'pilot-strength'.
|
|
*** GSM: 'operator-id', 'lac', 'ci', 'timing-advance', 'arfcn',
|
|
'base-station-id' and 'rx-level'.
|
|
*** UMTS: 'operator-id', 'lac', 'ci', 'frequency-fdd-ul',
|
|
'frequency-fdd-dl', 'frequency-tdd', 'uarfcn', 'psc', 'rscp', 'ecio'
|
|
and 'path-loss'.
|
|
*** TDSCDMA: 'operator-id', 'lac', 'ci', 'uarfcn', 'cell-parameter-id',
|
|
'timing-advance', 'rscp' and 'path-loss'.
|
|
*** LTE: 'operator-id', 'tac', 'ci', 'physical-ci', 'earfcn', 'rsrp',
|
|
'rsrq' and 'timing-advance'.
|
|
*** 5GNR: 'operator-id', 'tac', 'ci', 'physical-ci', 'nrarfcn', 'rsrp',
|
|
'rsrq', 'sinr' and 'timing-advance'.
|
|
** New 'access-type-preference', 'roaming-allowance', 'profile-name',
|
|
'profile-enabled' and 'profile-source' fields in the 'Bearer.Properties'
|
|
property, that can also be used in both 'Modem.Simple.Connect()' and
|
|
'Modem.CreateBearer()'.
|
|
** New 'Modem.Modem3gpp.SetPacketServiceState()' method and
|
|
'Modem.Modem3gpp.PacketServiceState' property, which allow management the
|
|
explicit attach or detach to packet service on the current registered
|
|
network.
|
|
** New 'Modem.Modem3gpp.SetNr5gRegistrationSettings()' method and
|
|
'Modem.Modem3gpp.Nr5gRegistrationSettings' property, to allow management
|
|
of 5G specific settings like 'mico-mode' or 'drx-cycle'.
|
|
** New 'start-date', 'uplink-speed' and 'downlnk-speed' fields in the
|
|
'Bearer.Stats' property.
|
|
** New 'Bearer.ReloadStatsSupported' property to indicate whether reloading
|
|
ongoing stats is supported or not.
|
|
** New 'Modem.Modem3gppProfileManager.IndexField' property, to indicate which
|
|
field is to be used as unique index in the profile management operations.
|
|
** New 'Sim.SimType', 'Sim.EsimStatus' and 'Sim.Removability' properties to
|
|
improve the management of eSIM related operations.
|
|
** New 'Sim.Gid1' and 'Sim.Gid2' properties, which allow identifying SIM cards
|
|
that should have different settings applied.
|
|
** New 'Modem.Signal.SetupThresholds() method, 'Modem.Signal.RssiThreshold'
|
|
and 'Modem.Signal.ErrorRateThreshold' to allow configuring thresholds so
|
|
that the modem emits indications whenever the signal quality values change
|
|
based on those thresholds. For RSSI a delta amount of dBm can be given,
|
|
and for error rate just a boolean to enable or disable the corresponding
|
|
event.
|
|
** New 'error-rate' fields in the 'Modem.Signal.Cdma', 'Modem.Signal.Evdo',
|
|
'Modem.Signal.Gsm', 'Modem.Signal.Umts', 'Modem.Signal.Lte' and
|
|
'Modem.Signal.Nr5g' properties.
|
|
|
|
* Core:
|
|
** Detecting an eSIM without an active profile in the current SIM slot will
|
|
lead to the modem being in Failed state, in the same way as if the slot
|
|
was for a physical SIM and no SIM was inserted.
|
|
** Default amount of AT probing attempts is updated to 6, to cope with modems
|
|
that are slower to boot.
|
|
** New '--test-mbimex-profile-management' option in the daemon, to enable
|
|
support for profile management operations using the Microsoft extensions.
|
|
This is an optional feature because it requires using the 'apn-type' field
|
|
as unique index, which not all users of the profile management API may
|
|
expect.
|
|
** Implemented some initial support to automatically hide personal details
|
|
(e.g. phone numbers, SMS contents...) from logs, right now only applicable
|
|
to QMI and MBIM logs. Updated support for this feature will keep on being
|
|
integrated in future 1.20.x updates. The new '--log-personal-info' option
|
|
in the daemon allows to disable this feature completely.
|
|
** Added new filter match option for subsystem vendor id, required in several
|
|
PCI based Qualcomm modules.
|
|
** QCDM port probing will no longer automatically run for all plugins, only
|
|
in those that explicitly require it.
|
|
** Implemented support for suspend/resume detection based on ChromeOS' powerd
|
|
daemon.
|
|
** Added Cat-M and NB-IoT LPWA access technologies.
|
|
|
|
* Modem interface:
|
|
** On 3GPP+3GPP2 multimode devices, a missing SIM card will now force the
|
|
modem into Failed state, as if it was a 3GPP-only device.
|
|
|
|
* Simple interface:
|
|
** Explicitly wait for PS domain to be attached during a connection attempt.
|
|
|
|
* 3GPP interface:
|
|
** Updated to report domain registration changes altogether whenever possible
|
|
(e.g. when using the QMI or MBIM protocols).
|
|
|
|
* MBIM:
|
|
** Implemented support to use the Microsoft-defined MBIM extensions v2 and v3
|
|
whenever supported by the device. The ModemManager daemon will negotiate
|
|
which version to use with the modem, so that the highest version supported
|
|
is enabled. This negotiation applies to the whole device, so any other
|
|
user of the MBIM device will automatically start using the newly agreed
|
|
version.
|
|
** Implemented current modes switching using MBIMEx v2.0 extensions.
|
|
** Trigger explicit disconnection if a connection attempt fails.
|
|
** Modem will be flagged as unusable if 10 consecutive MBIM requests timeout.
|
|
** Enabled multiplex support for devices in the WWAN subsystem.
|
|
|
|
* QMI:
|
|
** Updated logic to by default prefer 'Signal Info' over the deprecated
|
|
'Signal Strength' operations.
|
|
** Updated logic to by default prefer 'System Info' over the deprecated
|
|
'Serving System' operations.
|
|
** Updated power state transition logic to ensure the new state is reached
|
|
before returning success to the user.
|
|
** Implemented support for the 'Modem3gppProfileManager.Updated' signal using
|
|
PDC refresh notifications.
|
|
** Modem will be flagged as unusable if 10 consecutive QMI requests timeout.
|
|
** Implemented DTMF support.
|
|
** Implemented support for automatic SIM IMSI switch detection under certain
|
|
roaming scenarios.
|
|
** Updated the logic to move the PS domain state to 'registered' based on the
|
|
DSD System Status indications.
|
|
** Updated endpoint type detection logic to be based on the net driver.
|
|
** Updated endpoint number selection to be based on the data port.
|
|
** Updated connection logic to allocate separate WDS clients per endpoint.
|
|
** Added support for PCO reporting.
|
|
|
|
* plugins:
|
|
** quectel: Added FCC unlock support for the EM05-G.
|
|
** telit: Band management updated to prefer using QMI whenever available, as
|
|
well as to detect the #BND command format automatically.
|
|
** telit: Added support for LPWA modems.
|
|
** fibocom: Implemented optional support to power down and up the modem
|
|
during the update of the initial EPS bearer settings.
|
|
** fibocom: Implemented initial EPS bearer settings management in the MA510.
|
|
** intel: New generic plugin for Intel PCI devices with vid 0x8086.
|
|
** xmm: Prefer GNSS control ports explicitly tagged via udev tags.
|
|
** foxconn: Use the new FOX QMI service to load firmware version.
|
|
** cinterion: Added support for PCIe based devices.
|
|
|
|
The following features which were backported to 1.18.x releases are also present
|
|
in ModemManager 1.20.0:
|
|
|
|
* core: added support for external FCC unlock scripts that the user must
|
|
manually enable; automatic FCC unlocking will no longer happen.
|
|
* core: added support for connection/disconnection notification dispatcher
|
|
scripts, used primarily in the openwrt integration in order to report network
|
|
initiated disconnects.
|
|
* udev: fixed shell globing patterns in rules.
|
|
* sms: default send timeout updated to 5min.
|
|
* sms: merge WDP multipart CDMA WAP messages.
|
|
* qmi: fixed capabilities management in multimode 4G/5G devices.
|
|
* mbim: fixed network initiated disconnections by not comparing context type.
|
|
* qcom-soc: plugin enabled by default in build.
|
|
* foxconn: added support for T99W265 modems.
|
|
* fibocom: added support for FM101 modems.
|
|
* cinterion: added support for PLSx3w modems.
|
|
* telit: added support for new LE910S1, LE910Cx and LN920 compositions.
|
|
|
|
|
|
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.
|
|
|
|
|
|
ModemManager 1.16.0
|
|
-------------------------------------------
|
|
This is a new stable release of ModemManager.
|
|
|
|
The following notes are directed to package maintainers:
|
|
|
|
* This version now requires:
|
|
** libqmi >= 1.28.0 (for the optional QMI support)
|
|
|
|
* The 1.16.x branch will be the last one supporting the 'LEGACY' and 'PARANOID'
|
|
filter modes; standard distributions are advised to use the default 'STRICT'
|
|
mode if they aren't using it already (i.e. running the daemon without any
|
|
explicit '--filter-policy' option).
|
|
|
|
* A new 'qcom-soc' plugin is implemented to be able to use ModemManager in
|
|
Qualcomm SoCs like the MSM8916 or MSM8974. This plugin uses a combination of
|
|
RPMSG based control ports plus BAM-DMUX based network ports. This plugin is
|
|
disabled by default, even when `--enable-all-plugins` is used, and if wanted
|
|
it must be explicitly enabled with `--enable-plugin-qcom-soc`. Systems
|
|
targeting this kind of SoCs, like postmarketos, should enable it. Standard
|
|
distributions may or may not include it, up to the targeted hardware in each
|
|
distribution.
|
|
|
|
* Gentoo's 'libelogind' library may now be used to detect the systemd
|
|
suspend/resume support.
|
|
|
|
The API is backwards compatible with the previous releases, the only updates
|
|
are the following:
|
|
|
|
* Modem interface:
|
|
** Updated the 'Ports' property so that it exposes all ports that are
|
|
owned by the modem even if they are explicitly ignored and not used.
|
|
** New 'SimSlots' property that exposes the available SIM slots in the modem,
|
|
including the SIM object paths in each of them if the cards are present.
|
|
** New 'PrimarySimSlot' property indicating which of the slots in the
|
|
'SimSlots' array is the one currently active.
|
|
** New 'SetPrimarySimSlot' method to select which SIM slot in the 'SimSlots'
|
|
array should be considered active. When the switch happens, the modem will
|
|
be fully re-probed.
|
|
|
|
* Signal interface:
|
|
** New 'Nr5g' dictionary property including signal information for the 5GNR
|
|
access technology.
|
|
|
|
* SIM interface:
|
|
** New 'Active' boolean property, indicating whether the SIM object is the
|
|
currently active one.
|
|
** New 'Eid' string property, indicating the EID of the card, if any.
|
|
|
|
* New udev tags:
|
|
** New 'ID_MM_PORT_TYPE_QMI' tag to explicitly flag a port as being QMI, when
|
|
there is no other way to guess the type of port; e.g. this tag is not
|
|
needed for ports exposed by the qmi_wwan driver.
|
|
** New 'ID_MM_PORT_TYPE_MBIM' tag to explicitly flag a port as being MBIM,
|
|
when there is no other way to guess the type of port; e.g. this tag is not
|
|
needed for ports exposed by the cdc_mbim driver.
|
|
|
|
The most important features and changes in this release are the following:
|
|
|
|
* Implemented support for Multi SIM Single Standby support, for systems that
|
|
have multiple SIM slots and they can select which of them (only one) is
|
|
active at any given time. Currently implemented for QMI modems only.
|
|
|
|
* If the modem enabling phase fails in a fatal way, an implicit disabling
|
|
sequence is now run, in order to avoid leaving the modem in an inconsistent
|
|
state.
|
|
|
|
* If the connection attempt includes user/password information but no explicit
|
|
authentication type, CHAP will now be used by default instead of PAP.
|
|
|
|
* Full USB device removal events reported via udev are no longer used. The
|
|
device removal logic relies exclusively on independent port removal events,
|
|
as that logic is supported for all subsystems and kernel device backends
|
|
(e.g. also working for non-USB devices and for systems without udev like
|
|
OpenWRT).
|
|
|
|
* Added support to monitor the 'rpmsg' subsystem, but only in plugins that
|
|
explicitly require its use (e.g. the 'qcom-soc' plugin).
|
|
|
|
* New options in the ModemManager daemon:
|
|
** Added new '--test-no-suspend-resume' option to disable the runtime
|
|
suspend/resume support even if the daemon was built with it.
|
|
** Added new '--test-no-udev' option to disable the runtime udev support even
|
|
if the daemon was built with it.
|
|
|
|
* Serial:
|
|
** Also match OK or ERROR responses that are not at end of line.
|
|
|
|
* SIM:
|
|
** Force reprobing the modem if a new SIM is detected in a modem that
|
|
initially started in Failed state without SIM.
|
|
** Force reprobing the modem if the lock status cannot be read after sending
|
|
SIM-PUK, so that it transitions to the Failed state.
|
|
** Force reprobing the modem if a PUK lock is discovered after sending
|
|
SIM-PIN, so that it transitions to the Failed state.
|
|
|
|
* QMI:
|
|
** The logic no longer depends on the service version reported by each
|
|
client, the support for each feature is explicitly probed instead.
|
|
** Implemented SIM profile (eUICC) change detection.
|
|
** Support for QMI modems on kernels < 3.6 is dropped. Only kernels where the
|
|
QMI control ports are exposed in the 'usbmisc' subsystem are supported.
|
|
** Implemented additional step in the connection logic to allow binding the
|
|
WDS client to a given SIO port, required in the BAM-DMUX driver setup.
|
|
** Implemented support for the initial EPS bearer settings logic.
|
|
** Disabled explicit signal and access technology polling if indications have
|
|
been correctly enabled.
|
|
|
|
* MBIM:
|
|
** Enable SIM hot swap detection logic with QMI over MBIM.
|
|
** Allow plugins to specify explicitly that QMI over MBIM is not supported.
|
|
|
|
* libmm-glib:
|
|
** Added missing APIs to get/set RM protocol in the Simple connect settings.
|
|
|
|
* Plugins:
|
|
** gosuncn: new plugin, for now just with port type hints for the GM800.
|
|
** quectel: implemented GPS support with +QGPS.
|
|
** quectel: implemented custom time support check to prefer +CTZU=3 instead
|
|
of +CTZU=1 so that the modem reports localtime instead of UTC in +CCLK.
|
|
** sierra: added support for XMM-specific features (e.g. EM7345).
|
|
** cinterion: implemented support for the initial EPS bearer settings logic.
|
|
** cinterion: added SIM hot swap support to AT-based modems.
|
|
** huawei: updated to avoid applying multiple port type hint methods.
|
|
** huawei: updated the ^GETPORTMODE logic so that we don't assume the hints
|
|
in the response apply to specific USB interfaces.
|
|
|
|
The following features which were backported to 1.14.x releases are also present
|
|
in ModemManager 1.16.0:
|
|
|
|
* location: allow CID only updates.
|
|
* sms: allow sending/receiving UTF-16 as if it were UCS-2.
|
|
* modem: don't consider charset setup failure as fatal.
|
|
* QMI: fix reporting signal strength indications.
|
|
* QMI: fix parsing of USSD indications with UTF-16 data.
|
|
* QMI: run network registration with NAS Set System Selection Preference.
|
|
* QMI: when connection aborted, ensure network handles are released.
|
|
* MBIM: don't fail IPv4v6 connection attempt if only IPv4 succeeds.
|
|
* cinterion: improve user/password handling in AT^SGAUTH calls.
|
|
* cinterion: removed limitation to IPv4 only PDP contexts.
|
|
* cinterion: configure the PLAS9 to send URCs correctly.
|
|
* quectel: add support for MBIM devices.
|
|
* telit: add initial delay for AT ports to become responsive.
|
|
* udev: updated all AT/QCDM/GPS port type hints in all plugins to bind them to
|
|
TTY ports only.
|
|
|
|
|
|
ModemManager 1.14.0
|
|
-------------------------------------------
|
|
This is a new stable release of ModemManager.
|
|
|
|
The following notes are directed to package maintainers:
|
|
|
|
* This version requires:
|
|
** GLib/GObject/GIO >= 2.48.0
|
|
** libmbim >= 1.24.0 (for the optional MBIM support)
|
|
** libqmi >= 1.26.0 (for the optional QMI support)
|
|
|
|
* Build updated with several improvements:
|
|
** The build has been updated to use by default all warnings enabled by
|
|
AX_COMPILER_FLAGS(), and therefore when building the release from a git
|
|
checkout, autoconf-archive >= 2017.03.21 is now required. This new build
|
|
dependency isn't required when building from the release tarball.
|
|
** Also when building from a git checkout, beware because by default
|
|
--enable-compile-warnings=error is enabled, which implies -Werror. If
|
|
you'd like to build from git and avoid -Werror, you should explicitly use
|
|
--enable-compile-warnings=yes (to keep the warnings but without being
|
|
errors), --enable-compile-warnings=no (to disable all the extra warnings
|
|
enabled by default) or --disable-Werror (to unconditionally make all
|
|
compiler warnings non-fatal).
|
|
** Users can now preselect which plugins to build and install during
|
|
configure, with the --enable-plugin-[PLUGIN-NAME] options. The user can
|
|
also build and install all except for some, just by using the
|
|
--enable-all-plugins option followed by --disable-plugin-[PLUGIN-NAME].
|
|
By default all plugins are enabled, so all of them built and installed.
|
|
This new set of options are useful for users building custom systems
|
|
where they already know what kind of devices they're going to have, it
|
|
isn't recommended for standard distributions.
|
|
|
|
The only updates in the public API are the following:
|
|
|
|
* Modem interface:
|
|
** Added support for AT-based and/or QMI-based 5G devices, which will report
|
|
the new MM_MODEM_CAPABILITY_5GNR capability.
|
|
** Deprecated the MM_MODEM_CAPABILITY_LTE_ADVANCED capability, as it was
|
|
never used in any implementation.
|
|
|
|
* Bearer interface:
|
|
** Added additional 'attempts', 'failed-attempts', 'total-rx-bytes',
|
|
'total-tx-bytes' and 'total-duration' values in the 'Stats' property
|
|
exposed by the Bearer objects.
|
|
|
|
The most important features and changes in this release are the following:
|
|
|
|
* The daemon switched to 'STRICT' filter mode by default. The old 'DEFAULT'
|
|
mode is renamed to 'LEGACY' and is considered now deprecated. Under the
|
|
'STRICT' filter mode, the TTY blacklist and greylist are ignored, and the
|
|
port probing mechanism uses its own heuristics to guess whether a given TTY
|
|
is owned by a modem or not.
|
|
|
|
* Added a new implicit whitelist rules applicable in 'STRICT' filter mode, so
|
|
that all devices with a USB vid matching one of the vids allowed by the
|
|
different installed plugins are implicitly allowed.
|
|
|
|
* Updated daemon logging so that we always prefix the messages with a string
|
|
identifying which modem the log refers to, making it easy to grep logs for
|
|
one specific device if the system has more than one.
|
|
|
|
* Updated the probing logic to make sure we don't attempt a re-probe when the
|
|
device is gone.
|
|
|
|
* Probing logic now allows new ports detected up to 1500ms since last port
|
|
added, useful on OpenWrt setups where ports are notified one by one via
|
|
hotplug events.
|
|
|
|
* AT:
|
|
** Moved the charset definition logic to the initialization phase instead of
|
|
the enabling phase, because the feature support checks may already require
|
|
string processing based on the current charset.
|
|
** Updated manual registration operation to attempt using current charset
|
|
(e.g. UCS2) if ASCII fails.
|
|
|
|
* QMI:
|
|
** Devices using the LOC service for GNSS will now also setup the list of
|
|
required NMEA traces before starting the engine.
|
|
** Implemented 3GPP USSD support using the Voice service.
|
|
** Update carrier code if registration changes from one roaming operator to
|
|
another.
|
|
** Explicitly disable autoconnect during modem enabling phase, because it
|
|
interferes with our connection management logic.
|
|
** Fallback to raw-ip if WDA Get Data Format requests arguments, as in most
|
|
new 5G devices.
|
|
** Updated to always use the asynchronous close() operation.
|
|
** Handle disconnection indications during connection attempts.
|
|
|
|
* MBIM:
|
|
** Update carrier code if registration changes from one roaming operator to
|
|
another.
|
|
** Implement reset in Intel-based and Qualcomm-based devices.
|
|
** Avoid LTE attach config/status if unsupported.
|
|
** Updated to make sure all allocated QMI CIDs are released during shutdown.
|
|
|
|
* SIM interface:
|
|
** Don't allow sending PIN/PUK if not required.
|
|
|
|
* 3GPP interface:
|
|
** Fixed manual re-registration to the same operator.
|
|
|
|
* CDMA interface:
|
|
** Don't allow multiple concurrent activation attempts.
|
|
** Disallow empty carrier code in automatic activation.
|
|
|
|
* Bearer interface:
|
|
** Updated to avoid connection checks or stats updates while disconnecting.
|
|
|
|
* libmm-glib:
|
|
** New 'mm_location_gps_nmea_get_traces()' method to retrieve a NULL
|
|
terminated array of strings with all cached NMEA traces.
|
|
** Deprecated the 'mm_location_gps_nmea_build_full()' method.
|
|
|
|
* mmcli:
|
|
** Added a new 'any' lookup keyword for the --modem and --sim options, useful
|
|
when the system is only expected to have one single device.
|
|
|
|
* Plugins:
|
|
** broadmobi: new plugin, right now just with port type hints for the BM818.
|
|
** foxconn: new plugin to support the T77W968 (both with and without eSIM).
|
|
** dell,dw5821e: added support for the DW5821e with eSIM variant.
|
|
** huawei: don't delay reporting network initiated disconnects.
|
|
** huawei: try to read port type hints from interface descriptions.
|
|
** huawei: avoid using the QCDM port during a voice call.
|
|
** cinterion: skip sim ready check for modules that don't support it.
|
|
** cinterion: implemented radio/band handling for LTE modems.
|
|
** cinterion: added Signal interface support bsaed on AT^SMONI.
|
|
** cinterion: added support for MBIM based devices like the PLS62-W.
|
|
** quectel: updated to detect SIM hot swap via +QUSIM URCs.
|
|
** fibocom: added support for QMI based devices like the FM150.
|
|
** ublox: ignore error when disconnecting last LTE bearer.
|
|
** ublox: implement support to enable and detect +UUDTMF URCs.
|
|
** ublox: added blacklist rules for GPS modules in the plugin itself.
|
|
** sierra: implement manual and automatic CDMA activation.
|
|
** novatel: implement manual and automatic CDMA activation.
|
|
|
|
All the features and fixes which were backported to 1.12.x releases are also
|
|
present in ModemManager 1.14.0.
|
|
|
|
|
|
ModemManager 1.12.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.24.0 (for the optional QMI support)
|
|
|
|
* The build allows to configure with '--with-at-command-via-dbus' in order to
|
|
unconditionally enable the Modem.Command() method to allow running AT
|
|
commands through ModemManager. This is not suggested for standard
|
|
distributions, though.
|
|
|
|
The most important features and changes in this release are the following:
|
|
|
|
* Modem interface:
|
|
** Updated logic to avoid assuming that setting bands or modes is immediate,
|
|
the daemon will now actively monitor for those updates to happen before
|
|
returning success.
|
|
|
|
* 3GPP interface:
|
|
** libmm-glib: deprecated the mm_pco_list_free() helper method.
|
|
|
|
* Simple interface:
|
|
** api,libmm-glib: deprecated the 'subscription state' property.
|
|
|
|
* Location interface:
|
|
** Fixed 'unknown' lat/long/alt numeric values.
|
|
** Added support for MSB A-GPS in addition to MSA A-GPS.
|
|
|
|
* Voice interface:
|
|
** Improved voice call management with call id detection and tracking.
|
|
** Improved detailed call state transitions on generic modems that support
|
|
call list polling.
|
|
** Added support for GSM supplementary services, including call waiting,
|
|
call transfer, call deflection, multiparty calls...
|
|
** Added emergency call support, allowing voice call to emergency numbers
|
|
even without SIM or with SIM-PIN locked.
|
|
** Deprecated all properties except for 'number' in the CreateCall()
|
|
method.
|
|
|
|
* Messaging interface:
|
|
** Updated to report SMS timestamps in correct ISO8601 format.
|
|
|
|
* Bearer:
|
|
** Improved unused CID lookup to allow selecting non-sequential CIDs.
|
|
** Disabled all AT protocol based context monitoring when PPP is used for
|
|
the connection, in order to properly sync with pppd, which should be the
|
|
one detecting the disconnections (already in 1.10.6).
|
|
|
|
* QMI:
|
|
** Improved support to list stored firmware images in Sierra devices.
|
|
** Added additional lock check retries on 'SIM not inserted' errors.
|
|
** Updated explicit registration attempt to report success only when the
|
|
target requested network is registered.
|
|
** Added MSB A-GPS support.
|
|
** Implemented automatic carrier configuration selection using PDC service
|
|
(already in 1.10.2).
|
|
|
|
* mmcli:
|
|
** New machine-readable JSON output with '--output-json'.
|
|
** Updated to allow using the modem UID to specify SIM operations.
|
|
|
|
* udev:
|
|
** New ID_MM_PORT_TYPE_AUDIO generic udev tag to identify ports that
|
|
should be used for in-band audio.
|
|
** Removed support for the ID_MM_PLATFORM_DRIVER_PROBE udev tag, as it
|
|
is no longer required given that the more generic explicit whitelist
|
|
may be used to flag which devices should be probed.
|
|
** Renamed ID_MM_DEVICE_MANUAL_SCAN_ONLY to ID_MM_TTY_MANUAL_SCAN_ONLY,
|
|
given that the tag only applies to TTYs.
|
|
** ID_MM_DEVICE_IGNORE is no longer used internally in ModemManager, and
|
|
is instead targeted to users that want to explicitly ignore specific
|
|
devices regardless of what filter type is in use (already in 1.10.6).
|
|
|
|
* dbus:
|
|
** Updated to always report the registered MM_CORE_ERROR_CANCELLED error
|
|
instead of the implicit G_IO_ERROR_CANCELLED ones generated by GLib.
|
|
|
|
* GObject introspection:
|
|
** Fixed setup to explicitly skip all non-API methods.
|
|
|
|
* Plugins:
|
|
** tplink: new plugin.
|
|
** dlink: new plugin.
|
|
** xmm: added MSB A-GPS support.
|
|
** dell,dw5821e: update to allow unmanaged GPS support on the TTY even
|
|
when raw/NMEA GPS is enabled via QMI/LOC.
|
|
** quectel: updated to allow TTY-only devices.
|
|
** telit: added GPS support.
|
|
** telit: improved band management with #BND.
|
|
** simtech: added improved voice call support.
|
|
** simtech: added support for LTE devices.
|
|
** simtech: improved signal quality reporting logic.
|
|
** simtech: added GPS support for the SIM7000/SIM7600 family.
|
|
** cinterion: added support for time updates.
|
|
** cinterion: added improved voice call support.
|
|
** ublox: added improved voice call support.
|
|
** ublox: improved band management with UBANDSEL.
|
|
|
|
All the features and fixes which were backported to 1.10.x releases are also
|
|
present in ModemManager 1.12.0.
|
|
|
|
|
|
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...
|