aboutsummaryrefslogtreecommitdiff
path: root/plugins
AgeCommit message (Collapse)Author
2021-09-29telit: fix g_object_unref failed assertionDaniele Palmas
Fix the following g_object_unref failed assertion: ModemManager[385967]: <debug> [1632924639.132023] [modem0/ttyUSB2/at] --> 'AT+CSIM=1<CR>' ModemManager[385967]: <debug> [1632924639.144892] [modem0/ttyUSB2/at] <-- '<CR><LF>ERROR<CR><LF>' ModemManager[385967]: <debug> [1632924639.145021] [modem0/ttyUSB2/at] operation failure: 100 (Unknown error) (ModemManager:385967): GLib-GObject-CRITICAL **: 16:10:39.145: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
2021-09-15Revert "build,meson: Improve plugins option set"Aleksander Morgado
This reverts commit 09a5052a777c858b83baf9444306775ed5c50300. This commit breaks the default disabling of the qcom-soc plugin.
2021-09-15meson,build: don't include daemon enum sources in pluginsAleksander Morgado
We will end up exporting what we shouldn't: $ abidiff /tmp/autotools/lib/ModemManager/libmm-shared-icera.so /tmp/meson/lib/ModemManager/libmm-shared-icera.so Functions changes summary: 0 Removed, 0 Changed (3 filtered out), 8 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 8 Added functions: [A] 'function const gchar* mm_bearer_connection_status_get_string(MMBearerConnectionStatus)' {mm_bearer_connection_status_get_string} [A] 'function GType mm_bearer_connection_status_get_type()' {mm_bearer_connection_status_get_type} [A] 'function const gchar* mm_bearer_status_get_string(MMBearerStatus)' {mm_bearer_status_get_string} [A] 'function GType mm_bearer_status_get_type()' {mm_bearer_status_get_type} [A] 'function gchar* mm_filter_rule_build_string_from_mask(MMFilterRule)' {mm_filter_rule_build_string_from_mask} [A] 'function GType mm_filter_rule_get_type()' {mm_filter_rule_get_type} [A] 'function gchar* mm_port_probe_flag_build_string_from_mask(MMPortProbeFlag)' {mm_port_probe_flag_build_string_from_mask} [A] 'function GType mm_port_probe_flag_get_type()' {mm_port_probe_flag_get_type}
2021-09-15build,meson: fix building shared utils and pluginsAleksander Morgado
When building shared utils modules or plugins, we should not link with the static libraries built under src/, because that would mean we're including their symbols as exported by the modules, and it'll break in runtime. Instead, just define the correct set of 'include_directories' to be used in each plugin. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/436
2021-09-15build,meson: rename plugin helpers library variableAleksander Morgado
So that we don't confuse the plugin-specific libhelpers with the core libhelpers built in src/.
2021-09-15novatel: avoid returning a NULL timezone without error setAleksander Morgado
Reported and fix suggested by: Frederic Martinsons <frederic.martinsons@sigfox.com> Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/438
2021-09-10build,meson: Improve plugins helper library buildingIñigo Martínez
To avoid those cases where a plugin does not need a helper library an empty array is created. However, when a helper library has to be built, it is not necessary to include the created static library in an array.
2021-09-10build,meson: Fix libmm-test-common name and dependenciesIñigo Martínez
`libmm-test-common` is created using underscores. It also uses `gio-unix-2.0` as a public dependency but actually it should be private. Both issues have been fixed.
2021-09-10build,meson: Improve plugins option setIñigo Martínez
Improved the way the plugins are set to allow a smaller summary.
2021-09-07build,meson: fix wrong install of simtech port types on thuraya pluginAleksander Morgado
2021-09-07build: Port to mesonIñigo Martínez
meson is a build system focused on speed an ease of use, which helps speeding up the software development. This patch adds meson support along autotools.
2021-08-09foxconn: add T99W175 carrier mapping tableFreedom Liu
2021-08-09foxconn: update T77W968 carrier mapping tableFreedom Liu
2021-08-09foxconn: Rename carrier-mapping to t77w968-carrier-mappingFreedom Liu
2021-08-01telit: disable +CPOL based features in the LN930Aleksander Morgado
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/414
2021-07-31fibocom: fix QMI device allowanceAleksander Morgado
E.g. for a FM150: [1627656003.230873] [cdc-wdm0] port contents loaded: [1627656003.231069] [cdc-wdm0] bus: usb [1627656003.231179] [cdc-wdm0] interface: /sys/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.4/1-11.4.4/1-11.4.4:1.4 [1627656003.231272] [cdc-wdm0] device: /sys/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.4/1-11.4.4 [1627656003.231364] [cdc-wdm0] driver: qmi_wwan [1627656003.231450] [cdc-wdm0] vendor: 2cb7 [1627656003.231536] [cdc-wdm0] product: 0104 [1627656003.231626] [cdc-wdm0] revision: 0414 [1627656003.231722] [base-manager] adding port cdc-wdm0 at sysfs path: /sys/devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11.4/1-11.4.4/1-11.4.4:1.4/usbmisc/cdc-wdm0 ... [1627656004.333874] [plugin/fibocom] port cdc-wdm0 filtered by implicit QMI driver
2021-07-31huawei: disable CPOL based features in the R215Aleksander Morgado
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/411
2021-07-31huawei: ignore ^LWURC URCsAleksander Morgado
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/412
2021-07-30build: Rename template filesIñigo Martínez
The template files in the `build-aux` directory used in enums sources and headers generation use the `{$name}-template.[ch]` pattern. However, the examples in the official guide[0] and usually GNOME and Freedesktop packages use the `{$name}.[ch].template` pattern. Due to this, the name of the template files and build commands have been changed. [0] https://developer.gnome.org/gobject/stable/glib-mkenums.html
2021-07-29cinterion: increase ^SCFG? timeout to 120sAleksander Morgado
The timeout in this command is extremely large, because there are some modules like the EGS5 that build the response based on the current network registration, and that implies the module needs to be registered. If for any reason there is no serving network where to register, the response comes after a very long time, up to 100s. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/408
2021-07-27huawei: plug memleak when processing GETPORTMODE hintsAleksander Morgado
==99766== 96 (24 direct, 72 indirect) bytes in 1 blocks are definitely lost in loss record 3,791 of 4,243 ==99766== at 0x483E7C5: malloc (vg_replace_malloc.c:380) ==99766== by 0x50DCAC9: g_malloc (gmem.c:106) ==99766== by 0x50F46D6: g_slice_alloc (gslice.c:1069) ==99766== by 0x50CE9F2: g_list_insert_sorted_real (glist.c:1109) ==99766== by 0x753DE92: ??? ==99766== by 0x753E6D4: ??? ==99766== by 0x753E897: ??? ==99766== by 0x1F059D: mm_plugin_create_modem (mm-plugin.c:922) ==99766== by 0x166693: mm_device_create_modem (mm-device.c:481) ==99766== by 0x161547: device_support_check_ready (mm-base-manager.c:219) ==99766== by 0x4F03533: g_task_return_now (gtask.c:1219) ==99766== by 0x4F07078: UnknownInlinedFun (gtask.c:1289) ==99766== by 0x4F07078: g_task_return (gtask.c:1245)
2021-07-27option: disable preferred networks management in custom SIM objectAleksander Morgado
It's been observed that running CPOL? would completely break the AT port of the modules like the GIO225. Fully disable this feature in the whole option and option-hso plugins, by creating a new custom SIM object with the features disabled completely, and setup as a new shared interface object. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/404
2021-07-27iridium: disable preferred networks management in SIM objectAleksander Morgado
It's not applicable to Iridium modems, which only work with one single operator.
2021-07-14hso: query profile id from hso bearer during connecting phaseAleksander Morgado
As the profile id is not really set in the base bearer object until after connected.
2021-07-14icera: fix segfault during connection reset logicAleksander Morgado
==252789== Process terminating with default action of signal 11 (SIGSEGV): dumping core ==252789== Access not within mapped region at address 0x28 ==252789== at 0x7D17D22: connect_reset_ready (mm-broadband-bearer-icera.c:419) ==252789== by 0x4EEC242: g_simple_async_result_complete (gsimpleasyncresult.c:802) ==252789== by 0x17EFC6: at_command_ready (mm-base-modem-at.c:538) ==252789== by 0x4EEC242: g_simple_async_result_complete (gsimpleasyncresult.c:802) ==252789== by 0x259423: serial_command_ready (mm-port-serial-at.c:393) ==252789== by 0x4EEC242: g_simple_async_result_complete (gsimpleasyncresult.c:802) ==252789== by 0x252B9B: command_context_complete_and_free (mm-port-serial.c:141) ==252789== by 0x254542: port_serial_got_response (mm-port-serial.c:755) ==252789== by 0x254A78: parse_response_buffer (mm-port-serial.c:926) ==252789== by 0x254FFE: common_input_available (mm-port-serial.c:1035) ==252789== by 0x2550DE: iochannel_input_available (mm-port-serial.c:1058) ==252789== by 0x50D3F84: UnknownInlinedFun (gmain.c:3344) ==252789== by 0x50D3F84: g_main_context_dispatch (gmain.c:4062)
2021-07-14icera: query profile id from icera bearer during connecting phaseAleksander Morgado
As the profile id is not really set in the base bearer object until after connected.
2021-07-14simtech: disable CPOL? checks in SIM7070Aleksander Morgado
The whole device breaks when the CPOL? query is sent; happening consistently all the time: <debug> [1626211395.825257] [modem4/ttyUSB3/at] --> 'AT+CPOL=,2<CR>' <debug> [1626211395.842156] [modem4/ttyUSB3/at] <-- '<CR><LF>OK<CR><LF>' <debug> [1626211395.843227] [modem4/sim4] loading preferred networks... <debug> [1626211395.845289] [modem4/ttyUSB3/at] --> 'AT+CPOL?<CR>' <debug> [1626211401.110974] [modem4/ttyUSB3/at] unexpected port hangup! <debug> [1626211401.111586] [modem4/ttyUSB3/at] forced to close port <debug> [1626211401.112331] [modem4/ttyUSB3/at] closing serial port... <debug> [1626211401.112771] [modem4/ttyUSB3/at] serial port closed Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/401
2021-07-13plugins: AT/QCDM/GPS port type hints only applicable to TTY portsAleksander Morgado
There are modems out there, that reuse the same vid:pid for multiple USB layouts, so there may be port type hints that are not really applicable in all layouts. E.g. the EM7565 in MBIM layout uses interface #0 for the MBIM port, while in QMI layout it uses interface #0 for the QCDM port (which is what the port type hint included in MM states). With these rules, if we don't bind the port type hint to TTY ports only, we would be wrongly flagging the MBIM port as possible QCDM port: <debug> [plugin/sierra] probes required for port cdc-wdm0: 'mbim' <debug> [cdc-wdm0/probe] no AT/QMI/MBIM probing in possible QCDM port <debug> [cdc-wdm0/probe] port is not AT-capable <debug> [cdc-wdm0/probe] port is not QMI-capable <debug> [cdc-wdm0/probe] port is not MBIM-capable <debug> [cdc-wdm0/probe] port probing finished: no more probings needed Avoid this, by making sure all port type hints are added exclusively to TTY ports. It's not a perfect solution, but it's enough for the known cases.
2021-07-11cinterion: ignore Intel Firmware Update service completelyAleksander Morgado
2021-07-11cinterion,shared: add missing interface prerequisitesAleksander Morgado
2021-07-10cinterion: implement custom shared reset operationAleksander Morgado
Implemented for all QMI, MBIM and AT based modems. The parent reset operation always takes priority if available.
2021-07-10cinterion: new custom MBIM modem objectAleksander Morgado
2021-07-08qcom-soc: Add support for WWAN subsystem instead of RPMSGStephan Gerhold
Recent Linux kernel versions have introduced a generic WWAN subsystem that provides various char devices for QMI, AT etc, similar to the subsystem-specific char devices for USB or RPMSG. The RPMSG char device for Qualcomm SoCs (e.g. MSM8916/MSM8974) are particularly complicated to work with because they need to be explicitly created from userspace with rpmsgexport and don't show up automatically. However, it turns out it's fairly simple to wrap the RPMSG subsystem in a simple driver for the WWAN subsystem. This has several advantages: - We can drop support for the special RPMSG char devices entirely at some point. - The WWAN char devices show up automatically, without having to export them explicitly, making ModemManager work out of the box on these devices. For now, just support using the WWAN subsystem alternatively for the qcom-soc plugin. Later we can consider dropping the old RPMSG code.
2021-07-07ublox: Mark ubandsel as unsupported on SARA-R4 and -N4Alexander Dahl
See log from a SARA-R410M-02B-01 before the change: Feb 01 05:40:01 unit ModemManager[304]: <debug> [1612158001.012330] [modem0/ttymxc4/at] --> 'AT+UBANDSEL?<CR>' Feb 01 05:40:01 unit ModemManager[304]: <debug> [1612158001.026831] [modem0/ttymxc4/at] <-- '<CR><LF>ERROR<CR><LF>' Feb 01 05:40:01 unit ModemManager[304]: <debug> [1612158001.027113] [modem0/ttymxc4/at] operation failure: 100 (Unknown error) Feb 01 05:40:01 unit ModemManager[304]: <warn> [1612158001.027298] [modem0] couldn't load current bands: Unknown error Backed by SARA-R4 series AT commands manual, no reference to +UBANDSEL in the manual at all. Log after the change: Feb 01 06:58:25 unit ModemManager[329]: <debug> [1612162705.500845] [modem0] (u-blox) support configuration found for 'SARA-R410M-02B' Feb 01 06:58:25 unit ModemManager[329]: <debug> [1612162705.500961] [modem0] (u-blox) band update requires explicit unregistration Feb 01 06:58:25 unit ModemManager[329]: <debug> [1612162705.501052] [modem0] (u-blox) UACT based band configuration unsupported Feb 01 06:58:25 unit ModemManager[329]: <debug> [1612162705.501141] [modem0] (u-blox) UBANDSEL based band configuration unsupported Fixes: 437fb830c807 ("ublox,helpers: assume all SARA/LARA devices require COPS") Signed-off-by: Alexander Dahl <ada@thorsis.com>
2021-07-07ublox: Add more values to URAT combinationsAlexander Dahl
The SARA-R410M-02B-01 only supports values 7 and 8, log excerpt: Feb 01 05:40:00 unit ModemManager[304]: <debug> [1612158000.826046] [modem0/ttymxc4/at] --> 'AT+URAT=?<CR>' Feb 01 05:40:00 unit ModemManager[304]: <debug> [1612158000.833596] [modem0/ttymxc4/at] <-- '<CR><LF>+URAT: (7-8),(7-8)(7-8)<CR><LF><CR><LF>OK<CR><LF>' Feb 01 05:40:00 unit ModemManager[304]: <warn> [1612158000.833992] [modem0] (u-blox) unexpected AcT value: 7 Feb 01 05:40:00 unit ModemManager[304]: <warn> [1612158000.834096] [modem0] (u-blox) unexpected AcT value: 8 Feb 01 05:40:00 unit ModemManager[304]: <warn> [1612158000.834193] [modem0] couldn't load supported modes: No combinations built from +URAT=? response The SARA-R4 series AT commands manual (and also the SARA-R5 AT commands manual) lists them like this: - 7: LTE Cat M1 - 8: LTE Cat NB1 After the change, log looks like this: Feb 01 06:58:25 unit ModemManager[329]: <debug> [1612162705.490627] [modem0/ttymxc4/at] --> 'AT+URAT?<CR>' Feb 01 06:58:25 unit ModemManager[329]: <debug> [1612162705.499994] [modem0/ttymxc4/at] <-- '<CR><LF>+URAT: 7,8<CR><LF><CR><LF>OK<CR><LF>' Feb 01 06:58:25 unit ModemManager[329]: <debug> [1612162705.500433] [modem0] (u-blox) current allowed modes retrieved: 4g Feb 01 06:58:25 unit ModemManager[329]: <debug> [1612162705.500561] [modem0] (u-blox) current preferred modes retrieved: 4g Signed-off-by: Alexander Dahl <ada@thorsis.com>
2021-06-30cinterion: fix double free when loading initial EPS contextAleksander Morgado
The properties object stored in the context is being returned as task result; so we should make sure that object is no longer left in the context so that it's not freed twice. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/395
2021-06-16helpers: skip g_warning() in mm_3gpp_parse_ws46_test_response()Aleksander Morgado
Use mm_obj_warn() instead.
2021-06-16quectel: add support for EM120/160 PCIe modulesIvan Mikhanchuk
2021-06-01quectel: ignore QLWURCDylan Van Assche
QLWURCs are not ignored and causes calls to be rejected in some cases
2021-05-27cinterion: avoid maybe-uninitialized warning by GCC 10Felipe Borges
Reported at https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1371
2021-05-26plugins: ignore reload_connection_status() where not supportedAleksander Morgado
Some of the AT-based connection methods don't have any way to query connection status, or we don't have a proper implementation for those yet. Ignore the reload operation in all those.
2021-05-26cinterion: reuse the same method for load and reloadAleksander Morgado
The load_() method is used for connection monitoring; while the reload_() method is used to sync connection status after a suspend/resume operation. The same method can be used for both things in the Cinterion plugin.
2021-05-26sierra: reuse the same method for load and reloadAleksander Morgado
The load_() method is used for connection monitoring; while the reload_() method is used to sync connection status after a suspend/resume operation. The same method can be used for both things in the Sierra plugin.
2021-05-26novatel-lte: reuse the same method for load and reloadAleksander Morgado
The load_() method is used for connection monitoring; while the reload_() method is used to sync connection status after a suspend/resume operation. The same method can be used for both things in the Novatel LTE plugin.
2021-05-26quectel: the generic AT based modem supports SIM hot swapAleksander Morgado
2021-05-26broadband-modem-qmi: assume all QMI based modems support SIM hot swapAleksander Morgado
As we have a generic SIM hot swap implementation in the QMI broadband modem object.
2021-05-23base-bearer: report connection error on network initiated disconnectionsAleksander Morgado
By default, fallback to "unknown" mobile equipment error when the modem gets disconnected by the network and we don't have any way to know a more detailed reason.
2021-05-22api: update MMMobileEquipmentError enum valuesAleksander Morgado
Update the list of mobile equipment error codes according to v17.1.0 of 3GPP TS 27.007 (March 2021). A lot of the enum values that were prefixed with the 'GPRS_' keyword have now been flagged as deprecated, and a new enum name given to the corresponding value. The deprecated symbol names are kept in the compat support to avoid breaking API/ABI.
2021-05-23foxconn: setup FCC unlock stepAleksander Morgado
Use the new "DMS Foxconn Set FCC authentication" command to request the modem unlock during a power up operation. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/373
2021-05-03foxconn: don't assume parent location is availableAleksander Morgado
If ModemManager is not built with QMI support, the generic MBIM modem object will not have any location support, so we cannot assume that iface_modem_location_parent will be valid and that it will have all load_location_capabilities(), enable_location_gathering() and disable_location_gathering() implemented. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/362