Commit Graph

262 Commits

Author SHA1 Message Date
Rukun Mao
3da84c2079 suspend: add suspend/resume support with powerd on ChromeOS
ModemManager handles suspend and resume signals sent from powerd

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/547
2022-06-09 08:32:13 +00:00
Thilo-Alexander Ginkel
ac06052b97 fcc-unlock: add support for new Lenovo T99W175 SDX55 FCC unlock method
Tested w/ Lenovo firmware T99W175.F0.1.0.0.9.DT.003.055 (old unlock method) and
T99W175.F0.1.0.0.9.DT.003.079 (new unlock method)
2022-05-30 23:29:36 +02:00
som
1e08f9ca2c mm-log: hiding personal info while logging
During mm logging, some of the information like simIccId, Telephone
numbers need to be hidden from displaying in the logs to protect
some of the user information.

Implemented for MBIM requiring libmbim 1.27.6, which is the
development version that includes the needed API.
2022-04-20 15:20:34 +02:00
Aleksander Morgado
7960b365d5 data: add example connection dispatcher
Just a minimal example that prints the events in syslog
2022-04-05 08:14:53 +00:00
Aleksander Morgado
99232154b3 build: rename directory where fcc unlocks are kept 2022-04-05 08:14:53 +00:00
Aleksander Morgado
8d0d90a6dd build: require libqmi 1.31.4 for FOX service support 2022-03-28 08:06:10 +00:00
Aleksander Morgado
c74a377f98 fibocom: new shared interface for common logic
The set_initial_eps_bearer_settings() operation is the same in XMM
capable and generic MBIM modem objects. Place it in a common shared
interface so that we don't duplicate code.
2022-03-09 22:05:32 +00:00
som
40c791e293 intel: new plugin for PCI devices with vendor id 0x8086
For now, just detecting the device and creating generic MBIM or AT
based modems.
2022-03-07 09:51:43 +00:00
Aleksander Morgado
cfbbbdfbaa build: require libqmi 1.31.3
In order to use the new methods that avoid intermediate structs like
QmiConfigTypeAndId.
2022-02-28 21:54:24 +01:00
Aleksander Morgado
a7e579cd7b meson,data: generate test service file
The test service file is used in the test-plugin-generic unit tests,
which require the ModemManager daemon to be launched in a private test
DBus session.
2022-02-16 00:11:35 +01:00
Aleksander Morgado
683270f403 build: version bump to flag existence of new API (sahara fw update) 2022-01-31 14:21:15 +01:00
Ivan Mikhanchuk
22e38199a9 quectel: combine firmware functions in mm-shared-quectel 2022-01-18 10:36:15 +01:00
Aleksander Morgado
e7a6bb7504 data,fcc-unlock: add example unlock scripts
Added scripts for Foxconn SDX55, Quectel EM120, and several old Sierra
Wireless manufactured devices:
 * Installed but not used by default, the user needs to setup manual
   links from ${pkgdatadir}/fcc-unlock.available.d, to
   ${pkgsysconfdir}/fcc-unlock.d in order to enable them.
 * Installed with rights only for the owner, so that the dispatcher in
   ModemManager can validate them.
 * They rely on $PATH to find the qmicli/mbimcli tools.

In addition to these scripts, per-vid:pid links are created in the
same ${pkgdatadir}/fcc-unlock.available.d directory, specifying which
are the specific devices that require the FCC unlock operation.

This patch also creates the ${pkgsysconfdir}/fcc-unlock.d and
${pkglibdir}/fcc-unlock.d directories where ModemManager looks for the
enabled tools.

Note that the meson setup doesn't support creating/deleting links
officially yet, so we use a workaround using meson.add_install_script
that is not perfect (i.e. doesn't handle the symlink removal during
uninstall). See https://github.com/mesonbuild/meson/issues/1602
2021-11-18 11:20:41 +01:00
Aleksander Morgado
81302efa66 iface-modem: use external dispatcher to attempt FCC unlock
We remove the built-in FCC unlock procedures from the ModemManager, we
will no longer run them automatically, and instead rely on external
scripts/programs to do that.

Packages providing the external FCC unlock tools can install them in
${pkglibdir}/fcc-unlock.d.

Users manually enabling external FCC unlock tools can install them in
${pkgsysconfdir}/fcc-unlock.d.

