Commit Graph
9511 Commits
Author SHA1 Message Date
Dan Williams 50759a2e52 Merge request !1440 from 'dco'
ci: Add build_container as a dependency of verify_dco job

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1440
2026-05-12 11:50:20 -05:00
Sebastian Krzyszkowiak 4a33e408e3 ci: Add build_container as a dependency of verify_dco job
Otherwise it fails for first contributions.

Signed-off-by: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
2026-05-12 11:47:32 -05:00
Aleksander Morgado 74159e05e2 Merge request !1447 from 'fix-rolling-single-plugin-build'
rolling: fix single plugin build

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1447
2026-04-22 16:40:36 +02:00
Aleksander Morgado 44330936c6 rolling: fix single plugin build
The MTK specific modem object should be included in the 'mtk' shared
utils, so that they're available to other plugins.

Signed-off-by: Aleksander Morgado <aleksandermj@google.com>
2026-04-22 14:27:38 +00:00
Aleksander Morgado d111c242c9 Merge request !1436 from 'mtk_support'
Rolling: Add modifications related to the rw350-usb project

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1436
2026-04-22 12:34:56 +02:00
xuhongxing b10139f96b Rolling: Add modifications related to the rw350-usb project
1.Modify rule files for the 33f8/0802 MI interface
2.Modify the rolling plugin code to share and reuse code from the mtk plugin

