Commit Graph
9437 Commits
Author SHA1 Message Date
Dan Williams 4821968fb2 Merge request !1396 from 'primary-slot-polkit'
data, polkit: Add policy rule for setting primary sim slot

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1396
2025-09-05 11:34:55 -05:00
Felipe Borges d5bee2bca6 data, polkit: Add policy rule for setting primary sim slot
Needed for exposing the modem's Primary sim slot setting in
GNOME Settings.
See https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/2867

Signed-off-by: Felipe Borges <felipeborges@gnome.org>
2025-09-05 11:31:25 -05:00
Dan Williams 2f6fc0d038 Merge request !1397 from 'piotrdrag/pl-update-250827'
Update Polish translation 250827

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1397
2025-09-05 11:23:36 -05:00
Piotr Drąg 5833887c21 Update Polish translation
Signed-off-by: Piotr Drąg <piotrdrag@gmail.com>
2025-08-28 18:28:06 +02:00
Dan Williams 9405ade83b Merge request !1395 from 'patch-2'
Add Slovenian (sl) to ModemManager

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1395
2025-08-28 09:25:46 -05:00
filmsi f5a650b9bd Upload Slovenian (sl) po file
Signed-off-by: Martin Srebotnjak <miles@filmsi.net>
2025-08-27 14:34:10 -05:00
Dan Williams 9fced3767a Merge request !1389 from 'fix/set-supl-server'
shared-qmi: fix setting URL to supl server

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1389
2025-08-16 16:23:06 -05:00
Andrey Skvortsov 0e1bfdb5b6 shared-qmi: fix setting URL to supl server
Function mm_parse_suple_address returns TRUE on valid input data
regardless of its type (URL or IP). As a result
qmi_message_loc_set_server_input_set_ipv4 was always called on valid
data. If URL was provided, then 0.0.0.0 ip address was sent to the
modem instead of provided URL.

Fixes: 6e84f3d459 ("iface-modem-location: validate SUPL server address")

Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
2025-08-16 21:02:14 +00:00
Dan Williams 1547c4d812 Merge request !1340 from 'qmi-gps-sdm670'
GNSS support for SDM670 devices

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1340
2025-08-16 11:36:25 -05:00
Richard Acayan 0d69304702 shared-qmi: Register NMEA types indication callbacks earlier
It might be too late to register the indication callbacks after the
response is received. Register the callbacks when the request is made so
an requested indication will always be handled.

Signed-off-by: Richard Acayan <mailingradian@gmail.com>
2025-08-16 11:32:16 -05:00
Richard Acayan 90843b7a0d shared-qmi: Lock and unlock GPS engine when starting and stopping
Newer modem firmware requires the use of the GPS engine lock, which
controls what the GPS engine can do. Set the GPS engine lock when
appropriate to handle this newer firmware.

Signed-off-by: Richard Acayan <mailingradian@gmail.com>
2025-08-16 11:32:16 -05:00
Richard Acayan b529b69fb6 shared-qmi: always set NMEA types
By default, the Pixel 3a only emits $PQXXX traces, even when all the
desired traces are reported as enabled. A request to set the NMEA types
must still be sent to enable the GGA/GSA/GSV traces. Remove the
optimization that prevents the request from happening automatically.

Signed-off-by: Richard Acayan <mailingradian@gmail.com>
2025-08-16 11:32:16 -05:00
Dan Williams 848c4a95ee Merge request !1393 from 'supl-ip-byte-order-doc'
modem-helpers: document mm_parse_supl_address()

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1393
2025-08-16 11:31:46 -05:00
Dan Williams aca647cf9d modem-helpers: document mm_parse_supl_address()
More specifically, that the returned IP address is in network
byte order.

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

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-08-16 11:22:02 -05:00
Dan Williams c2a5b54f79 Merge request !1390 from 'fix/set-supl-server-ip'
shared-qmi: fix byteorder for supl server IP

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1390
2025-08-16 10:10:57 -05:00
Andrey Skvortsov f51cc9488b shared-qmi: fix byteorder for supl server IP
It was noted, that when supl server is set using IP address. Modem
doesn't connect to the SUPL server anymore. When IP address is inverted,
then modem connects to SUPL server successfuly.

