-
Notifications
You must be signed in to change notification settings - Fork 27
/
NEWS
1107 lines (925 loc) · 52.1 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
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