T: Bus=02 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#= 5 Spd=5000 MxCh= 0
D: Ver= 3.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 1
P: Vendor=33f8 ProdID=0802 Rev=00.01
S: Manufacturer=Rolling Wireless S.a.r.l.
S: Product=USB DATA CARD
C: #Ifs=10 Cfg#= 1 Atr=a0 MxPwr=896mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim
E: Ad=82(I) Atr=03(Int.) MxPS= 64 Ivl=32ms
I: If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
E: Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=83(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I: If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=84(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I: If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=04(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=85(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I: If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=usbfs
E: Ad=05(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=86(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I: If#= 6 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=06(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=87(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I: If#= 7 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=07(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=88(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I: If#= 8 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=08(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=89(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I: If#= 9 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=09(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=8a(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms

Signed-off-by: xuhongxing <James.Xu@fibocom.com>
2026-04-22 18:26:57 +08:00
Aleksander Morgado fa32b5e1e9 Merge request !1445 from 'fix-qmi-wds-enum-missing'
modem-helpers-qmi: add missing QMI_WDS_PDP_TYPE_NON_IP check

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1445
2026-04-15 15:01:23 +02:00
Aleksander Morgado b6d53915a6 port-qmi: add missing QMI_DATA_ENDPOINT_TYPE_ETHERNET
Fixes build with latest libqmi.

Signed-off-by: Aleksander Morgado <aleksandermj@google.com>
2026-04-15 12:54:09 +00:00
Aleksander Morgado c34b326709 modem-helpers-qmi: add missing QMI_WDS_PDP_TYPE_NON_IP check
Fixes build with latest libqmi.

Signed-off-by: Aleksander Morgado <aleksandermj@google.com>
2026-04-15 12:46:28 +00:00
Dan Williams e5ce798783 Merge request !1432 from 'cbm-pad'
mm-cbm-part: Try harder to convert message text

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1432

Closes #1042
2026-03-24 21:01:05 -05:00
Guido Günther b59e0acb08 mm-cbm-part: Try harder to convert message text
Current cell broadcast messages from missile warnings in Israel
have an addition `00` at the end to pad for an even byte number.

This breaks conversion making the whole message fail conversion. As this
is a 15 part message in 3 languages the whole notification is lost in
this case.

Try harder to convert the message and recover even partial bits.

Closes: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/1042
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2026-03-24 20:53:23 -05:00
Dan Williams eae9ed5485 Merge request !1435 from 'upstream-TX62-W-C-support'
plugins: cinterion: add new USB interface number for TX62-W-C modem

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1435
2026-03-24 12:59:08 -05:00
Lorenzo Medici 49fb75cd94 cinterion: add USB interface number 0x05 for TX62 modem
Signed-off-by: Lorenzo Medici <lorenzo.medici@canonical.com>
2026-03-20 16:24:04 +02:00
Aleksander Morgado 8053db6cc0 Merge request !1426 from 'id-mm-typos'
api,doc: fix a typo in 'Modem.Device' documentation

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1426
2026-02-03 12:01:53 +01:00
Aleksander Morgado d8a01479ed api,doc: fix a typo in 'Modem.Device' documentation
Originally reported by Lubomir Rintel.

Signed-off-by: Aleksander Morgado <aleksandermj@google.com>
2026-02-03 11:59:32 +01:00
Aleksander Morgado 66e72979a1 Merge request !1423 from 'local1'
rolling: update RW101 port type hints

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1423
2026-02-03 11:53:53 +01:00
Wenbin 387c41cb04 rolling: update RW101 port type hints
The port type hints for the RW101-cat6 and RW101-cat12 have been
updated, with USB interface #2 now designated as both the AT primary
port and fastboot port.

Signed-off-by: Wenbin <ywbjob@163.com>
2026-02-03 11:49:42 +01:00
Aleksander Morgado 1fc9059407 Merge request !1425 from 'dp/port-hints'
Port hints for various Telit modems

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1425
2026-02-03 10:58:52 +01:00
Daniele Palmas aa2aa54748 telit: add port hints for FN990B40 rmnet and MBIM compositions
Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
2026-01-30 16:09:01 +01:00
Daniele Palmas 6131303fb2 telit: add port hints for FE910C04 rmnet and MBIM compositions
Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
2026-01-30 16:08:37 +01:00
Daniele Palmas c1386905f3 telit: add port hints for FE990B40 rmnet and MBIM compositions
Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
2026-01-30 16:08:12 +01:00
Daniele Palmas 8f4e8bd24c telit: add port hints for FN920C04 rmnet and MBIM compositions
Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
2026-01-30 16:07:52 +01:00
Dan Williams 089d0e3353 Merge request !1418 from 'feat/inject-time-position'
shared-qmi: handle inject time and inject position requests from the modem

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1418
2026-01-09 17:20:44 -06:00
Andrey Skvortsov c0f0c02ac1 tests: add tests for location-cache
only GGA NMEA sentences are supported by current implementation of
MMLocationGpsRaw. RMC and GLL messages are added, but currently test
are negative.

Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
2026-01-10 02:04:10 +03:00
Andrey Skvortsov 8b6116fe6c shared-qmi: handle inject position requests from the modem
To be able to have quick position fix GNSS engine needs to know
 - predicted orbits data,
 - current time,
 - approximate position.
Modem sends indications with requests, when it needs corresponding
information. Predicted orbits can be injected using
'mmcli -m any --location-inject-assistance-data=<file>'. But to
accelerate time to first fix after cold start extra information is
needed like time and coarse position.

Inject position requests are received, when GPS session is initiated
using QMI_LOC_START. In inject position request modem sends
information about its last known position. If last known position is
zero, when this is a cold start and inject position is needed to
improve TTFF.
Last position from the modem is cached in ModemManager and is injected
next time, when modem requests it. For example, if modem is restarted.

When timestamp on injected position is too old, than position is
ignored and location engine does cold start. Therefore current time is
used for injected position.

When injected position is far away the actual one (for example, after
flight), after some time location engine falls back to cold start.

Tested on Quectel EG25-G.

Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
2026-01-10 02:04:10 +03:00
Andrey Skvortsov a108a0fe7c build: Fix meson deprecation warnings
following warnings are fixed:
Dependency udev found: YES 258 (cached)
../meson.build:202: WARNING: Project targets '>= 0.60.0' but uses
   feature deprecated since '0.56.0':
   dependency.get_pkgconfig_variable. use
   dependency.get_variable(pkgconfig : ...) instead
Dependency systemd found: YES 258 (cached)
../meson.build:212: WARNING: Project targets '>= 0.60.0' but uses
   feature deprecated since '0.56.0':
   dependency.get_pkgconfig_variable. use
   dependency.get_variable(pkgconfig : ...) instead
Dependency libsystemd found: YES 258 (cached)
Dependency polkit-gobject-1 found: YES 126 (cached)
../meson.build:245: WARNING: Project targets '>= 0.60.0' but uses
   feature deprecated since '0.56.0':
   dependency.get_pkgconfig_variable. use
   dependency.get_variable(pkgconfig : ...) instead
Dependency mbim-glib found: YES 1.32.0 (cached)
Dependency qmi-glib found: YES 1.37.1 (cached)
../meson.build:302: WARNING: Project targets '>= 0.60.0' but uses
   feature deprecated since '0.56.0':
   dependency.get_pkgconfig_variable. use
   dependency.get_variable(pkgconfig : ...) instead

Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
2026-01-10 02:04:10 +03:00
Andrey Skvortsov 8ac3dfb955 location-cache: add class to store cached location
This class allows to preserve cached position across ModemManager restarts.
Cached location can be used to improve time to first fix after device
start by injecting coarse position into location engine. Since there
wasn't any fix yet, position in ModemManager is unknown. To fix this
cached location is saved on disk (/var/lib/ModemManager/location.ini)
when location session is stopped or ModemManager is stopped and loaded
on the next start from the file.

install_emptydir is introduced in meson 0.60.

Distributions has to create directory to store cached location in
packaging, because ModemManager runs under systemd isolation with
limited rights and it can't create this directory by itself.

Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
2026-01-10 02:04:10 +03:00
Andrey Skvortsov 81101b0147 shared-qmi: handle inject time requests from the modem
To be able to have quick position fix GNSS engine needs to know
 - predicted orbits data,
 - current time,
 - approximate position.
Modem sends indications with requests, when it needs corresponding
information. Predicted orbits can be injected using
'mmcli -m any --location-inject-assistance-data=<file>'. But to
accelerate time to first fix after cold start extra information is
needed like time and coarse position. This commit injects UTC time.

UTC time inject requests are received, when GPS session is initiated
using QMI_LOC_START.

Tested on Quectel EG25-G.

Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
2026-01-10 02:04:10 +03:00
Dan Williams 90e71e2817 Merge request !1420 from 'uml290-network-time-broken'
broadband-modem,pantech: network time broken on UML290

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1420
2026-01-09 06:04:21 -06:00
Dan Williams 061a9956d0 broadband-modem,pantech: network time broken on UML290
UML290 with firmware L0290VWBB12F.248 doesn't support QMI network
time and crashes when asked for AT network time too quickly after
being plugged in.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2026-01-09 05:59:17 -06:00
Dan Williams 314b6e7761 Merge request !1422 from 'ci-ubuntu-2204'
ci: bump Ubuntu version in CI image for meson >= 0.56 for libqmi

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1422
2026-01-05 22:39:00 -06:00
Dan Williams 0636260a39 ci: bump Ubuntu version in CI image for meson >= 0.56 for libqmi
Latest libqmi requires meson 0.56 or later, which 22.04 has.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2026-01-05 22:36:47 -06:00
Dan Williams 61e2f69d48 Merge request !1415 from 'release-1.25.95'
release: bump version to 1.25.95

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1415
2025-11-24 23:58:16 -06:00
Dan Williams e12e1f4183 release: bump version to 1.25.95
Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-11-24 23:55:56 -06:00
Dan Williams 5ca95a64ab Merge request !1410 from 'dp/initial-qmap-mux-id'
port-qmi: allow setting initial mux-id value when using rmnet multiplexing

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1410
2025-11-24 23:53:56 -06:00
Daniele Palmas 4678f3226e telit: add ID_MM_INITIAL_QMAP_MUX_ID udev tag to LE910Cx
Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
2025-11-24 23:50:03 -06:00
Daniele Palmas d2de8ff226 port-qmi: allow setting initial mux-id value when using rmnet multiplexing
Qualcomm suggests to use mux id values >= 0x81: though this does not
seem a strict mandatory rule, there are scenarios in which the usage of
a specifix mux id is required otherwise various kind of issues could
happen (e.g. call failure, limited throughput...).

A new ID_MM_INITIAL_QMAP_MUX_ID udev tag allows setting the first initial
mux id value to be used when creating the multiplexed data connection.

Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
2025-11-24 23:50:03 -06:00
Dan Williams 0f19f10958 Merge request !1417 from 'libqmi-bump-1-37-95'
meson: bump libqmi requirement to 1.37.95

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1417
2025-11-24 23:43:23 -06:00
Dan Williams 3a2a33d3f0 meson: bump libqmi requirement to 1.37.95
Latest libqmi adds QMI_NAS_RADIO_INTERFACE_NO_CHANGE which will
cause failures when building with -Wall if NO_CHANGE isn't handled
in switch() statements. So we add that. But then of course you can't
build with older libqmi because it doesn't have NO_CHANGE.

So just bump the requirement.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-11-24 23:40:27 -06:00
Dan Williams a73b0675b5 Merge request !1413 from 'patch-3'
l10n: Update sl.po

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1413
2025-11-24 23:39:55 -06:00
filmsi 936379a832 Upload Slovenian (sl) po file
Signed-off-by: Martin Srebotnjak <miles@filmsi.net>
2025-11-24 23:37:19 -06:00
Dan Williams d2b7453422 Merge request !1416 from 'qmi-QMI_NAS_RADIO_INTERFACE_NO_CHANGE'
modem-helpers-qmi: update for QMI_NAS_RADIO_INTERFACE_NO_CHANGE

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1416
2025-11-24 23:32:37 -06:00
Dan Williams c1112a2ee4 modem-helpers-qmi: update for QMI_NAS_RADIO_INTERFACE_NO_CHANGE
In latest libqmi.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-11-24 23:30:32 -06:00
Dan Williams ff6a1ec9e6 Merge request !1414 from 'fix/typo'
iface-modem-location: Fix typo in error message

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1414
2025-11-24 23:20:50 -06:00
Andrey Skvortsov 4023c61c71 iface-modem-location: Fix typo in error message
Fixes: 091bf4dbd8 ("shared-qmi: implement LOC-based GPS/A-GPS support")

Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
2025-11-05 23:29:36 +03:00
Dan Williams 2a4c7e3a5b Merge request !1409 from 'fix/engine-unlock'
shared-qmi: unlock location engine at modem start

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1409
2025-10-20 15:33:28 -05:00
Andrey Skvortsov 9c4aeeb33a shared-qmi: unlock location engine at modem start
On SDM845 (OP6T) modem always starts with engine lock 'all'.
It doesn't allow to read assistance server settings at the beginning.
QMI call 'Get Predicted Orbits Data Source' (0x0036) fails with general
failure. As a result it's not possible to inject assistance data using
'mmcli -m any --location-inject-assistance-data=<file>'.

Commit 90843b7a0d ("shared-qmi: Lock and unlock GPS engine when
starting and stopping") unlocks engine on GNSS start, that allows
geolocation to work on SDM845, but it locks engine back on GNSS stop.
As a result after GNSS stop it's not possible to inject XTRA data again.

On EG25-G engine lock settings is stored in NV storage and is preserved after
modem restart. By default engine lock is 'none'. But currently on GNSS
stop this value is changed to 'all', that blocks location engine.
If previous ModemManager version is installed after
stopping geolocation and locking the engine, geolocation will not
work, since the engine is still locked and modem restart will not help.

This commit unlocks engine on modem start so all following operations
with an engine succeed. Engine isn't locked back.

Tested on SDM845 (OP6T) and Quectel EG25-G.

Fixes: 90843b7a0d ("shared-qmi: Lock and unlock GPS engine when starting and stopping")

Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
2025-10-20 15:30:54 -05:00
Dan Williams f2318ecc7b Merge request !1365 from 'fix-generic-virtual'
Fix generic driver not attaching to virtual ports

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1365
2025-10-20 15:18:57 -05:00
Sonya Sireneva 7e5e6c6912 Fix generic driver not attaching to virtual ports
Since c2e3a8c10e, the generic plugin was
not able to attach to virtual ports, because they have no associated
driver, and the probe fails with "port filtered as couldn't retrieve
driver". It seems that this driver check was accidentially introduced
and is not really necessary, as there isn't a special "XMMRPC driver"
to blacklist.

Signed-off-by: Sonya Sireneva <sleirsgoevy@gmail.com>
2025-10-20 15:16:32 -05:00
Dan Williams a2ed571ccf Merge request !1411 from 'main'
sim-mbim: fix `preload_cancellable` bug that causes a crash

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1411
2025-10-16 07:22:47 -05:00