IP address is stored as uint32_t. According to Telit's documentation [1]
numeric values are encoded in little-endian format in QMI.

After converting IP address from string to binary using inet_pton
IP address is stored in network byte order (big-endian). Therefore it's
needed another convertion from big-endian to host endianness. Final
conversion from host endianness to endianness needed for QMI will be
done in generated
qmi_message_pds_set_agps_config_input_set_location_server_address.

Vendor's Android GNSS hal uses htonl() to convert from struct in_addr
(already in big-endian) before sending QMI request as well [2].

Tested on Quectel EG25-G and SDM845 (OnePlus 6T).

1. FN980 Family Telit Proprietary QMI Command Reference Guide. 4.1.3.1 Byte Ordering
2. https://github.com/ugly-kid-af/device_xiaomi_violet/blob/snow/gps/gnss/GnssAdapter.cpp#L1110

Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
2025-08-10 21:05:13 +00:00
Dan Williams 14031a4b1b Merge request !1391 from 'lang'
cbm-part: Use the correct codes for Czech and Danish

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1391
2025-08-08 21:48:29 -05:00
Guido Günther ef757daa1a cbm-part: Use the correct codes for Czech and Danish
Use the ones from the iso639 set 1.

Fixes: 0bd0cad70 ("cbm-part: Handle additional coding schemes and parse languages")

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-08-08 21:45:50 -05:00
Dan Williams 5121a9413a Merge request !1382 from 'fix-port-array'
cli: free ignored ports

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1382
2025-08-04 09:51:52 -05:00
Lukas Voegl e8a5ba04d0 cli: free ports only if not NULL
Signed-off-by: Lukas Voegl <lvoegl@tdt.de>
2025-08-01 11:18:54 +02:00
Lukas Voegl 3b8332a5a8 cli: free ignored ports
Signed-off-by: Lukas Voegl <lvoegl@tdt.de>
2025-08-01 11:18:54 +02:00
Dan Williams d9d1907157 Merge request !1367 from 'mr/20250530-cinterion'
cinterion: add MV32/MV31 udev rules and AT workarounds

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1367
2025-07-30 13:00:03 -05:00
Florian Eckert 1a9602ab6a cinterion: ignore carrier revision
MV31 MBIM modem firmware revisions are not matched with carrier configs.
Different VoLTE profiles might be selected by the user causing
the carrier config revision to change.

Since fwupd uses this string for firmware updates, it gets confused and
thinks the user has an update available.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2025-07-30 12:41:22 -05:00
Florian Eckert 5d4b0d3516 cinterion: add hardware revision read via AT for MV31 and MV32
Reading the hardware revision via the mbim interface returns an incorrect
hardware revision string. The output is always set to
'h/w revision: Thales Snapdragon X55'

  Hardware |            manufacturer: Cinterion
...
           |            h/w revision: Thales Snapdragon X55

This is an incorrect value returned by the MBIM interface. The MV31 and MV32
does have a dedicated AT Command to get the correct hardware revision
via 'AT+SKUID'. If the hardware revision is read via the AT command, the
output looks as follows.

  Hardware |            manufacturer: Cinterion
...
           |            h/w revision: V065

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2025-07-30 12:41:22 -05:00
Florian Eckert a107de32a8 cinterion: add revision read via AT for the MV31 and MV32
Reading the revsion via the mbim interface returns an incorrect firmware
revsion string. This contains a '\n' character so that the revision looks
like this in 'mmcli'.

Hardware  |            manufacturer: Cinterion
          |            model: Cinterion PID 0x00F1 USB Mobile Broadband
          |            firmware revision: FDE.F0.3.0.1.1.DT.005
          |            062
          |            carrier config: DT

The correct string without '\n' is returned via the AT interface. To fix
the error, the 'mbim' revision interface is overwritten with an AT call
if a MV31 or a MV32 is detected. So we get the correct output via 'mmcli'.