The user-enabled path takes precedence over the package-enabled one.
2021-11-17 11:30:01 +01:00
Prakash Pabba
2e4bba105e build,meson: bump libqmi version to 1.31.2
In order to be able to use new 5GNR apis.
2021-11-11 18:21:52 +05:30
Aleksander Morgado
4157926a92 build: require libmbim 1.27.3
In order to be able to use the new MS defined context types.
2021-11-03 10:39:35 +01:00
Aleksander Morgado
fb97b0756b build: bump libmbim version to use NO_ESIM_PROFILE 2021-10-13 11:14:08 +02: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
Shawn Guo
57eb239089 build: enable qcom-soc plugin by default
As people are running distros like Debian, Archlinux, Fedora, etc., on
laptops powered by Qualcomm Snapdragon SoCs, e.g. Lenovo Yoga C630, it
makes sense to enable qcom-soc plugin by default, so that MM aarch64
package can be built by those distros more easily.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2021-09-17 04:18:43 -04:00
Aleksander Morgado
822b3acbae build: post-release version bump to 1.19.0 2021-09-09 11:22:42 +02:00
Aleksander Morgado
4ccbfcd016 release: bump to 1.18.0 2021-09-08 11:59:06 +02:00
Aleksander Morgado
64f18f036b build: require libqmi 1.30.2
We need the new "Get All Call Info" request support.
2021-09-08 11:57:59 +02:00
Aleksander Morgado
ccc7989324 examples: new SMS sending example in C using the sync API 2021-09-08 11:21:45 +02:00
Aleksander Morgado
c04b43a67e build: bump version to 1.17.900 (1.18-rc1) 2021-08-09 23:04:05 +02:00
Aleksander Morgado
30e94927e7 build: require libqmi 1.30.0 2021-08-09 22:48:06 +02:00
Aleksander Morgado
55fd225be8 build: require libmbim 1.26.0 2021-08-09 22:48:06 +02:00
Joel Selvaraj
99ba7ee266 build: bump libqmi requirement to support voice supplementary services 2021-08-02 13:11:29 +00:00
Aleksander Morgado
9d31113edb build: bump libmbim requirement to support DSSA operations 2021-07-14 15:14:18 +02:00
Aleksander Morgado
4c5733e49b build: version bump to flag existence of new API (firehose fw update) 2021-06-16 21:23:27 +02:00
Aleksander Morgado
9fdbbc6929 foxconn: setup FCC unlock step
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-23 00:23:17 +02:00
Teijo Kinnunen
1147d376cd shared-qmi: set MNC PCS digit for manual network registration
Set the MNC PCS digit status when attempting to register to a network
with 3 digit MNC and MNC < 100.
2021-05-17 12:46:52 +03:00
Aleksander Morgado
973b1bdec8 broadband-modem-mbim: use the new 'LTE attach info' message name
The older 'LTE attach status' message name is deprecated.
2021-05-03 23:58:55 +00:00
Aleksander Morgado
0a7bfcfb42 build: require glib 2.56
When using glib < 2.55.1 there was a bug in GLib triggering a huge
amount of memory leaks in the normal ModemManager runtime. This has
caused multiple issues in multiple setups, and so the best way to make
sure it no longer happens is to require 2.56.

The 2.56.0 glib version is also the one provided by Ubuntu 18.04 LTS,
and so we can now say that this LTS release is the last one we support
in newer MM releases. The previous Ubuntu 16.04 LTS is already out of
the standard 5-year support.
2021-04-30 11:05:42 +00:00
Aleksander Morgado
c330d44343 build: version bump to flag existence of new API (QDU fw update) 2021-04-30 10:45:14 +02:00
Aleksander Morgado
865014510a broadband-modem-qmi: implement profile management support 2021-04-29 10:13:22 +00:00
Aleksander Morgado
1051dd162c build: require libmbim 1.25.3
Including the latest QDU service enum value.
2021-04-28 21:56:25 +02:00
Aleksander Morgado
866c1d4ab6 build: look for libqrtr-glib with pkg-config
The WITH_QRTR symbol in config.h will let us know both if libqrtr-glib
is found and if libqmi-glib is compiled with QRTR support (as per the
exposed "qmi_qrtr_supported" variable in pkg-config).
2021-04-14 10:35:06 +02:00
Aleksander Morgado
16ade1c5d2 build: require libgudev 232 to include autoptr support
The code in git master already relies on autoptr support in GUdev
types, which was introduced in commit 272533131c6ed38479a88805,
included in libgudev 232.

