Commit Graph
9193 Commits
Author SHA1 Message Date
Guido Günther d6367c76c0 libmm-glib,cell-broadcast: Support channels property
Support reading channels in the API too

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-29 22:19:17 +00:00
Guido Günther 4414344d82 libmm-glib,helpers: Add helpers to parse CB channels in and out of strings
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-29 22:19:17 +00:00
Guido Günther d00ff2d0a1 libmm-glib,test: Remove trailing whitespace
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-29 22:19:17 +00:00
Dan Williams ab8c9b3418 Merge request !1313 from 'fcc-unlock-14c3-sh'
fcc-unlock: Transition the 14c3 FCC unlock script to use sh

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1313
2025-03-29 22:18:46 +00:00
Jongmin Kim 54bbad9fcc fcc-unlock: Disable execute bit from 14c3
Signed-off-by: Jongmin Kim <jmkim@debian.org>
2025-03-29 22:25:31 +09:00
Jongmin Kim 2836eab097 fcc-unlock: Transition the 14c3 FCC unlock script to use sh
This enables the usage with busybox and strict environments.

This is related to #483 and the previous commit 91ed72aa, 02baf283.

Signed-off-by: Jongmin Kim <jmkim@debian.org>
2025-03-29 22:24:48 +09:00
Dan Williams f9e63c7940 Merge request !1294 from 'cbm/channels'
cellbroadcast: Allow to set channel list

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

Closes #934
2025-03-28 20:59:20 +00:00
Guido Günther b83df955fa modem: Load current channels on startup
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-28 20:53:52 +00:00
Guido Günther 2878833f5c modem: Allow to set current channel list
This adds support for setting the channels to override the boot up modem
defaults:

```
  busctl --system call org.freedesktop.ModemManager1 /org/freedesktop/ModemManager1/Modem/0 org.freedesktop.ModemManager1.Modem.CellBroadcast SetChannels 'a(uu)' 1 0 9999
  busctl --system get-property org.freedesktop.ModemManager1 /org/freedesktop/ModemManager1/Modem/0 org.freedesktop.ModemManager1.Modem.CellBroadcast Channels
  a(uu) 1 0 9999
```

Closes: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/934

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-28 20:53:52 +00:00
Guido Günther d8135be6e2 modem-helpers: Add helpers to parse channel lists
`CSCB` has the form

```
CSCB: [0|1],"<channel-list>","<data-coding-scheme>"
```

If the first parameter is `0` this specifies the accepted types if `1`
it specifies rejected.

So far seen in the wild were CSCB strings with accepted types only and a
coding scheme of "" so this is what we handle for the moment.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-28 20:53:52 +00:00
Guido Günther 0c20d13b30 libmm-glib,helpers: Add helpers for CellBroadcast channel lists
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-28 20:53:52 +00:00
Dan Williams 61656dcb3d Merge request !1301 from 'mode-detect-4g-5g'
broadband-modem: detect modem modes with +CEREG and +C5GREG

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

Closes #786
2025-03-27 23:54:34 +00:00
Dan Williams bad4765581 broadband-modem: detect modem modes with +CEREG and +C5GREG
Some AT-based modems like the Quectel Unisoc-based RM500U don't
support the older AT commands we used to detect modes like
AT*CNTI=2 and AT+WS46. Add support for detecting 4G and 5G
with generic commands too.

Fixes: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/786

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-03-27 23:51:17 +00:00
Dan Williams 8d2a91c920 Merge request !1240 from 'port-delay'
port-probe: allow per-port ID_MM_TTY_AT_PROBE_TRIES tag for custom number of AT probes

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1240
2025-03-27 23:44:23 +00:00
Dan Williams cc93b11db7 telit: use generic early AT port probe logic
Use the new early port probe logic to do AT probes before the custom
init hook actually starts.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-03-27 18:40:38 -05:00
Dan Williams 7d75a897a8 port-probe: allow per-port ID_MM_TTY_AT_PROBE_TRIES tag for custom number of AT probes
For modems that need more time to respond to AT port probes (like some Telit devices,
and Cinterion-based Telit MV31/MV32) allow a custom number of AT probe tries on a
per-port basis for generic probing, or plugins that opt into this functionality.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-03-27 18:40:38 -05:00
Dan Williams b04ca79392 Merge request !1318 from 'pin-unlock-swap-fix'
broadband-modem,iface-modem: don't treat SIM unlocks as hot-swaps

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1318
2025-03-25 13:31:58 +00:00
Dan Williams 57d1f21b36 broadband-modem,iface-modem: don't treat SIM unlocks as hot-swaps
If the old IMSI was unavailable because the SIM was locked, but now
is available because the SIM was unlocked, don't treat the SIM
properties change as a hotswap that may trigger dropping and re-probing
the modem.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-03-23 09:04:42 -05:00
Dan Williams 3b4bb45442 Merge request !1317 from 'clarify-licensing'
api: fix license headers in MM API

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1317
2025-03-13 20:53:18 +00:00
Aleksander Morgado 48a686a6d9 api: fix license headers in MM API
The libmm-glib library, as well as the ModemManager headers installed
as part of the D-Bus service API, have always been LGPLv2+ licensed,
because we want users of the service to rely on them in their own
programs, even if they are proprietary.