Hardware  |            manufacturer: Cinterion
          |            model: Cinterion PID 0x00F1 USB Mobile Broadband
          |            firmware revision: FDE.F0.3.0.1.1.DT.005.062
          |            carrier config: DT

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2025-07-30 12:41:22 -05:00
Florian Eckert ebebce6111 cinterion: add MV31 to the rules file
Add the missing udev rules for the MV31 from 'Telit' which uses the
cinterion plugin.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2025-07-30 12:41:22 -05:00
Florian Eckert f4a1c0fcec cinterion: add MV32 to the rules file
Add the missing udev rules for the MV32 from 'Telit' which uses the
cinterion plugin.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2025-07-30 12:41:22 -05:00
Dan Williams 70ad037146 Merge request !1386 from 'feat/access-to-signal-threshold'
polkit,conf: give access to Signal.SetupThresholds() the same way as for Signal.Setup()

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1386
2025-07-30 12:18:11 -05:00
Andrey Skvortsov 07aca09af2 polkit,conf: give access to Signal.SetupThresholds() the same way as for Signal.Setup()
Otherwise only Setup() method for suboptimal polling is available to
non-privileged users.

Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
2025-07-30 12:15:53 -05:00
Dan Williams 41133db361 Merge request !1388 from 'fix/cell-info-docs'
libmm-glib,cell-info: fix documentation for some functions

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1388
2025-07-30 11:29:16 -05:00
Andrey Skvortsov f0a9aba63b libmm-glib,cell-info: fix documentation for some functions
Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
2025-07-30 11:25:07 -05:00
Dan Williams ddea6c02d5 Merge request !1387 from 'fix/typos'
cli,signal: fix typo in debug message for async operations

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1387
2025-07-30 11:23:43 -05:00
Andrey Skvortsov 7ff47d795c cli,signal: fix typo in debug message for async operations
Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
2025-07-30 17:28:45 +03:00
Dan Williams d69dd96174 Merge request !1378 from 'suspend-bearer-timeout'
base-manager: increase suspend timeout for each active bearer

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1378
2025-07-28 09:20:50 -05:00
Dan Williams 01208cc6c0 base-manager: increase suspend timeout for each active bearer
Some modems can take a very long time (~20s) to reply to bearer
disconnect requests especially in marginal signal situations where
the modem must resend messages to the network after internal
timeouts. Give the modem a chance to suspend successfully if
there are active bearers.

Related: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1311#note_2938638

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-07-21 15:12:01 -05:00
Dan Williams 11489152d8 sleep-context: add ability to increase timeout
Track when the timeout was started, so that if it needs to be increased
we can calculate how long the new timeout should be. Then cancel the
original timeout and start a new one with.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-07-21 15:11:16 -05:00
Dan Williams f7897daeb5 broadband-modem,iface-modem: move bearer counting to interface and generalize
Allow counting more kinds of bearers than just multiplexed ones.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-07-21 15:11:16 -05:00
Dan Williams 6c75cbcf74 Merge request !1377 from 'dp/eutran-106-support'
add support for eutran band 106

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1377
2025-07-11 01:09:42 -05:00
Daniele Palmas 0e1ba4c530 modem-helpers-qmi: support EUTRAN bands 85 and 106
Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
2025-07-09 10:41:43 +02:00
Daniele Palmas 7fefddab05 libmm-glib,helpers: extend EUTRAN bands to 85 and 106
Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
2025-07-09 10:41:43 +02:00
Daniele Palmas b1d5006953 api,enums: add EUTRAN 106 band
Add EUTRAN 106 band with an offset of 1000 since the current numbering
scheme overlaps with MM_MODEM_BAND_CDMA_*.

Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
2025-07-09 10:41:35 +02:00
Daniele Palmas c070b9015e test,modem-helpers-qmi: add unit tests for bands
Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
2025-07-09 10:33:26 +02:00
Dan Williams 0ef7bf3fdb Merge request !1350 from 'local_br'
plugin,mtk: remove the relevant log prints of the device model.

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1350
2025-07-04 12:18:31 -05:00
Vanillan Wang 91adec212d plugin,mtk: remove the relevant log prints of the device model.
Rolling devices use mtk plugin, but there are some "FM350" log prints,
which is not appropriate.

