Commit Graph

253 Commits

Author SHA1 Message Date
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
Aleksander Morgado
904adbfb5e build: do not require xsltproc when building from a release tarball
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/276
2020-11-08 10:09:32 +01:00
Aleksander Morgado
9397ed420d gosuncn: new plugin
For now, just with port type hints for the GM800 in MBIM mode.
2020-09-28 08:22:35 +00:00
Aleksander Morgado
6a3b7bdf95 build: set package bugreport to the gitlab issues URL 2020-09-18 10:31:32 +02:00
Aleksander Morgado
28ad994e37 sierra: XMM-specific features in XMM based modems (e.g. EM7345)
We create XMM-based modems like the EM7345 with XMM-specific features
like the AT+XLCSLSR based GNSS support. E.g.:

  $ mmcli -m a --location-status
    ------------------------
    Location | capabilities: 3gpp-lac-ci, gps-raw, gps-nmea, agps-msa, agps-msb
             |      enabled: 3gpp-lac-ci
             |      signals: no
    ------------------------
    GPS      | refresh rate: 30 seconds

  $ sudo mmcli -m a --location-enable-gps-nmea
  successfully setup location gathering

  $ sudo mmcli -m a --location-get
    --------------------------
    3GPP |      operator code: 214
         |      operator name: 7
         | location area code: 0000
         | tracking area code: 6FFE
         |            cell id: 0465CD20
    --------------------------
    GPS  |               nmea: $GPGSA,A,1,,,,,,,,,,,,,,,*1E
         |                     $GNGSA,A,1,,,,,,,,,,,,,,,,1*1D
         |                     $GNRMC,235951.000,V,,,,,,,,,,N,V*20
         |                     $GNVTG,,T,,M,,N,,K,N*32
         |                     $GNGGA,235951.000,,,,,0,0,,,M,,M,,*5F

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/25
2020-08-10 19:38:38 +02:00
Aleksander Morgado
711b17278e build: require 5G signal info support from libqmi 1.27.1 2020-07-04 05:50:41 +02:00
Aleksander Morgado
62956b5c7a build: post-release version bump to 1.15.0 2020-06-23 14:22:39 +02:00
Aleksander Morgado
5f20662aeb release: bump version to 1.14.0 2020-06-23 14:06:03 +02:00
Aleksander Morgado
5cbeeb1b99 build: require libqmi 1.26.0 2020-06-20 12:05:18 +02:00
Aleksander Morgado
54de41928b build: require libmbim 1.24.0 2020-06-18 10:58:14 +02:00