Aleksander Morgado
f7b595d066
broadband-modem-mbim: pass MbimDevice to notification parsers
...
We're going to enable the Microsoft extensions by default, and in
order to properly parse the notification messages, we'll need to know
which is the currently agreed MBIMEx version.
So, pass down the MbimDevice to every notification parser. Not all of
them will need it, so just for completeness.
2021-10-16 22:03:39 +02:00
Aleksander Morgado
5f043e47bf
introspection,signal: minor doc fix in 5G RSRP
2021-10-16 00:02:26 +02:00
Daniele Palmas
6c574ce3d6
telit: remove prefix mm_shared in static function names
2021-10-15 15:23:59 +02:00
Daniele Palmas
f8c1e84939
telit: prefer qmi for set_current_bands if available
2021-10-15 15:22:02 +02:00
Daniele Palmas
266043255f
telit: prefer qmi for load_current_bands if available
2021-10-15 15:21:57 +02:00
Daniele Palmas
91e16ca282
telit: prefer qmi for load_supported_bands if available
2021-10-15 15:18:14 +02:00
Carlo Lobrano
3522a11578
telit: Detect 4G BND format from BND test reply
...
Telit modems that require hexadecimal number when specifying 4G bands
also reply to #BND=? command with a 4th parameter <LTE_band_ext>
(e.g. LM940, LM960, LN920, FN980).
On the other hand, modems that require decimal number when specifying 4G
bands only return 3 parameters to the same command.
It is then possible replace the detection of ext_4g_bands via UDEV tags
with an inspection of BND=? reply.
2021-10-15 11:39:33 +00:00
Amol Lad
650cdc5a32
telit: LN920 bands support
2021-10-15 11:39:33 +00:00
Freedom Liu
f5ab3c4678
foxconn: add T99W265 modules, support for QDU.
2021-10-15 14:05:27 +08:00
Aleksander Morgado
a1e6f911dd
cli,signal: fix error message without EOL
2021-10-14 16:10:13 +02:00
Aleksander Morgado
c06ca6df3f
qcom-soc: require udev tag for ports
...
Since the 'wwan' subsystem addition to the qcom-soc plugin, the rules
to say a modem is handled by this plugin are too broad, and the plugin
attempts to support any kind of device exposed by the WWAN subsystem,
not just those from Qualcomm SoCs.
Update the plugin to require a new ID_MM_QCOM_SOC udev tag that is set
in the plugin udev rules, given that these rules already check for the
expected SoC drivers (bam-dmux, ipa, qcom-q6v5-mss).
2021-10-14 12:54:21 +00:00
Aleksander Morgado
f9645c30b7
Revert "ci: temporarily build single plugins on merge requests"
...
This reverts commit 18b8a3c784
.
We no longer need this, back to only on schedules.
2021-10-14 10:56:36 +02:00
Aleksander Morgado
18b8a3c784
ci: temporarily build single plugins on merge requests
2021-10-14 10:34:40 +02:00
Aleksander Morgado
a5f2f84f44
ci: switch single plugins build to use meson
2021-10-14 10:34:30 +02:00
Iñigo Martínez
86fcf2592f
build,meson: Add an empty line to split includes and dependencies
2021-10-14 07:57:55 +00:00
Iñigo Martínez
803ce03d6a
build,meson: Remove unnecessary empty line
2021-10-14 07:57:55 +00:00
Iñigo Martínez
7c4f8f6cc5
build,meson: Make use of _opt suffix for option variables
...
To make option names consistent, an `_opt` suffix has been added.
This was not applied to `polkit` option at the time and this is
fixed now.
2021-10-14 07:57:55 +00:00
Iñigo Martínez
b3b16b3dc2
build,meson: Make use of partial_dependency for generated dependency
...
The generated objects in `libmm-glib` are include in
`libmm_glib_dep` one by one to avoid the link to the generated
library that is included as a whole in `libmm-glib`.
meson includes a way to include partial objects of a dependency by
using the `partial_dependency` method, so by taking advantage of it
almost all objects are included.
2021-10-14 07:57:55 +00:00
Iñigo Martínez
3974b8b98f
build,meson: Sort files alphabetically
2021-10-14 07:57:55 +00:00
Iñigo Martínez
c3b6a2876e
build,meson: Remove unused option
2021-10-14 07:57:55 +00:00
Iñigo Martínez
bbc157688d
build,meson: Improve plugins option set
...
Improved the way the plugins are set to allow a smaller summary.
2021-10-14 07:57:55 +00:00
Aleksander Morgado
85a99ae028
broadband-modem-qmi: fix non-initialized GError
2021-10-13 22:06:31 +02:00
Aleksander Morgado
8852cef817
quectel: fix non-initialized GError
...
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/442
2021-10-13 22:06:31 +02:00
Aleksander Morgado
2b742d99d5
broadband-modem-mbim: coding style fixes in the SAR implementation
2021-10-13 13:14:10 +02:00
Aleksander Morgado
708bde6b9c
broadband-modem-mbim: use a dynamically allocated MbimSarConfigState
...
It makes reading the code a bit easier.
2021-10-13 13:14:10 +02:00
Aleksander Morgado
58e617e03c
iface-modem-sar: fix initialization sequence completion
...
We cannot just return without completing the GTask. If we see the
support check method failed, just keep on with the state machine so
that the GTask is completed in the FAIL_IF_UNSUPPORTED step.
Also, don't assume GError is set if FALSE is returned. This is the
only kind of async method where we allow this right now.
2021-10-13 13:14:10 +02:00
Aleksander Morgado
05ddf7c293
mmcli,sar: rename actions to just --sar-enable and --sar-disable
2021-10-13 13:14:10 +02:00
Jack Song
f45bc200a9
broadband-modem-mbim: implement the sar interface
2021-10-13 13:14:10 +02:00
lvmaorui
1da847c407
broadband-modem: add the sar interface
2021-10-13 13:14:10 +02:00
Aleksander Morgado
19a6ba5562
build,meson: add SAR interface support in the daemon
2021-10-13 13:14:10 +02:00
lvmaorui
534ffc5ca6
iface-modem-sar: new MMIfaceModemSar
interface
2021-10-13 13:14:10 +02:00
Aleksander Morgado
8329435bdf
build,meson: add SAR interface support in mmcli
2021-10-13 13:14:10 +02:00
lvmaorui
07a6b6032b
mmcli:add SAR command --sar-status/--sar-enable/--sar-disable/--set-power-level
2021-10-13 13:14:10 +02:00
Aleksander Morgado
1f321bd79d
build,meson: add SAR interface support in libmm-glib
2021-10-13 13:14:10 +02:00
lvmaorui
8e67d2375c
docs,libmm-glib: add SAR user-level api
2021-10-13 13:14:10 +02:00
Aleksander Morgado
dbd95e30c4
mm-broadband-modem-mbim: treat NO_ESIM_PROFILE as failure
2021-10-13 11:20:32 +02:00
Aleksander Morgado
fb97b0756b
build: bump libmbim version to use NO_ESIM_PROFILE
2021-10-13 11:14:08 +02:00
Aleksander Morgado
846dafe86b
build: sync libqmi and libmbim versions in meson build
...
Fixes f5168cb54b
2021-10-13 11:12:35 +02:00
Andrew Lassalle
43e76bf1bb
iface-modem: Allow SetPowerState(Low|On) on failed state
...
In some modems, the modem's radio can be ON when no SIM card is present.
In this case, the modem is in failed state, and the host cannot set the
power state to LOW. Since we we will allow the host to set the power to
LOW, we should allow it to set it back to ON.
2021-10-11 10:18:47 -07:00
Daniele Palmas
53f6c309bf
telit: add port type hints for LN920 0x1060, 0x1061 compositions
2021-10-11 16:02:40 +00:00
Daniele Palmas
291f583a50
telit: fix typo in load_supported_modes_ready
2021-10-11 16:02:40 +00:00
Daniele Palmas
41482d823b
telit: fix segmentation fault in initialize_alternate_3g_band
...
Fix the following segmentation fault:
ModemManager[128007]: mm_port_peek_kernel_device: assertion 'MM_IS_PORT (self)' failed
Thread 1 "ModemManager" received signal SIGSEGV, Segmentation fault.
0x00005555556c6e3e in mm_kernel_device_get_global_property
(self=0x0, property=0x7ffff5947480 "ID_MM_TELIT_BND_ALTERNATE")
at kerneldevice/mm-kernel-device.c:309
Reported by Carlo Lobrano <c.lobrano@gmail.com >
2021-10-11 16:02:40 +00:00
Daniele Palmas
176b3f53c2
api: new TDS capability
2021-10-11 16:02:40 +00:00
Daniele Palmas
ecb5c3dbef
modem-helpers: change deprecated MBIM_NW_ERROR_UNKNOWN to MBIM_NW_ERROR_NONE
2021-10-11 16:02:40 +00:00
Aleksander Morgado
f5168cb54b
build: libqmi and libmbim version bumps
...
In order to use the latest symbols exposed (MBIM_NW_ERROR_NONE and QMI_DMS_RADIO_INTERFACE_TDS).
2021-10-11 18:01:24 +02:00
Amol Lad
11b83e4cb8
mm-bearer-mbim: unref not needed and it is causing crash
2021-10-04 14:48:05 +05:30
Frederic Martinsons
ea7517f0e5
Update signal strength indicator thresholds
...
These are thresholds for RSSI so nothing is expected to be
greater than 0.
This will allow to have a better granularity (even if with some
modem, we are limited in the number of thresholds configured)
These new thresholds will give the following signal quality range:
- 11% for -110 dBm
- 30% for -94 dBm
- 50% for -82 dBm
- 70% for -69 dBm
- 90% for -57 dBm
We are expecting to receive indication sreport every time the
signal strength crosses one of the configured thresholds.
Signed-off-by: Frederic Martinsons <frederic.martinsons@sigfox.com >
2021-10-03 17:44:52 +02:00
Lubomir Rintel
90ea3ef5db
iface-modem-3gpp-profile-manager: correct a GError instance ownership
...
The call to g_task_return_error() takes ownership of the GError passed
to it; we must not free it ourselves upon automatic pointer cleanup.
Otherwise a crash can be triggered in the error handling path:
ModemManager[259816]: <debug> [1633088468.157848] [modem0/modemu/at] <-- '<CR><LF>OK<CR><LF>'
ModemManager[259816]: <debug> [1633088468.159832] [modem0] stored profile with id '1'
ModemManager[259816]: <debug> [1633088468.160501] [modem0] set profile state (7/8): list after
ModemManager[259816]: <debug> [1633088468.161686] [modem0/modemu/at] device open count is 3 (open)
ModemManager[259816]: <debug> [1633088468.162320] [modem0/modemu/at] device open count is 2 (close)
ModemManager[259816]: <debug> [1633088468.162746] [modem0/modemu/at] --> 'AT+CGDCONT?<CR>'
ModemManager[259816]: <debug> [1633088468.177437] [modem0/modemu/at] <-- '<CR><LF>ERROR<CR><LF>'
ModemManager[259816]: <debug> [1633088468.178011] [modem0/modemu/at] operation failure: 100 (Unknown error)
ModemManager[259816]: <warn> [1633088468.182420] [modem0/bearer0] connection attempt #1 failed: Couldn't validate update of profile '1': Unknown error
ModemManager[259816]: <info> [1633088468.193156] [modem0/bearer0] connection #1 finished: duration 0s, tx: 0 bytes, rx: 0 bytes
ModemManager[259816]: <debug> [1633088468.194280] [modem0] couldn't connect bearer: Couldn't validate update of profile '1': Unknown error
==259816== Invalid read of size 4
==259816== at 0x4FF66CF: UnknownInlinedFun (gerror.c:535)
==259816== by 0x4FF66CF: g_error_free (gerror.c:832)
==259816== by 0x1A7F49: UnknownInlinedFun (glib-autocleanups.h:52)
==259816== by 0x1A7F49: UnknownInlinedFun (glib-autocleanups.h:52)
==259816== by 0x1A7F49: profile_manager_get_profile_after_ready (mm-iface-modem-3gpp-profile-manager.c:140)
==259816== by 0x4E342C9: g_task_return_now (gtask.c:1219)
==259816== by 0x4E344CA: UnknownInlinedFun (gtask.c:1289)
==259816== by 0x4E344CA: g_task_return (gtask.c:1245)
==259816== by 0x1A867C: get_profile_list_ready (mm-iface-modem-3gpp-profile-manager.c:680)
==259816== by 0x4E342C9: g_task_return_now (gtask.c:1219)
==259816== by 0x4E344CA: UnknownInlinedFun (gtask.c:1289)
==259816== by 0x4E344CA: g_task_return (gtask.c:1245)
==259816== by 0x1A3DB5: internal_list_profiles_ready (mm-iface-modem-3gpp-profile-manager.c:774)
==259816== by 0x4E342C9: g_task_return_now (gtask.c:1219)
==259816== by 0x4E344CA: UnknownInlinedFun (gtask.c:1289)
==259816== by 0x4E344CA: g_task_return (gtask.c:1245)
==259816== by 0x1D7B8B: profile_manager_cgdcont_query_ready (mm-broadband-modem.c:10240)
==259816== by 0x4E1DB61: g_simple_async_result_complete (gsimpleasyncresult.c:802)
==259816== Address 0x9286da0 is 0 bytes inside a block of size 16 free'd
==259816== at 0x48440E4: free (vg_replace_malloc.c:755)
==259816== by 0x500FD1C: g_free (gmem.c:199)
==259816== by 0x502A22F: g_slice_free1 (gslice.c:1180)
==259816== by 0x4FF6780: g_error_free (gerror.c:864)
==259816== by 0x1B22D2: connect_bearer_ready (mm-iface-modem-simple.c:286)
==259816== by 0x4E342C9: g_task_return_now (gtask.c:1219)
==259816== by 0x4E344CA: UnknownInlinedFun (gtask.c:1289)
==259816== by 0x4E344CA: g_task_return (gtask.c:1245)
==259816== by 0x18031A: connect_ready (mm-base-bearer.c:917)
==259816== by 0x4E342C9: g_task_return_now (gtask.c:1219)
==259816== by 0x4E344CA: UnknownInlinedFun (gtask.c:1289)
==259816== by 0x4E344CA: g_task_return (gtask.c:1245)
==259816== by 0x18329B: connect_3gpp_ready (mm-broadband-bearer.c:918)
==259816== by 0x4E342C9: g_task_return_now (gtask.c:1219)
==259816== Block was alloc'd at
==259816== at 0x484186F: malloc (vg_replace_malloc.c:380)
==259816== by 0x5013408: g_malloc (gmem.c:106)
==259816== by 0x502ACB4: g_slice_alloc (gslice.c:1069)
==259816== by 0x502B33D: g_slice_alloc0 (gslice.c:1095)
==259816== by 0x4FF64E6: g_error_allocate (gerror.c:702)
==259816== by 0x4FF6F03: UnknownInlinedFun (gerror.c:716)
==259816== by 0x4FF6F03: g_error_copy (gerror.c:886)
==259816== by 0x4E1D0A0: g_simple_async_result_set_from_error (gsimpleasyncresult.c:676)
==259816== by 0x236AAB: port_serial_got_response (mm-port-serial.c:744)
==259816== by 0x23B0F1: UnknownInlinedFun (mm-port-serial.c:934)
==259816== by 0x23B0F1: common_input_available (mm-port-serial.c:1035)
==259816== by 0x500AF9E: UnknownInlinedFun (gmain.c:3337)
==259816== by 0x500AF9E: g_main_context_dispatch (gmain.c:4055)
==259816== by 0x505F607: g_main_context_iterate.constprop.0 (gmain.c:4131)
==259816== by 0x500A562: g_main_loop_run (gmain.c:4329)
2021-10-03 13:36:54 +00:00
Lubomir Rintel
e3d108de0f
broadband-modem: ensure mm_broadband_modem_create_device_identifier() sets an error on all bad returns
...
modem_load_device_identifier_finish() expect it to do so and trips an
assertion failure in g_propagate_error():
ModemManager[256038]: <warn> [1633083601.491190] [modem0] couldn't load equipment identifier: Unknown error
ModemManager[256038]: <debug> [1633083601.491204] [modem0] loading device identifier...
ModemManager[256038]: <debug> [1633083601.491215] [modem0/modemu/at] device open count is 3 (open)
ModemManager[256038]: <debug> [1633083601.491231] [modem0/modemu/at] device open count is 2 (close)
ModemManager[256038]: <debug> [1633083601.491254] [modem0/modemu/at] --> 'ATI<CR>'
ModemManager[256038]: <debug> [1633083601.494616] [modem0/modemu/at] <-- '<CR><LF>ERROR<CR><LF>'
ModemManager[256038]: <debug> [1633083601.494643] [modem0/modemu/at] operation failure: 100 (Unknown error)
(ModemManager:256038): GLib-CRITICAL **: 06:20:01.494: g_propagate_error: assertion 'src != NULL' failed
Thread 1 "ModemManager" received signal SIGTRAP, Trace/breakpoint trap.
g_logv (log_domain=0x7ffff77d1071 "GLib", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=<optimized out>) at ../glib/gmessages.c:1413
1413 g_private_set (&g_log_depth, GUINT_TO_POINTER (depth));
Missing separate debuginfos, use: dnf debuginfo-install libmbim-1.26.0-2.el9.x86_64 libqmi-1.30.2-1.el9.x86_64
(gdb) bt
#0 g_logv (log_domain=0x7ffff77d1071 "GLib", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=<optimized out>) at ../glib/gmessages.c:1413
#1 0x00007ffff77813d3 in g_log (log_domain=<optimized out>, log_level=<optimized out>, format=<optimized out>) at ../glib/gmessages.c:1451
#2 0x000055555561122d in modem_load_device_identifier_finish (self=0x5555557e62d0, res=<optimized out>, error=0x7fffffffd320)
at /usr/src/debug/ModemManager-1.18.2-1.el9.x86_64/src/mm-broadband-modem.c:1168
#3 0x00005555555ea69a in load_device_identifier_ready (self=0x5555557e62d0, res=0x5555557ea6b0, task=task@entry=0x7fffe8011e20 [GTask])
at /usr/src/debug/ModemManager-1.18.2-1.el9.x86_64/src/mm-iface-modem.c:4727
#4 0x00007ffff7951b62 in g_simple_async_result_complete (simple=0x5555557ea6b0 [GSimpleAsyncResult]) at ../gio/gsimpleasyncresult.c:802
#5 0x00005555555d1b0a in at_sequence_parse_response (port=<optimized out>, res=<optimized out>, ctx=ctx@entry=0x5555557ed7f0)
at /usr/src/debug/ModemManager-1.18.2-1.el9.x86_64/src/mm-base-modem-at.c:250
#6 0x00007ffff7951b62 in g_simple_async_result_complete (simple=0x5555557e5440 [GSimpleAsyncResult]) at ../gio/gsimpleasyncresult.c:802
#7 0x00005555556805dc in serial_command_ready (port=<optimized out>, res=<optimized out>, simple=simple@entry=0x5555557e5440 [GSimpleAsyncResult])
at /usr/src/debug/ModemManager-1.18.2-1.el9.x86_64/src/mm-port-serial-at.c:378
#8 0x00007ffff7951b62 in g_simple_async_result_complete (simple=0x5555557d6730 [GSimpleAsyncResult]) at ../gio/gsimpleasyncresult.c:802
#9 0x000055555567fb35 in command_context_complete_and_free (ctx=ctx@entry=0x7fffe800c200, idle=idle@entry=0) at /usr/src/debug/ModemManager-1.18.2-1.el9.x86_64/src/mm-port-serial.c:141
#10 0x0000555555682a96 in port_serial_got_response (self=0x5555557dd4e0 [MMPortSerialAt], parsed_response=0x0, error=0x5555557d5040)
at /usr/src/debug/ModemManager-1.18.2-1.el9.x86_64/src/mm-port-serial.c:755
#11 0x00005555556870d2 in parse_response_buffer (self=<optimized out>) at /usr/src/debug/ModemManager-1.18.2-1.el9.x86_64/src/mm-port-serial.c:934
#12 common_input_available (self=0x5555557dd4e0 [MMPortSerialAt], condition=(G_IO_NVAL | unknown: 0xf762a5c0)) at /usr/src/debug/ModemManager-1.18.2-1.el9.x86_64/src/mm-port-serial.c:1035
#13 0x00007ffff7778f9f in g_main_dispatch (context=0x5555557527c0) at ../glib/gmain.c:3337
#14 g_main_context_dispatch (context=0x5555557527c0) at ../glib/gmain.c:4055
#15 0x00007ffff77cd608 in g_main_context_iterate.constprop.0 (context=0x5555557527c0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4131
#16 0x00007ffff7778563 in g_main_loop_run (loop=0x55555576da60) at ../glib/gmain.c:4329
#17 0x00005555555b7b60 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/ModemManager-1.18.2-1.el9.x86_64/src/main.c:216
2021-10-03 13:13:21 +00:00
Aleksander Morgado
7c30471d94
ci: bump image template to refresh CA certificates
...
At the end of September 2021, Let's Encrypt's DST Root CA X3
certificate expired, and the new ISRG Root X1 took over.
Update the CI template so that the new certificate is available and we
can keep on cloning the libmbim/libqmi/libqrtr-glib repos without
failures.
2021-10-03 14:47:09 +02:00