Signed-off-by: Vanillan Wang <vanillanwang@163.com>
2025-07-04 12:15:29 -05:00
Dan Williams 1861ae1411 Merge request !1376 from 'main'
broadband-modem: exit with error if enable() is called in enabling state

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1376
2025-07-01 22:41:59 -05:00
Rukun Mao ca4334de94 broadband-modem: exit with error if enable() is called in enabling state
We should not assert. We can error out the latest enabling attempt and let
the previous enabling gracefully reach an end.

Issue log:
"2025-06-22T21:56:52.972448Z NOTICE ModemManager[1842]: <msg> [modem2] state changed (disabled -> enabling)
...
2025-06-22T21:57:53.146572Z ERR ModemManager[1842]: <err> [modem2] port cdc-wdm0 timed out 10 consecutive times, marking modem as invalid
...
2025-06-22T21:57:53.185751Z INFO shill[870]: INFO shill: [modem_info.cc(120)] RemoveModem: /org/freedesktop/ModemManager1/Modem/2
2025-06-22T21:57:53.187595Z INFO ModemManager[1842]: <inf> [modem2] processing user request to enable modem...
"

which led to a crash:
"
0x00007c474ceb979f (libc.so.6 -pthread_kill.c:44)               ??__pthread_kill_implementation
0x00007c474ce6d92c (libc.so.6 -raise.c:26)                      ??raise
0x00007c474ce584aa (libc.so.6 -abort.c:79)                      ??abort
0x00007c474d72b269 (libglib-2.0.so.0 -gtestutils.c:3450)        ??g_assertion_message
0x00007c474d72b2e3 (libglib-2.0.so.0 -gtestutils.c:3476)        ??g_assertion_message_expr
0x00005979074b4b6a (ModemManager -mm-broadband-modem.c)         enable
0x00005979074e3b9c (ModemManager -mm-iface-modem.c:2340)        handle_enable_auth_ready
0x00007c474d591997 (libgio-2.0.so.0 -gtask.c:1309)              g_task_return_now
0x00007c474d590555 (libgio-2.0.so.0 -gtask.c:1378)              g_task_return
0x00005979074a57bd (ModemManager -mm-base-modem.c:2011)         lock_after_authorize_ready
0x00007c474d591997 (libgio-2.0.so.0 -gtask.c:1309)              g_task_return_now
0x00007c474d590555 (libgio-2.0.so.0 -gtask.c:1378)              g_task_return
0x00005979074a3fa8 (ModemManager -mm-base-modem.c:1841)         base_modem_operation_run
...
"

Signed-off-by: Rukun Mao <rmao@google.com>
2025-06-26 20:24:16 +00:00
Dan Williams 2529159cee Merge request !1374 from 'cinterion-add-tdd-lte-bands-disabled-flag'
cinterion: add tdd_lte_bands_disabled flag

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

Closes #977
2025-06-25 08:17:22 -05:00
Kirill Buksha e8d781ae0b cinterion: allow missing LTE-TDD bands in SCFG response
Some modems (at least ELS62-E) doesn't support TDD LTE bands and their SCFG
responses doesn't contain LTE-TDD bands.

Signed-off-by: Kirill Buksha <kirbuk200@gmail.com>
2025-06-25 07:55:40 -05:00
Aleksander Morgado 9d11ff4ba9 Merge request !1375 from 'aleksander/fibocom-urcs'
iface-modem: ignore SIM events during a controlled SIM slot switch

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1375
2025-06-25 00:33:29 +02:00
Aleksander Morgado a24b60e52e fibocom: setup several +SIM URCs as hotplug event indications
Treat the following URCs as indications of possible SIM hot swap
events:
  +SIM: Inserted
  +SIM: Removed
  +SIM DROP

Any time any of these is received, a SIM hot swap event is reported,
and the logic can then determine what to do. These should lead to
doing nothing if they happen as part of a controlled SIM slot switch.

Signed-off-by: Aleksander Morgado <aleksandermj@google.com>
2025-06-18 22:10:54 +00:00