aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-11-03base-sim: fix length when reading GID1/GID2Aleksander Morgado
We were attempting to read 15 bytes unconditionally, regardless of the size of the EF_gid1 and EF_gid2 files. This operation would succeed in some SIM cards even if the actual file lengths are shorter: AT+CRSM=176,28478,0,0,15 +CRSM: 144,0,"FFFF" OK But the operation would fail in some other SIM cards due to the length mismatch: AT+CRSM=176,28478,0,0,15 +CRSM: 103,0 OK Using 0 as requested length instructs the modem to read the length specified in the EF status information, which is also the same approach we do in QMI and MBIM. AT+CRSM=176,28478,0,0,0 +CRSM: 144,0,"FFFF" OK
2022-11-01iface-modem-3gpp-profile-manager: Initialize autofreed string to NULLEvangelos Ribeiro Tzaras
This avoids compiler warnings when using -Wmaybe-uninitialized Closes: #653
2022-11-01build: Warn about potentially uninitialized variablesEvangelos Ribeiro Tzaras
2022-10-29build-aux: templates: make build reproducibleArnaud Ferraris
By including `@filename@` in the enums/errors types header template, we generate files containing the full path to source files, which reflects the particular filesystem layout used for a given build. As such, this alters build reproducibility as it causes a (admittedly small) diff between builds executed in different environments. Using `@basename@` instead ensures only the file name (without its full path) is mentioned in the generated files, making the builds reproducible again.
2022-10-27build: post-release version bump to 1.21.0Aleksander Morgado
2022-10-27release: bump version to 1.20.0Aleksander Morgado
2022-10-27base-sim: fix loading GID2Aleksander Morgado
We were not even trying to load it if GID1 was successfully loaded.
2022-10-27sim-mbim: read exact GID1/GID2 file sizeAleksander Morgado
2022-10-27mm-broadband-modem-qmi: do not set "enable refresh" in PDC "register" QMI ↵Akash Aggarwal
message If "enable refresh" is set, QMI modem expects an acknowledgement upon receiving a PDC refresh indication, otherwise the modem resets assuming clients are facing an issue in refreshing their cache. Register for PDC refresh indication without setting "enable refresh" TLV. We would still receive the refresh indication to notify that the list of profiles stored has changed and would not have to acknowledge the modem.
2022-10-26build: require libqmi 1.32.0 and libmbim 1.28.0Aleksander Morgado
2022-10-19build: bump version to 1.19.900 (1.20-rc1)Aleksander Morgado
2022-10-19NEWS: update for 1.20.0Aleksander Morgado
2022-10-19AUTHORS: update for 1.20Aleksander Morgado
2022-10-19RELEASING: update to use meson based stepsAleksander Morgado
2022-10-19core: update copyright yearsAleksander Morgado
2022-10-19mmcli: update copyright yearsAleksander Morgado
2022-10-19docs,reference: update copyright yearsAleksander Morgado
2022-10-18broadband-modem-qmi: support for setting up signal thresholdsAkash Aggarwal
2022-10-17plugin, telit: set last band to EUTRAN_85Alexey Orishko
Modems based on MDM9205 chipset support LTE Band 85, thus last define was changed to reflect that band
2022-10-17plugin, telit: add support for LPWA modemAlexey Orishko
- properly identity access technology for Cat-M and NB-IoT RATs
2022-10-17foxconn: updating the T77W968 requires MCFG+APPS versionFanice.luo
updating T77W968(0x413c:0x81d7 ; 0x413c:0x81e0 ; 0x413c:0x81e4 ; 0x413c:0x81e6): supports FASTBOOT and QMI PDC, and requires MCFG+APPS version.
2022-10-17fibocom: Don't disconnect initial EPS bearerSven Schwermer
During profile setup, the profile manager normally disconnects a profile before re-using it. We do not want to do this for the initial EPS bearer because that would trigger de-registration. Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
2022-10-17fibocom: Set initial EPS bearer CID for MA510Sven Schwermer
Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
2022-10-17fibocom: Add initial EPS bearer supportSven Schwermer
Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
2022-10-17fibocom: Implement power down/offSven Schwermer
Also bump the timeout for the +CFUN operations as they may take up to 10s according to the AT command manual (e.g. MA510). Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
2022-10-17fibocom: Monitor connection status using +GTRNDIS?Sven Schwermer
In situations where the configured APN for the initial EPS bearer (cid=1) does not match the APN for the actual connection, ModemManager sets up a context (cid!=1) with the proper APN when connecting. If the APN for the initial EPS bearer was not valid, the SIM may fall back to a default one. If that default matches the APN for the proper connection, the initial EPS bearer is re-used for the actual connection. In that scenario, +CGACT? will report deactivated for the actual connection context (cid!=1). ModemManager subsequently reports the connection as disconnected. +GTRNDIS? will always reflect the correct state for the context ID we used to set up the ECM connection. Hence, it makes sense to use this command to assess the connection status. This has been tested with the MA510-GL modem module. Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
2022-10-11mm-iface-modem: always require a SIM card in 3GPP modulesAkash Aggarwal
Avoid removing 3GPP capabilities if sim is absent. Transition to 'Failed' state for 3GPP capable devices if sim is absent.
2022-10-10fcc-unlock: add FCC unlock support for Quectel EM05-GAleksander Morgado
Using the FCC unlock prepared and tested by: Leah Oswald <mail@leahoswald.de>, Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/640
2022-10-10foxconn: remove QMI_SERVICE_FOX from Generic MBIM modem objectFanice.luo
Allocate the fox_client to attempt loading the firmware info using QMI_SERVICE_FOX,and release it when no longer needed. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/599
2022-10-10i18n: Update German translationJürgen Benvenuti
Translated and proofread by the GNOME German translation team.
2022-10-06sms-part-3gpp: coding style fixesAleksander Morgado
2022-10-06broadband-modem-mbim: ensure message array contains valid PDUsAleksander Morgado
When reading SMS PDUs during initialization or upon a notification of a new PDU arriving, we should ensure that the array of messages returned is of type PDU, and also validate whether the array contains valid PDUs before processing them, otherwise we could be dereferencing invalid memory. This is trying to fix crashes like the following: 0x000059502b7ebaa2(ModemManager -mm-broadband-modem-mbim.c:7816)add_sms_part 0x000059502b7f5cf5(ModemManager -mm-broadband-modem-mbim.c:7849)sms_read_query_ready 0x000079e48edb36d3(libgio-2.0.so.0 -gtask.c:1230)g_task_return_now 0x000079e48edb2732(libgio-2.0.so.0 -gtask.c:1300)g_task_return 0x000079e48ee64ce5(libmbim-glib.so.4 -mbim-device.c:240)transaction_task_complete_and_free 0x000079e48ee6665f(libmbim-glib.so.4 -mbim-device.c:1017)data_available 0x000079e48ec65463(libglib-2.0.so.0 -gmain.c:3417)g_main_context_dispatch 0x000079e48ec6576e(libglib-2.0.so.0 -gmain.c:4211)g_main_context_iterate 0x000079e48ec659e2(libglib-2.0.so.0 -gmain.c:4411)g_main_loop_run 0x000059502b7796b1(ModemManager -main.c:217)main 0x000079e48e9f77a7(libc.so.6 + 0x000227a7)__libc_start_main 0x000059502b7794b9(ModemManager + 0x0005f4b9)_start 0x00007ffef825c6a7
2022-10-05sim-mbim: fix race condition when sync requested during preloadAleksander Morgado
This is an extremely tricky race condition. * During SIM object initialization, we try to load SIM type (first item loaded). * MMSimMbim SIM type loading step runs preload_subscriber_info(), which: ** Sets self->priv->preload = TRUE; so that it is not run anymore. ** Sets the sync monitor to clear preloaded info if sync needed. ** Runs the subscriber ready status operation asynchronously. ** Just before the subscriber ready status operation returns, the system goes to sleep. ** The resume logic kicks in, and we flag the modem with sync needed, which clears the self->priv->preload flag. * Then the subscriber ready status operation response arrives, and we store the IMSI and the other things. * When the next initialization step happens, given that self->priv->preload is cleared, we run attempt to run preload_subscriber_info() again, and this time it finds the info like IMSI is already set, so asserts: 0x00007cbcd287523f (libglib-2.0.so.0 - gtestutils.c: 3253) g_assertion_message 0x00007cbcd28752a2 (libglib-2.0.so.0 - gtestutils.c: 3279) g_assertion_message_expr 0x00005cbdab0a2dc0 (ModemManager - mm-sim-mbim.c: 253) subscriber_ready_status_ready 0x00007cbcd29a173b (libgio-2.0.so.0 - gtask.c: 1230) g_task_return_now 0x00007cbcd29a0799 (libgio-2.0.so.0 - gtask.c: 1300) g_task_return 0x00007cbcd2a548e0 (libmbim-glib.so.4 - mbim-device.c: 264) transaction_task_complete_and_free 0x00007cbcd2a562fc (libmbim-glib.so.4 - mbim-device.c: 1047) data_available 0x00007cbcd28534a6 (libglib-2.0.so.0 - gmain.c: 3417) g_main_context_dispatch 0x00007cbcd28537b1 (libglib-2.0.so.0 - gmain.c: 4211) g_main_context_iterate 0x00007cbcd2853a25 (libglib-2.0.so.0 - gmain.c: 4411) g_main_loop_run 0x00005cbdab034d26 (ModemManager - main.c: 217) main 0x00007cbcd25e16c5 (libc.so.6 + 0x000286c5) __libc_init_first 0x00007cbcd25e1781 (libc.so.6 + 0x00028781) __libc_start_main 0x00005cbdab034a40 (ModemManager + 0x00061a40) _start In order to solve this, upon a sync request the ongoing preload operation will be cancelled.
2022-10-05iface-modem-3gpp: disallow Scan() or Register() if LockedAleksander Morgado
We are exporting the 3GPP interface even when locked, so we should cleanly disallow the Scan() and Register() operations on that state, instead of wrongly assuming they may never happen. 0x00007c192134944a (libc.so.6 + 0x0003744a) gsignal 0x00007c19213344e8 (libc.so.6 + 0x000224e8) abort 0x00007c19215c4221 (libglib-2.0.so.0 - gtestutils.c: 3253) g_assertion_message 0x00007c19215c4284 (libglib-2.0.so.0 - gtestutils.c: 3279) g_assertion_message_expr 0x00005b3eec9c9fbc (ModemManager - mm-iface-modem-3gpp.c) handle_scan_auth_ready 0x00007c19216ef75b (libgio-2.0.so.0 - gtask.c: 1230) g_task_return_now 0x00007c19216ee7b9 (libgio-2.0.so.0 - gtask.c: 1300) g_task_return 0x00005b3eec99a5ef (ModemManager - mm-dispatcher-fcc-unlock.c: 69) dispatcher_run_ready 0x00007c19216ef75b (libgio-2.0.so.0 - gtask.c: 1230) g_task_return_now 0x00007c19216ef78e (libgio-2.0.so.0 - gtask.c: 1244) complete_in_idle_cb 0x00007c19215a2486 (libglib-2.0.so.0 - gmain.c: 3417) g_main_context_dispatch 0x00007c19215a2791 (libglib-2.0.so.0 - gmain.c: 4211) g_main_context_iterate 0x00007c19215a2a05 (libglib-2.0.so.0 - gmain.c: 4411) g_main_loop_run 0x00005b3eec998451 (ModemManager - main.c: 217) main 0x00007c19213347a7 (libc.so.6 + 0x000227a7) __libc_start_main 0x00005b3eec998259 (ModemManager + 0x00060259) _start Fixes 83e7600a67d1c5952d0fada07ebe70dfef3492f6
2022-10-05libmm-glib,common-helpers: minor coding style fix in mm_new_iso8601_time()Aleksander Morgado
2022-10-05libmm-glib,common-helpers: don't assume new_from_unix_utc() always succeedsAleksander Morgado
The g_date_time_new_from_unix_utc() method in glib2 may fail if the given timestamp is too far into the future. The value is supposed to be seconds since unix time origin, but internally it will be converted into usecs, so any value longer than G_MAXINT64 / USEC_PER_SECOND isn't allowed. This is currently used in the CLI, and we're anyway ignoring the error returned in that case, but at least it won't crash if it ever happens.
2022-09-30mm-modem-helpers.c: adjust the RING regexAngus Ainslie
The Broadmobi BM818 has some additional carriage returns in the RING message Fixes: #626 Signed-off-by: Angus Ainslie <angus@akkea.ca>
2022-09-30sim-mbim: fallback to AT commands if reading GID via MBIM failsAleksander Morgado
Older MBIM modems don't support the low level UICC reading extension defined by Microsoft. In those case, fallback to reading the GID values using AT commands wherever possible.
2022-09-30base-sim: implement GID1 and GID2 loading using AT commandsAleksander Morgado
2022-09-29plugins,telit: LM940 has LTE band ext after given versionCarlo Lobrano
Currently, LM940 is expected to have not LTE band extended, however they have been introduced since version 24.01.516. This change adds a software revision compare function for Telit modem limited to LM9x0 modems (LM940 and LM960 share the same revision format string) to verify if the current LM940 software revision is equal or newer than 24.01.516 and enable/disable LTE band extended accordingly.
2022-09-29plugins,telit: LM960 has LTE extended bandsCarlo Lobrano
2022-09-29plugins,telit: Detect alternate_3g_bands flag from modem modelCarlo Lobrano
Currently, mm-shared-telit:Private:alternate_3g_bands value provided via ID_MM_TELIT_BND_ALTERNATE tag. This commit maps the value of alternate_3g_bands to the modem model, detected via software version string.
2022-09-29plugins,telit: Detect ext_4g_bands flag from modem modelCarlo Lobrano
Currently, mm-shared-telit:Private:ext_4g_bands value is inferred from the #BND? response, based on the convention that the #BND? response has 4 tokens only if the modem has LTE extended bands. This commit maps the value of ext_4g_bands to the modem model, detected via software version string, which is a more reliable source.
2022-09-29plugins,telit: Add MM_TELIT_MODEL_FN990Carlo Lobrano
2022-09-29plugins,telit: remove unnecessary argumentCarlo Lobrano
is_bnd_4g_format_hex() function does not need MMBaseModem.
2022-09-29plugins,telit: refactor to reduce scope of variableCarlo Lobrano
In mm_telit_build_bnd_request the scope of some 3g related variables can be reduced.
2022-09-29plugins,telit: refactor functions dealing with #BNDCarlo Lobrano
Currently functions dealing with #BND request - mm_telit_parse_bnd_query_response - mm_telit_parse_bnd_test_response - mm_telit_build_bnd_request have all a long list of arguments configuring how to deal with the BND string. This commit reworks this list of arguments into a single new structure "MMTelitBNDParseConfig" with the following advantages - shorter list of arguments for the above functions - future changes to this arguments will be transparent for the functions above that only pass the values - one single point where the structure is created: a new function mm_shared_telit_get_bnd_parse_config.
2022-09-28cinterion: Fix CDC-ECM support for ELS61-E2Christian Taedcke
When the data connection is started with AT^SWWAN, the modem expects the DHCP discover packet from the TE while the command is running, i.e. while the modem has not replied yet. In order to achieve that, the bearer is marked as connected as soon as the command is issued. This makes the NetworkManager start the DHCP process. If the modem replies with an error, the bearer will be marked disconnected later on. See https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/50 for a similar functionality in the ublox driver. Includes minor coding style fixes from Aleksander Morgado <aleksandermj@chromium.org>. Signed-off-by: Christian Taedcke <christian.taedcke@lemonbeat.com>
2022-09-28cinterion: add support for mode setting using SXRATChristian Taedcke
The previously used COPS command to set to LTE-only mode did not work for an ELS81 modem. Now ^SXRAT is used to switch modes instead of COPS, if SXRAT is supported by the modem.
2022-09-28quectel: Trigger reprobe upon RDY URCSven Schwermer
Apparent self-resets without re-enumeration have been observed on Quectel modems EC21 and EG91. See #285 and https://lists.freedesktop.org/archives/modemmanager-devel/2022-September/009407.html Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/285 Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>