See https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/349
2021-03-23 15:26:32 +01:00
Aleksander Morgado
340fa919d9 build: require libmbim 1.25.2 for multiplex support 2021-03-17 09:36:53 +01:00
Teijo Kinnunen
74599e695b sim-qmi,libmm-glib: QMI implementation of get/set preferred networks 2021-03-12 10:42:37 +02:00
Aleksander Morgado
496c4e30e9 broadband-modem-qmi: enable network reject indications
We will issue warnings in the log whenever a network reject indication
is received.
2021-03-02 14:38:35 +01:00
Aleksander Morgado
19e5d5f926 build: post-release version bump to 1.17.0 2021-02-23 12:20:53 +01:00
Aleksander Morgado
7a5a49b753 release: bump version to 1.16.0 2021-02-23 11:35:50 +01:00
Aleksander Morgado
bbd3638d12 build: require libqmi 1.28.0 2021-02-23 11:22:50 +01:00
Frederic Martinsons
89cd1696c3 tools: add unit test for test-modemmanager-service.py
The tests spawn the service via GTestDBus framework and make
some test API call while checking libmm interface to verify
that informations are well propagated.

To be able to use the fresh built libmm typelib, I used a
wrapper script to set GI_TYPELIB_PATH (because DBus activation
process clean the environment so it is not possible to set
it directly in the file).

This requires also the install of libgirepository-dev and python3-gi
in the CI docker.

Signed-off-by: Frederic Martinsons <frederic.martinsons@sigfox.com>
2021-01-15 16:44:19 +00:00
Aleksander Morgado
7b52efda34 build: require libqmi 1.27.3 to support initial EPS management 2020-12-21 12:05:57 +00:00
Dylan Van Assche
756894bc76 build: Allow elogind for suspend/resume support 2020-11-27 18:07:02 +01:00
Aleksander Morgado
65560dd885 build: qcom-soc plugin by default disabled
It will not be automatically enabled by the implicit
--enable-all-plugins; instead, it must be explicitly enabled with
--enable-plugin-qcom-soc.

This plugin only makes sense under very specific SoC builds, so there
is no point in always building it by default. It should be explicitly
requested only in those SoC builds that are really going to make use
of it (e.g. postmarketOS).
2020-11-20 09:24:51 +00:00
Aleksander Morgado
8fc60754dd qcom-soc: new plugin for Qualcomm SoCs
This plugin implements support for old Qualcomm SoCs like the MSM8916
or the MSM8974, where:
 * control ports are available via RPMSG channels exported as devices
   e.g. with rpmsgexport:
   https://github.com/andersson/rpmsgexport
 * network ports are exposed by the bam-dmux kernel driver:
   https://github.com/msm8916-mainline/linux/commits/bam-dmux

Adding support for newer Qualcomm SoCs (e.g. QRTR+IPA) could be done
in a similar way on this very same plugin.

This plugin is the first and only one that implements support for a
modem device that is "built in" the system, as opposed to external
modems that may be available via USB or PCI.

The ID_MM_PHYSDEV_UID based udev tags provided by the plugin provide
the logic to bind all the SoC ports together in the same modem object,
and therefore ID_MM_PHYSDEV_UID should not be used by users to
override the ones set by the plugin.

All "rpmsg[0-9]*" ports that are considered part of the modem are
flagged as candidate, ignoring the parent "rpmsg_ctrl[0-9]*" ports on
purpose. This setup therefore assumes that the channels have been
exported already as devices (e.g. using rpmsgexport).

libqmi 1.27.2 is required to support the "WDS Bind Data Port" message.
2020-11-20 09:24:51 +00:00
Frederic Martinsons
519df2544b tools: add new system daemon stub tester application
This script mock some of ModemManager DBus interfaces (main object, Modem, Sim),
it also adds a test interface "org.freedesktop.ModemManager1.LibmmGlibTest"
which allow to inject some errors and simulate behavior:
  - Add a modem object
  - Emit modem state changed
  - Set modem error

This script also add the possibility to log in a file for debugging purpose.
Because the stdout/stderr are not shown when the program is spawned by DBus
auto activation.

Note: Script is heavily inspired from test-networkmanager-service.py from
NetworkManager project

Signed-off-by: Frederic Martinsons <frederic.martinsons@sigfox.com>
2020-11-12 18:34:59 +01:00