Some files had an incorrect GPLv2+ header instead of the LGPLv2+ and
that was confusing. All public headers in the MM API have the correct
license text now.

Signed-off-by: Aleksander Morgado <aleksandermj@chromium.org>
2025-03-13 00:35:24 +00:00
Dan Williams e95336d106 Merge request !1316 from 'typos'
treewide: Fix typos

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1316
2025-03-12 00:52:49 +00:00
Guido Günther 68933455df treewide: Fix typos
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-11 23:15:57 +01:00
Dan Williams a19fd85884 Merge request !1315 from 'release-1-23-95'
release: bump version to 1.23.95

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1315
2025-03-11 03:46:10 +00:00
Dan Williams c6dcab6161 release: bump version to 1.23.95
Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-03-10 22:42:42 -05:00
Dan Williams 4c1be4923a NEWS: update for 1.24
Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-03-10 22:42:42 -05:00
Dan Williams 53383757c8 Merge request !1305 from 'port-open-at-probes'
port-probe: ensure port is open for all plugin AT probes

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1305
2025-03-09 14:47:19 +00:00
Dan Williams 89466b583b port-probe: ensure port is open for all plugin AT probes
If multiple plugins are selected for probing a modem with AT probes,
earlier plugins may only request some probes but not all.  When
those probes complete successfully, subsequent plugins won't re-do
the probes that were already completed, but jump to ones that
haven't yet been done.

For example, plugin A may request only AT probes but plugin B
may request AT, AT_PRODUCT, and AT_VENDOR. Plugin B will start
with AT_PRODUCT probes because plugin A already completed the AT
probe.

The code in probe_step() only opened the serial port for the
AT probe, I guess assuming that all AT-type probes would be
done in sequence. But in the above scenario they are not.

Instead, make sure the port is opened for all AT style probes
that have not yet been executed.

Fixes: 7937a89a37 port-probe: rework and consolidate port probe flow for AT/QCDM/QMI/MBIM

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-03-09 14:44:23 +00:00
Dan Williams e6a7be2e4c Merge request !1312 from 'fcc-unlock-grep-qi'
fcc-unlock: Case-insensitive grep for for 105b (MBIM) and 14c3 (AT)

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1312
2025-03-09 02:57:05 +00:00
Jongmin Kim e1ab6e6c37 fcc-unlock: Case-insensitive grep for identifying MBIM or AT port
Signed-off-by: Jongmin Kim <jmkim@debian.org>
2025-03-09 09:55:45 +09:00
Jongmin Kim 9bd7bb0392 fcc-unlock: Reduce the port assignment cases
Signed-off-by: Jongmin Kim <jmkim@debian.org>
2025-03-09 09:50:48 +09:00
Dan Williams 0ce457ba71 Merge request !1308 from 'fcc-unlock-quectel'
fcc-unlock: combine Quectel FCC unlock scripts and add support for RM520N

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1308
2025-03-08 16:10:22 +00:00
Jongmin Kim 3d1c16fe81 fcc-unlock: Case-insensitive grep for identifying MBIM port
Signed-off-by: Jongmin Kim <jmkim@debian.org>
2025-03-08 22:02:00 +09:00
Jongmin Kim fbeaffe2fd fcc-unlock: add FCC unlock specs for Quectel RM520N
Add symlinks for new supported Quectel RM520N:

- RM520N (standard)       2c7c:0801
- RM520N (HP shipped)     1eac:1004
- RM520N (Lenovo shipped) 1eac:1007

Signed-off-by: Jongmin Kim <jmkim@debian.org>
2025-03-08 22:01:51 +09:00
Jongmin Kim 13fce479b3 fcc-unlock: combine Quectel FCC unlock scripts for 1eac and 2c7c
Both scripts control MBIM ports and can be merged into a single script.

