Age | Commit message (Collapse) | Author |
|
Instead of having a switch with a lot of cases, provide a one to one
mapping for the MbimNwError and MMMobileEquipmentError codes in an
array, and make use of the mm_mobile_equipment_error_for_code() helper
to build the actual GError.
|
|
Update the list of mobile equipment error codes according to v17.1.0
of 3GPP TS 27.007 (March 2021).
A lot of the enum values that were prefixed with the 'GPRS_' keyword
have now been flagged as deprecated, and a new enum name given to the
corresponding value.
The deprecated symbol names are kept in the compat support to avoid
breaking API/ABI.
|
|
First, simplify the logic that attempts to find the correct error code
associated to an error text string. This logic is very flaky, as it
relies on knowing what the modems report as text string for the
different error codes, and obviously that is not always the same.
Instead of supporting all error codes in this logic, we now limit them
to a small subset with common error codes and hopefully common error
strings.
Second, in order to quickly get the error description string for a
given error code, we rework the array of supported errors so that
the index of the array is the error code itself. For mobile equipment
errors the logic is straightforward, as they're always in the [0,255]
range, but for the message errors we create an array where the index
of the array is equal to the code plus 300 as they're always in the
[300,500] range. By doing this, we avoid having an array with 300 NULL
items before the actual values we want to support.
|
|
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
|
|
Use the new generic FCC unlock step instead of implementing it within
the power up setup logic.
|
|
Use the new generic FCC unlock step instead of implementing it within
the operating mode setup logic.
The operation is implemented in the MMSharedQmi interface as it will
also be used by the MBIM modem object.
|
|
There are devices that come locked before they can be put online.
Until now we had a specific implementation for this in the generic QMI
modem, but we should have it in a more generic way for any kind of
modem.
|
|
|
|
(cherry picked from commit 2cb38c568ff1fb26b23bad5e8a2851547448c30e)
|
|
With the recently added support for modems using QRTR, ModemManager
needs to have access to the corresponding address family so it can
interact with the modem.
Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
|
|
This allows mobile data to work on the EG25 (and probably other modems).
|
|
|
|
mm-common-helpers.c: In function 'mm_get_int_from_str':
mm-common-helpers.c:1349:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (eol == num)
^~
mm-common-helpers.c: In function 'mm_utils_hexstr2bin':
mm-common-helpers.c:1718:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (i = 0; i < len; i += 2) {
^
|
|
The g_dbus_proxy_get_default_timeout() is by default -1 unless
explicitly updated, so the check doesn't make any sense really. We
didn't see any warning produced because mmcli provides an explicit
timeout of 30s, so it was never the default -1.
|
|
mm-bearer-properties.c:725:1: warning: 'cmp_allow_roaming' defined but not used [-Wunused-function]
cmp_allow_roaming (gboolean a,
^~~~~~~~~~~~~~~~~
|
|
This fixes a few (fatal in gcc 11) warnings.
See https://gitlab.gnome.org/GNOME/glib/-/issues/600
|
|
mm-location-3gpp.c: In function ‘mm_location_3gpp_get_mobile_country_code’:
mm-location-3gpp.c:139:12: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
139 | mcc[4] = '\0';
| ~~~~~~~^~~~~~
mm-location-3gpp.c:132:11: note: at offset 4 to object ‘mcc’ with size 4 declared here
132 | gchar mcc[4];
| ^~~
|
|
If the network has three digit MNC and MNC < 100, set the PCS digit status
field in the QMI request.
|
|
Set the MNC PCS digit status when attempting to register to a network
with 3 digit MNC and MNC < 100.
|
|
MNC PCS digit status is now available from mm_3gpp_parse_operator_id(),
so use it.
|
|
|
|
MMLocation3gpp provides MCC/MNC information as integers, so it can not
make distinction between operator codes such as XXX01 and XXX001.
This commit deprecates mm_location_3gpp_get_mobile_network_code() and
implements a new function mm_location_3gpp_get_operator_code() which
provides the MCC+MNC in string format.
The mm_location_3gpp_get_mobile_country_code() is still available as
returning the MCC as an integer does not have ambiguity issues.
|
|
MNC digit count information is lost on conversion to integers. Make it
possible for the caller to get this information through a separate
boolean.
|
|
The modem may be camping in a forbidden network just for emergency
services, and we'll be able to have a MCCMNC reported in that case,
but this does not mean the modem is registered.
So, don't consider that a valid registration flag during the new
network registration request.
|
|
We'll setup the properties only if QRTR support is being built,
otherwise we fully skip all property related setup.
(ModemManager:480463): GLib-GObject-CRITICAL **: 22:48:14.264: g_object_class_install_properties: assertion 'n_pspecs > 1' failed
Thread 1 "ModemManager" received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff76e3295 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
(gdb) bt
#0 0x00007ffff76e3295 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1 0x00007ffff76e4579 in g_logv () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2 0x00007ffff76e4743 in g_log () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3 0x00005555556af70c in mm_port_qmi_class_init (klass=0x5555557fae20) at mm-port-qmi.c:2619
#4 0x00005555556a94c3 in mm_port_qmi_class_intern_init (klass=0x5555557fae20) at mm-port-qmi.c:34
#5 0x00007ffff77ed1d1 in g_type_class_ref () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#6 0x00007ffff77d05e1 in g_object_new_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#7 0x00007ffff77d06cd in g_object_new () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#8 0x00005555556af25a in mm_port_qmi_new (name=0x5555557e54e0 "cdc-wdm0", subsys=MM_PORT_SUBSYS_USBMISC) at mm-port-qmi.c:2481
#9 0x000055555563c8d7 in wdm_probe_qmi (self=0x5555557de1b0) at mm-port-probe.c:517
#10 0x000055555563cc70 in wdm_probe (self=0x5555557de1b0) at mm-port-probe.c:623
#11 0x00007ffff76dd04e in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#12 0x00007ffff76dd400 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#13 0x00007ffff76dd6f3 in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#14 0x00005555555b1ae4 in main (argc=1, argv=0x7fffffffe558) at main.c:213
|
|
Print a debug message when the user provides initial eps bearer settings
that match the ones being used. This will save time to whomever is
experimenting with initial eps bearer settings.
|
|
For now WWAN subsystem support has only been validated for PCI/MHI
based devices and extra patches for USB based devices (qmi_wwan,
cdc-mbim...) may be required, so do not consider WWAN ports being
on USB bus.
Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
|
|
move the modem_load_model() async method from mm-broadband-modem-qmi.c
to mm-shared-qmi.c, and then make use of the method from both the QMI
and MBIM implementations.
|
|
Reported and fix suggested by Maxim Anisimov
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/368
|
|
|
|
Fixes issue 364.
|
|
|
|
|
|
The older 'LTE attach status' message name is deprecated.
|
|
If ModemManager is not built with QMI support, the generic MBIM modem
object will not have any location support, so we cannot assume that
iface_modem_location_parent will be valid and that it will have all
load_location_capabilities(), enable_location_gathering() and
disable_location_gathering() implemented.
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/362
|
|
The action of disabling facility locks is user-triggered, so there is
no need to have an internal method to run the logic without user
interaction.
|
|
make[4]: Entering directory '/home/aleksander/Development/foss/ModemManager/docs/reference/api'
DOC Preparing build
DOC Building XML
DOC Scanning header files
DOC Introspecting gobjects
DOC Building XML
DOC Building HTML
../../../../libmm-glib/generated/mm-gdbus-doc-org.freedesktop.ModemManager1.Modem.Modem3gpp.xml:181: parser error : Opening and ending tag mismatch: variablelist line 165 and para
</para>
^
|
|
|
|
Configuration
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
This is now a requirement when using glib 2.56.
|
|
When updating the registration state, in the case where LTE is not ready,
ensure we reset the EPS registration state rather than leaving its old
value.
Else when the consolidated registration is built, it can wrongly think
we are registered, e.g. the following case was happening:
[modem0] consolidated registration state: cs 'home', ps 'home', eps 'home', 5gs 'unknown' --> 'home'
a bit later
[modem0] consolidated registration state: cs 'unknown', ps 'unknown', eps 'home', 5gs 'unknown' --> 'home'
then it wrongly tries immediatly to connect
and fails due to 'no-service'
On Qualcomm SC7180, running the following sequence would often reproduce
it:
<stop higher level network manager>
mmcli -m 0 -d
mmcli -m 0 --set-power-state-low
sleep 10
mmcli -m 0 -e
mmcli -m 0 --simple-connect="apn=broadband"
|
|
|