aboutsummaryrefslogtreecommitdiff
path: root/plugins
AgeCommit message (Collapse)Author
2023-01-03build: move plugins directory to src/pluginsAleksander Morgado
We are going to allow including the plugin sources built within the ModemManager daemon binary; moving the sources within the daemon sources directory makes it easier.
2022-12-31meson: Un-hardcode building a shared libraryFabrice Fontaine
Use library() instead of shared_library() to allow specifying which kind of library to build with "meson setup --default-library ..." This will avoid the following static build failure: FAILED: src/ModemManager /home/autobuild/autobuild/instance-11/output-1/per-package/modem-manager/host/bin/m68k-linux-gcc -o src/ModemManager src/ModemManager.p/meson-generated_.._mm-daemon-enums-types.c.o src/ModemManager.p/main.c.o src/ModemManager.p/mm-auth-provider.c.o src/ModemManager.p/mm-base-bearer.c.o src/ModemManager.p/mm-base-call.c.o src/ModemManager.p/mm-base-manager.c.o src/ModemManager.p/mm-base-modem-at.c.o src/ModemManager.p/mm-base-modem.c.o src/ModemManager.p/mm-base-sim.c.o src/ModemManager.p/mm-base-sms.c.o src/ModemManager.p/mm-bearer-list.c.o src/ModemManager.p/mm-broadband-bearer.c.o src/ModemManager.p/mm-broadband-modem.c.o src/ModemManager.p/mm-call-list.c.o src/ModemManager.p/mm-context.c.o src/ModemManager.p/mm-device.c.o src/ModemManager.p/mm-dispatcher.c.o src/ModemManager.p/mm-dispatcher-connection.c.o src/ModemManager.p/mm-dispatcher-fcc-unlock.c.o src/ModemManager.p/mm-filter.c.o src/ModemManager.p/mm-iface-modem-3gpp.c.o src/ModemManager.p/mm-iface-modem-3gpp-profile-manager.c.o src/ModemManager.p/mm-iface-modem-3gpp-ussd.c.o src/ModemManager.p/mm-iface-modem.c.o src/ModemManager.p/mm-iface-modem-cdma.c.o src/ModemManager.p/mm-iface-modem-firmware.c.o src/ModemManager.p/mm-iface-modem-location.c.o src/ModemManager.p/mm-iface-modem-messaging.c.o src/ModemManager.p/mm-iface-modem-oma.c.o src/ModemManager.p/mm-iface-modem-sar.c.o src/ModemManager.p/mm-iface-modem-signal.c.o src/ModemManager.p/mm-iface-modem-simple.c.o src/ModemManager.p/mm-iface-modem-time.c.o src/ModemManager.p/mm-iface-modem-voice.c.o src/ModemManager.p/mm-plugin.c.o src/ModemManager.p/mm-plugin-manager.c.o src/ModemManager.p/mm-port-probe.c.o src/ModemManager.p/mm-port-probe-at.c.o src/ModemManager.p/mm-private-boxed-types.c.o src/ModemManager.p/mm-sms-list.c.o -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -static '-Wl,-rpath,$ORIGIN/../libmm-glib' -Wl,-rpath-link,/home/autobuild/autobuild/instance-11/output-1/build/modem-manager-1.20.2/build/libmm-glib -Wl,--start-group src/libport.a src/libkerneldevice.a src/libhelpers.a libmm-glib/libmm-glib.so.0.9.0 libqcdm/src/libqcdm.a libmm-glib/generated/tests/libmm-test-generated.a -Wl,--export-dynamic /home/autobuild/autobuild/instance-11/output-1/per-package/modem-manager/host/m68k-buildroot-linux-uclibc/sysroot/usr/lib/libgmodule-2.0.a /home/autobuild/autobuild/instance-11/output-1/per-package/modem-manager/host/m68k-buildroot-linux-uclibc/sysroot/usr/lib/libglib-2.0.a -pthread -lm /home/autobuild/autobuild/instance-11/output-1/per-package/modem-manager/host/m68k-buildroot-linux-uclibc/sysroot/usr/lib/libpcre.a /home/autobuild/autobuild/instance-11/output-1/per-package/modem-manager/host/m68k-buildroot-linux-uclibc/sysroot/usr/lib/libgio-2.0.a /home/autobuild/autobuild/instance-11/output-1/per-package/modem-manager/host/m68k-buildroot-linux-uclibc/sysroot/usr/lib/libgobject-2.0.a /home/autobuild/autobuild/instance-11/output-1/per-package/modem-manager/host/m68k-buildroot-linux-uclibc/sysroot/usr/lib/libffi.a /home/autobuild/autobuild/instance-11/output-1/per-package/modem-manager/host/m68k-buildroot-linux-uclibc/sysroot/usr/lib/libz.a /home/autobuild/autobuild/instance-11/output-1/per-package/modem-manager/host/m68k-buildroot-linux-uclibc/sysroot/usr/lib/libmount.a /home/autobuild/autobuild/instance-11/output-1/per-package/modem-manager/host/m68k-buildroot-linux-uclibc/sysroot/usr/lib/libblkid.a -Wl,--end-group /home/autobuild/autobuild/instance-11/output-1/per-package/modem-manager/host/opt/ext-toolchain/bin/../lib/gcc/m68k-buildroot-linux-uclibc/11.2.0/../../../../m68k-buildroot-linux-uclibc/bin/ld: attempted static link of dynamic object `libmm-glib/libmm-glib.so.0.9.0' Fixes: - http://autobuild.buildroot.org/results/9803d593305df36c4a8d67aac2fb4c9a3120a072 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2022-12-27quectel: add new modem variants to port type rulesIvan Mikhanchuk
Adds new variants of Quectel modems which rely on ModemManager port type rules for fwupd updates.
2022-12-06broadmobi: add MM_PLUGIN_REQUIRED_QCDM flagClayton Craft
This fixes an issue where, with an BM818 connected over USB, suspending/resuming the modem causes the modem to reset immediately. The culprit was bisected to d6203265c2, where QCDM probing was disabled unless explicitly requested, so I assume this modem needs it based on the constant resetting when power management was enabled on the modem's usb connection.
2022-11-28cinterion: add retry mechanism to the ^SWWAN? commandHeiko Thiery
Since it is possible that the delayed status request for the connection (^SWWAN?) also does not return the updated status a retry is needed. This retry is only done for the activation path. So the connection status monitoring and the deactivation path is not affected. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2022-11-28cinterion: add a delay to the ^SWWAN? commandHeiko Thiery
There are modems where the status in response is not available immediatly. Doing a delayed request will solve the issue. Suggested-by: Giacinto Cifelli <gciofono@gmail.com> Suggested-by: Aleksander Morgado <aleksandermj@chromium.org> Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2022-11-22quectel: add new variant of EM05-G to port type rulesIvan Mikhanchuk
2022-11-07build: drop autotoolsAleksander Morgado
2022-11-07build: fix building without tests supportAleksander Morgado
2022-11-07build: fix building without MBIM supportAleksander Morgado
The foxconn shared utils are only built when MBIM is enabled, and therefore the dell and foxconn plugins should only expect those shared utils to be present if MBIM is enabled. The foxconn plugin will be fully disabled when MBIM is disabled. The fibocom shared utils are only built when MBIM is enabled, and therefore the fibocom plugin should not expect them built unconditionally, they will only be present if MBIM is enabled
2022-11-04core,log: new 'MSG' log level between 'INFO' and 'WARN'Aleksander Morgado
We're bumping the current "INFO" level messages to the new "MSG" level, also making the new level the default. The old "INFO" level will be used to setup an intermediate level of logging which is not as verbose as "DEBUG" but still provides some capabilities to analyze the behavior of a modem.
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-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-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>
2022-09-15foxconn: carrier mapping conf file shouldn't be executableAleksander Morgado
2022-09-15fibocom: source files shouldn't be executableAleksander Morgado
2022-09-08quectel: add MM_PLUGIN_REQUIRED_QCDM flagIvan Mikhanchuk
EM120/160 uses QCDM port for firmware updates. fwupd lists all known ports from ModemManager and uses QCDM port to reboot the modem into the firmware download mode.
2022-09-08cinterion: add support thales PCIE vid(0x1269) in the cinterion.Fanice.luo
For SDX55 and SDX65 can identify the corrrect plugin(cinterion), and the plugin is updated to support the wwan subsystem.
2022-09-05modem-helpers-ublox: rework +UIPADDR response parserAleksander Morgado
We setup all output variables with g_autofree and then use g_steal_pointer() to return the needed ones.
2022-09-05modem-helpers-cinterion: rework CNMI test response parserAleksander Morgado
We setup all output variables with g_autoptr() and then use g_steal_pointer() to return the needed ones.
2022-09-05core: port GRegex/GMatchInfo to use autoptr()Aleksander Morgado
The behavior of GRegex changed in 2.73.2 once it was ported from pcre1 to pcre2. In some cases it was made more strict, which is fine, in other cases it exposed some change in how it behaves on certain matches that is not extremely clear whether it's ok or not. See https://gitlab.gnome.org/GNOME/glib/-/issues/2729 See https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/601 See https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/621 Either way, one thing that was assumed was that initializing all GRegex/GMatchInfo variables to NULL and making sure they're NULL before they're initialized by glib (especially the GMatchInfo) was a good and safer approach. So, whenever possible, g_autoptr() is used to cleanup the allocated GMatchInfo/GRegex variables, and otherwise, g_clear_pointer() is used to ensure that no free/unref is attempted unless the given variable is not NULL, and also so that the variable is reseted to NULL after being disposed.
2022-09-05plugins,telit: add missing 4G BND HEX format modem modelsCarlo Lobrano
Currently, supported band AT query #BND=? is failing with LM9x0 because it expects BND 4G decimal format instead than hexadecimal. Adding also LN920 and FN980 for completeness. They do not fail right now because they have also "4g band extended" which format is always hexadecimal.
2022-08-25mtk: fix task completion when loading supported modesAleksander Morgado
2022-08-25icera: fix double free on %%IPSYS=? response processingAleksander Morgado
2022-08-18broadband-modem-qmi: choose endpoint number based on data portStephan Gerhold
At the moment the endpoint type/number is chosen based on the QMI control port. The assumption is that multiplexing is implemented using an additional protocol layer (e.g. QMAP) or that each network interface has its own QMI control port. This is not necessarily the case for BAM-DMUX. To use the built-in multiplexing the WDS client must be bound to the correct data port. This works already for older firmware versions using "Bind Data Port" (SIO port numbers), but not for newer ones using "Bind Mux Data Port" (endpoint type/interface numbers). Make it work for newer firmware versions as well by choosing the endpoint type/number based on the data port similar to the existing implementation for SIO port numbers. Note: The correct endpoint interface number is currently only used for the steps in mm-bearer-qmi. Ideally more refactoring should be done in mm-port-qmi to call WDA Set Data Format for each of the endpoints. In practice it usually works fine without because the data format is set correctly by default.
2022-08-18qcom-soc: simplify QMI port lookup for BAM-DMUXStephan Gerhold
mm_broadband_modem_qmi_peek_port_qmi() already looks up a QMI port exactly the same way it is implemented in the BAM-DMUX variant of peek_port_qmi_for_data(), so we can just reuse it to simplify the code. No functional change.
2022-07-20sierra: disable CPOL in the GL7600Dan Carpenter
Similar to the EM7345 (also from Sierra Wireless), the GL7600 becomes unresponsive after using "AT+CPOL?". Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/595
2022-07-16mm-iface-modem,mm-broadband-modem,mm-shared-qmi: support SIM IMSI switchPrakash Pabba
It is possible that SIM IMSI might change in roaming conditions for a sim. Register for UIM refresh indication always and reprobe if ICCID or IMSI changes for QMI modem.
2022-07-14foxconn: updating the T77W968 carrier mapping tableFanice Luo
add new MCCMNC of EE UK(23430,23431,23432,23433,23434,23476,23501,23502,23577) add new MCCMNC of ATT(310650,310980,90118) add new MCCMNC of Verizon(312770) add new MCCMNC of Vodafone(46601,46603) add new MCCMNC of Orange(21409,23105,26005)
2022-07-12dell: Add DW5829e(T77W968) modulesFanice Luo
add new device(0x413c:0x81e4 0x413c:0x81e6)
2022-07-11fibocom: Ignore +SIM READY URCSven Schwermer
This URC is emitted when the SIM phonebook is initialized. We don't care about that but don't want this URC to mess with the initialization sequence either. Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
2022-07-08fibocom: Add alternative MA510 USB configSven Schwermer
Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
2022-07-08fibocom: Add alternative L610 USB configSven Schwermer
This is the factory-default setting. Make sure to support it as well as the ECM/RNDIS settings. The L610 in GTUSBMODE=31 only enumerates with serial USB interfaces using the option driver, so we need to allow that driver too. Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>