Signed-off-by: Jongmin Kim <jmkim@debian.org>
2025-03-08 22:01:38 +09:00
Dan Williams 9ab4b7de58 Merge request !1307 from 'scan-cli-timeouts'
broadband-modem,cli: slightly bump 3GPP scan timeout; add some cli dbus timeout slack

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1307
2025-03-06 15:11:00 +00:00
Dan Williams f014f3843e broadband-modem,cli: slightly bump 3GPP scan timeout; add some cli dbus timeout slack
Add some mmcli D-Bus timeout slack, making them slightly higher than the
ModemManager internal timeout, to ensure the cli doesn't time out the
D-Bus call when MM succeeds.

For 3GPP scan, some modems appear to have internal 5 minute timeouts,
so ensure MM doesn't time out right before the modem returns results:

ModemManager[282578]: <dbg> [1741054422.321400] [ttyUSB2/at] --> 'AT+COPS=?<CR>'
ModemManager[282578]: <wrn> [1741054722.247806] [modem1] failed scanning networks: Serial command timed out
ModemManager[282578]: <dbg> [1741054724.119770] [ttyUSB2/at] <-- '<CR><LF>+COPS: (1,"T-Mobile","T-Mobile","310260",0),,(0,1,2,3,4),(0,1,2)<CR><LF><CR><LF>OK<CR><LF>'

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-03-06 04:52:50 +00:00
Dan Williams c393a917c1 Merge request !1309 from 'codespell'
Fix some typos on the source code

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1309
2025-03-05 17:00:59 +00:00
Guido Günther 54dcc25d8b treewide: Fix some spelling errors
All in debug messages or code comments so not user / client visible.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-05 16:53:26 +00:00
Guido Günther db37e063f8 mbim: Fix typo in error message
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-05 16:53:26 +00:00
Dan Williams ead9951ea6 Merge request !1279 from 'my-branch'
cli: Added bearer path print after successful modem connect

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1279
2025-03-05 16:52:47 +00:00
Anagh G c6c4be9d69 cli: Added bearer path print after successful modem connect
For a ModemManager simple connect using mmcli, added the bearer
path on which call is connected. This helps in determining the
bearer path to directly retrieve bearer information easily
of this particular call.

Signed-off-by: Anagh G <quic_anaghg@quicinc.com>
2025-03-05 16:15:53 +00:00
Dan Williams a9122abec6 Merge request !1306 from 'dco4'
ci: ensure DCO check exits with correct error code on failure

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1306
2025-03-03 17:19:28 +00:00
Dan Williams ad841cc92b ci: ensure DCO check exits with correct error code on failure
Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-03-03 11:15:54 -06:00
Dan Williams c6fb16a0f5 Merge request !1302 from 'qmi-uemode'
broadband-modem-qmi: implement UE mode get/set

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1302
2025-03-03 17:10:01 +00:00
Robert Marko f72dd493e8 broadband-modem-qmi: implement UE mode get/set
Instead of relying on getting/setting the UE mode via AT +CEMODE command
which on Quectel RM520N (And I assume other QMI based modems) only allows
getting the value and not setting one it has special AT commands for CS/PS
and voice/data centric values.

So lets instead use the QMI Get/Set System Selection Preference TLV which
offers service domain and usage domain preference info so we can use those
to get/set the 3GPP TS 24.301 UE mode values.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2025-03-03 10:46:13 +01:00
Dan Williams 2c1c3f72a1 Merge request !1291 from 'main'
api,enums: added NGRAN-67 band

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1291
2025-03-01 15:38:46 +00:00
Slark Xiao 1fb6a53595 api,enums: added NGRAN-67 band
According to 3GPP Rel17.2, TS 38104, band NGRAN-67 is supported.
Currently Qualcomm SDX72 chip support this band and MM would show
a '(null)' info in the "Bands" area.
Band info as below:
n67, 738MHz-758MHz, SDL

Signed-off-by: Slark Xiao <slark_xiao@163.com>
2025-03-01 09:31:54 -06:00
Dan Williams b5ad830fc7 Merge request !1253 from 'persist_current_storage'
messaging: load default storage from modem during initialization

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1253
2025-02-27 15:18:46 +00:00
Akula Susmitha bf5245bb27 messaging: load default storage from modem during initialization
Signed-off-by: Akula Susmitha <quic_asusmith@quicinc.com>
2025-02-27 15:04:59 +00:00
Dan Williams 21da676eed Merge request !1299 from 'dco3'
ci: fix a couple DCO check issues

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1299
2025-02-27 15:04:25 +00:00