aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-02-17modem-cellinfo: adding bandwidth and serving cell typesom
adding bandwidth information in mm-dbus interface for the serving cell. In serving cell, the details on whether the pcell/scell are from MCS or SCG is also updated. Co-author: Shilpa Shivakumar
2023-02-17cli,output: coding style fixesAleksander Morgado
2023-02-17cli,output: print valid json for network scan resultFlorian Eckert
A network scan with json output currently returns the following: root@G3-10940 ~ # mmcli -m 0 -J --3gpp-scan --timeout=300 | jq { "modem": { "3gpp": { "scan-networks": [ "operator-code: 26201, operator-name: TDG, access-technologies: lte, availability: forbidden", "operator-code: 26203, operator-name: o2 - de, access-technologies: lte, availability: forbidden", "operator-code: 26202, operator-name: vodafone.de, access-technologies: lte, availability: current" ] } } } This is a valid JSON, but in order to be able to access the individual data elements more easily, the line can also be dumped as a json object. The following commit converts the lines into a JSON obejct, so that it looks like this: root@G3-10940 ~ # mmcli -m 0 -J --3gpp-scan --timeout=300 | jq { "modem": { "3gpp": { "scan-networks": [ { "operator-code": "26201", "operator-name": "TDG", "access-technologies": "lte", "availability": "forbidden" }, { "operator-code": "26203", "operator-name": "o2 - de", "access-technologies": "lte", "availability": "forbidden" }, { "operator-code": "26202", "operator-name": "vodafone.de", "access-technologies": "lte", "availability": "current" } ] } } } Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2023-02-15iface-modem-3gpp: enable reading of IMEI in FAILED stateMichal Mazur
It was not possible to read IMEI of modem when SIM was not inserted or initialization failed due to modem facility locks. To load IMEI, the 3gpp interface need to be initialized before going to FALLBACK_LIMITED.
2023-02-12build: allow installing examples to be disabledAlyssa Ross
In Nixpkgs, sysconfdir is not writeable in the sandbox in which packages are built, so it's important for us to be able to disable installing example files. (We create configuration files and install them into /etc separately through our "module system".) Signed-off-by: Alyssa Ross <hi@alyssa.is>
2023-02-06mm-broadband-modem-qmi: update signal values while processing NAS signal ↵Akash Aggarwal
info indication
2023-02-03mm-iface-modem-3gpp: reject unspecified values for 5G reg settingsEric Caruso
It seems like users can put the "unsupported" value for both DRX cycle and MICO mode, so we should reject that.
2023-02-03qmi: implement GetCellInfo for LTE, NROliver Kästner
2023-01-30telit: fallback to AT commands in case of MBIM loading revision failureDaniele Palmas
Some firmware versions return an empty string for the revision when using the device caps MBIM request, so use AT commands as a fallback in case this happens.
2023-01-30telit: increase initial delay for AT portsDaniele Palmas
FN990 requires more time for the AT ports to become responsive, so increase the initial delay up to 40 seconds.
2023-01-30telit: add port type hints for FN990 0x1070, 0x1071 compositionsDaniele Palmas
2023-01-30telit: add shared support for 5G modesDaniele Palmas
2023-01-27build: unstable release version bump to 1.21.3Aleksander Morgado
2023-01-23broadband-modem-qmi: don't fail on power indication registration errorLouis-Alexis Eyraud
This commit modifies the QMI DMS Operating Mode indication registration logic. During the power sequence chance, if a QMI_PROTOCOL_ERROR_MISSING_ARGUMENT error was returned in "DMS Set Event Report" operation for Operating Mode Reporting failed, the whole sequence was aborted, leading the modem to be disabled. <debug> [modem0] Power indication registration request is sent ... <debug> [modem0] couldn't update power state: Couldn't register for power indications: QMI protocol error (17): 'MissingArgument' <warn> [modem0] couldn't enable interface: 'Couldn't register for power indications: QMI protocol error (17): 'MissingArgument'' <debug> [modem0] running implicit disable after failed enable... This commit modifies the logic to properly detect the failure and continue the sequence without the indications. Fixes #683 Signed-off-by: Louis-Alexis Eyraud <louis-alexis.eyraud@unabiz.com>
2023-01-22build: fix a typo in meson_options doc stringLubomir Rintel
Now it's perfect!
2023-01-20bearer-qmi: fix a mnc/mcc typoLubomir Rintel
Makes my compiler unhappy: [471/539] Compiling C object src/ModemManager.p/mm-bearer-qmi.c.o ../src/mm-bearer-qmi.c: In function ‘process_operator_reserved_pco’: ../src/mm-bearer-qmi.c:580:18: warning: logical ‘and’ of equal expressions [-Wlogical-op] 580 | if (!tmp_mcc && !tmp_mcc && !container_id && !array->len) | ^~ Fixes: f4b8d14b8d2d ('bearer-qmi: explicitly ignore PCOs with undefined contents:')
2023-01-18broadband-modem-mbim,qmi-shared: Fallback from qmi uim service only when not ↵Ulrich Mohr
supported When using qmi uim service from mbim broadband modem, a fallback from using qmi uim service to normal mbim operations is done every time a call to qmi_set_primary_sim_slot fails. But this may fall for various reasons, and a fallback only makes sense when the device does not support that call Patch reworked by Aleksander Morgado <aleksandermj@chromium.org>
2023-01-18cli: add formating option (json and key/value) for created SMSFrederic Martinsons
Fixes #657 Signed-off-by: Frederic Martinsons <frederic.martinsons@gmail.com>
2023-01-18build: enable GLib deprecation warningsLubomir Rintel
These were disabled to avoid a large spew of deprecation warnings post GLib 2.44. That might have been too big a hammer, because it made us miss us of API from newer GLib than we require. Let's re-enable the warnings and lower the bottom bound instead. That way we're get warned about use of API that's too new and also be warned about things that was deprecated long long ago. We may miss things that got deprecated in favor of better API after 2.44, but that's unlikely to be an issue and is definitely better than ignoring everything altogether.
2023-01-18libmm-glib,common-helpers: undeprecate g_date_time_format_iso8601()Lubomir Rintel
Avoid a deprecation warning with too new glib: ../libmm-glib/mm-common-helpers.c: In function ‘date_time_format_iso8601’: ../libmm-glib/mm-common-helpers.c:1729:5: warning: ‘g_date_time_format_iso8601’ is deprecated: Not available before 2.62 [-Wdeprecated-declarations] 1729 | return g_date_time_format_iso8601 (dt); | ^~~~~~ This call site is protected by version guards and provides an alternative implementation in date_time_format_iso8601().
2023-01-18libmm-glib,common-helpers: avoid using g_time_zone_new_offset()Lubomir Rintel
It requires newer glib than we do: ../libmm-glib/mm-common-helpers.c: In function ‘mm_new_iso8601_time’: ../libmm-glib/mm-common-helpers.c:1787:9: warning: ‘g_time_zone_new_offset’ is deprecated: Not available before 2.58 [-Wdeprecated-declarations] 1787 | tz = g_time_zone_new_offset (offset_minutes * 60); | ^~ In file included from /usr/include/glib-2.0/glib/gdatetime.h:33: /usr/include/glib-2.0/glib/gtimezone.h:67:25: note: declared here 67 | GTimeZone * g_time_zone_new_offset (gint32 seconds); | ^~~~~~~~~~~~~~~~~~~~~~ Let's not use the routine with older versions of glib.
2023-01-18broadband-modem-mbim: Sync state of sim_hot_swap_configured variableMichal Mazur
2023-01-18broadband-modem-mbim: Fix bug in cleanup_unsolicited_events_3gpp()Michal Mazur
2023-01-16bearer-qmi: explicitly ignore PCOs with undefined contents:Aleksander Morgado
There is nothing to process in this kind of PCO fields: <<<<<< TLV: <<<<<< type = "Operator Reserved PCO" (0x2f) <<<<<< length = 8 <<<<<< value = 00:00:00:00:00:00:00:00 <<<<<< translated = [ mcc = '0' mnc = '0' mnc_includes_pcs_digit = 'no' app_specific_info = '{}' container_id = '0' ] Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/690
2023-01-16bearer-qmi: app specific info in PCO may be emptyAleksander Morgado
ModemManager[562783]: <err> [1673538458.350130] mm_utils_bin2hexstr: assertion 'bin != NULL' failed ModemManager[562783]: <dbg> [1673538458.350167] [modem0/bearer0] container ID: 0 ModemManager[562783]: <dbg> [1673538458.350201] [modem0/bearer0] app specific info: (null) Treat it better by only trying to build the app specific info string if there are contents in the array.
2023-01-12bearer-qmi: fix pco array declarationDaniele Palmas
2023-01-11sim-mbim: Reset cached SIM info when SIM is unlockedMichal Mazur
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/684
2023-01-11broadband-modem-qmi: ignore our own profile changed indicationsAleksander Morgado
The device may emit a "WDS Profile Changed" indication triggered from our own "WDS Modify Profile", "WDS Create Profile" or "WDS Delete Profile" operations, so ensure those are fully ignored so that we don't emit the "Updated" signal in the ProfileManager interface. The logic keeps track of the amount of concurrent operations so that the signal is ignored for as long as there is at least one operation running. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/687
2023-01-10build: fix dependency on daemon enums required by pluginsAleksander Morgado
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/686
2023-01-09build: set LD_LIBRARY_PATH along with GI_TYPELIB_PATH when launching stubFrederic Martinsons
Otherwise we may use a wrong typelib shared library (the one that is installed on the system which run the test) Signed-off-by: Frederic Martinsons <frederic.martinsons@gmail.com>
2023-01-03ci: build single plugins also in main and tagsAleksander Morgado
2023-01-03ci: list of plugins from meson configuration itselfAleksander Morgado
2023-01-03ci: update image with gawk and without autotoolsAleksander Morgado
2023-01-03ci: fix enabling qmi/mbim/qrtr support in single-plugin testsAleksander Morgado
2023-01-03ci: fix disabling introspection in single-plugin testsAleksander Morgado
2023-01-03ci: run suspend-resume build tests also in master and tagsAleksander Morgado
2023-01-03ci: use YAML anchor to setup dependenciesAleksander Morgado
2023-01-03ci: add tests for builtin pluginsAleksander Morgado
2023-01-03build: new option to build plugins within the daemon binaryAleksander Morgado
Instead of creating libmm-plugin* and libmm-shared* libraries that are dlopen()-ed on runtime, allow incorporating all plugins into the daemon binary itself. This makes the startup of the daemon much faster and also avoids issues with builds that require linker namespace isolation. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/674
2023-01-03plugins: setup new helper macros to define shared utilsAleksander Morgado
2023-01-03plugins: setup new helper macros to define pluginsAleksander Morgado
We also remove the plugin headers completely as they are not really required anywhere.
2023-01-03plugin-manager: don't crash when loading an invalid shared utils libraryAleksander Morgado
<wrn> [plugin-manager] could not load shared '/usr/lib/ModemManager/libmm-shared-xmm.so': Missing major version info Thread 1 "ModemManager" received signal SIGSEGV, Segmentation fault. 0x000055555562b79d in load_external_shared (path=<optimized out>, self=0x5555557b5880) at ../src/mm-plugin-manager.c:1885 1885 if (module && !(*shared_name)) (gdb) p module $1 = (GModule *) 0x5555557b9670 (gdb) p shared_name $2 = (const gchar **) 0x0
2023-01-03plugins: don't include daemon enums sourcesAleksander Morgado
2023-01-03build: compile plugins before daemonAleksander Morgado
2023-01-03build: fix missing module name in shared option utilsAleksander Morgado
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.
2023-01-03log: avoid redefining MM_MODULE_NAMEAleksander Morgado
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-20base-modem: don't assume ports tables always existAleksander Morgado
The 'link_ports' and 'ports' tables are created during object init(), but they are fully removed and cleared during dispose(). Given that the MMDevice executes an explicit g_object_run_dispose(), there may be cases where a long-running operation that isn't cancelled ends up being completed by the time the object disposal has already run at least once. That would end up crashing the process if we attempt to e.g. iterate over one of the ports hash tables: 0x00007c3594eb3b93 (libglib-2.0.so.0 - ghash.c: 1180) g_hash_table_iter_next 0x00005b60d86f2563 (ModemManager - mm-base-modem.c: 1133) mm_base_modem_get_port_infos 0x00005b60d870228e (ModemManager - mm-iface-modem.c: 4013) fcc_unlock 0x00007c35950126a8 (libgio-2.0.so.0 - gtask.c: 1230) g_task_return_now 0x00007c35950116fa (libgio-2.0.so.0 - gtask.c: 1300) g_task_return 0x00007c3595011d12 (libgio-2.0.so.0 - gtask.c: 1930) g_task_return_new_error 0x00005b60d87518f2 (ModemManager - mm-broadband-modem-mbim.c: 1970) radio_state_set_up_ready 0x00007c35950126a8 (libgio-2.0.so.0 - gtask.c: 1230) g_task_return_now 0x00007c35950116fa (libgio-2.0.so.0 - gtask.c: 1300) g_task_return 0x00007c35950c486c (libmbim-glib.so.4 - mbim-device.c: 253) transaction_task_complete_and_free 0x00007c35950c714b (libmbim-glib.so.4 - mbim-device.c: 335) transaction_timed_out 0x00007c3594ec1232 (libglib-2.0.so.0 - gmain.c: 4971) g_timeout_dispatch 0x00007c3594ec43fc (libglib-2.0.so.0 - gmain.c: 3417) g_main_context_dispatch 0x00007c3594ec4704 (libglib-2.0.so.0 - gmain.c: 4211) g_main_context_iterate 0x00007c3594ec4978 (libglib-2.0.so.0 - gmain.c: 4411) g_main_loop_run 0x00005b60d86d7c56 (ModemManager - main.c: 217) main 0x00007c3594c526c5 (libc.so.6 + 0x000286c5) __libc_init_first 0x00007c3594c52781 (libc.so.6 + 0x00028781) __libc_start_main 0x00005b60d86d7970 (ModemManager + 0x00061970) _start Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/677 Change-Id: I6695c284f86a196e60de7f714bc1671332d08848