Age | Commit message (Collapse) | Author |
|
|
|
The port to the meson build system a set of defines were lost, that
made the udev rules and the keyfiles tests to not run properly.
This has been changed so defines are now in their proper place and
tests are run properly.
Fixes #537
|
|
Flag ttyACM0 as data port and ttyACM1 as primary port, as per
https://bugzilla.gnome.org/show_bug.cgi?id=637140#c10
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/14
|
|
Signed-off-by: Theodore A. Roth <theodore_roth@trimble.com>
|
|
Recent ModemManager versions no longer work on the Samsung A5 (Qualcomm
MSM8916) smartphone: MM ends up in an infinite loop trying to probe the
modem over and over again.
Looking at the debug log it seems to be related to a "Slot Status"
indication that comes in during probe time and causes MM to restart
the probing process:
[/dev/wwan0qmi0] Sent generic request (translated)...
<< QMUX: service = "uim"
<< QMI: message = "Register Events" (0x002E)
<< TLV: translated = physical-slot-status
[/dev/wwan0qmi0] Received generic indication (translated)...
<< QMUX: service = "uim"
<< QMI: message = "Slot Status" (0x0048)
<< TLV: translated = { [0] = '[ physical_card_status = 'present', ...
[/dev/wwan0qmi0] Received generic response (translated)...
<< QMUX: service = "uim"
<< QMI: message = "Register Events" (0x002E)
<< TLV: translated = SUCCESS
[modem42] registered for slot status indications
[/dev/wwan0qmi0] Sent generic request (translated)...
<< QMUX: service = "uim"
<< QMI: message = "Get Slot Status" (0x0047)
[modem42] received slot status indication
[modem42] An active slot had a status change, will reprobe the modem
<infinite loop>
The "Slot Status" indication (uim_slot_status_indication_cb) arrives
immediately after starting to listen for the event, which is before
ModemManager has actually loaded the initial slot status in
uim_get_slot_status_ready. In this situation !slot_array_status_equal()
will always cause the modem to reprobe, even though it is not necessary
during the probe phase.
To fix this add a simple check to uim_slot_status_indication_cb() that
ignores the indication if the initial slot status was not loaded yet.
|
|
The logic to create a new SIM object from the slot status info was
used in several places.
|
|
During initialization if the number of slots is more than 1 then
update the sim-type and esim-status of the inactive slot as well.
|
|
When setting mode 'any' with +WS46 command the supported modes
should be considered for choosing the at command correct argument.
|
|
Including 5GNR network reporting (act=12)
https://forum.sierrawireless.com/t/5g-network-scan-with-the-em9191-operation-not-allowed/26374/9
|
|
The numeric fields in the +COPS=? response were relying on a very weak
parsing logic, assuming that they were single-digit numeric values and
not using the common string to integer conversion utilities.
This commit improves the conversion from the 3GPP/ETSI defined network
availability and access technology values to the MM defined ones,
providing enum-based matches even if the numeric values are the same.
The commit also fixes the parsing of access technology values > 10,
required to report 5G related values.
|
|
The new 5GNR related values are >= 10, so don't expect one single
digit (\d), expect one or more (\d+).
|
|
This assumes the needed modem hardware is typically not available
inside containers. If however, the local admin configures the container
to get access to the hardware in question, ModemManager can be
instructed to run in that specific container by doing:
`sudo systemctl edit ModemManager.service`
Then entering the following text in the editor:
[Unit]
# Remove condition of "not container"
ConditionVirtualization=
Upon saving/exiting, ModemManager can then be started with:
`sudo systemctl start ModemManager.service`
Signed-off-by: Simon Deziel <simon@sdeziel.info>
|
|
+CGDCONT? may list profiles with IDs that are illegal to write, i.e.
+CGDCONT=? returns a minimum ID larger than some of the existing
profiles. E.g. for Fibocom L610-EU, +CGDCONT=? returns
+CGDCONT: (1-7),"IP",,,(0-3),(0-4)
+CGDCONT: (1-7),"IPV6",,,(0-3),(0-4)
+CGDCONT: (1-7),"IPV4V6",,,(0-3),(0-4)
+CGDCONT: (1-7),"PPP",,,(0-3),(0-4)
+CGDCONT: (1-7),"Non-IP",,,(0-3),(0-4)
while the default EPS bearer is established at profile 0:
+CGDCONT: 0,"IP","xxx","xxx.xxx.xxx.xxx",0,0
[...]
Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
|
|
The set_initial_eps_bearer_settings() operation is the same in XMM
capable and generic MBIM modem objects. Place it in a common shared
interface so that we don't duplicate code.
|
|
|
|
|
|
Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
|
|
It was replaced by the profile management operations instead in the
1.18 release.
|
|
Fully disable send delay as we're using AT ports via the new WWAN subsystem.
|
|
Use the same logic always to decide which is the best GPS control/data
port, and then perform the initial port setup (GNSS engine off) only
that single port.
|
|
Use the new AT_GPS_CONTROL udev tag to decide which is the best port
to manage the GNSS engine.
|
|
There are devices with multiple AT ports where only one of them is
supposed to be used for GNSS control (and data).
|
|
We're not going to implement all XMM shared operations from the shared
utils, as the newer Intel modems support the new operations in the
Microsoft MBIM Extensions.
Just inherit the GNSS management capabilities.
|
|
As we can rely on async MBIM notifications.
|
|
|
|
|
|
Only data over NET is expected
|
|
|
|
For now, just detecting the device and creating generic MBIM or AT
based modems.
|
|
meson generates the `mm-daemon-enums-types` source and header files.
These are used when building `ModemManager` executable and different
plugins. However, these enums are only stated as dependencies on the
`ModemManager` executable build.
This has been fixed by also adding the generated files targets as
dependencies in the required plugins.
|
|
The `broadmobi`, `dlink`, `telit` and `tplink` plugins include the
`mm-port-enums-types.h` header. However, they do not use any symbol
defined there.
The `huawei` plugin as includes the `mm-port-enums-types.h` header
but it does not include the build targets as dependencies.
These issues have been fixed by removing the unnecessary includes
from `broadmobi`, `dlink`, `telit` and `tplink` plugins and by
including the enums build target in the `huawei` target.
|
|
QmiMessageDmsGetStoredImageInfoInput type
|
|
This type was introduced to avoid having GArrays of GArrays in libqmi.
|
|
This type was a JSON description bug in libqmi, it should have never
been a struct by itself. This was changed in libqmi by the 1.31.3
snapshot, so let's use the new methods instead of the deprecated ones.
|
|
In order to use the new methods that avoid intermediate structs like
QmiConfigTypeAndId.
|
|
This allows us to not rely on bash which may not be available on
constrained systems, e.g. Yocto-built embedded systems. The scripts now
pass shellcheck.
Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
|
|
This silents a warning given by udev:
Configuration file /usr/lib/udev/rules.d/77-mm-fibocom-port-types.rules is marked executable. Please remove executable permission bits. Proceeding anyway.
|
|
The MBIM command PIN LIST returns only status of pin locks and omits
puk-locked facilities. This caused the pop-up window for unlocking
PUK is not shown after reboot.
Currenty active PUK lock has to be obtained using additional call
for PIN command but only single facility is supported this way.
|
|
|
|
Otherwise, mm_modem_charset_bytearray_to_utf8() may return NULL
without error set, and that will trigger a crash in the caller.
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/511
|
|
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/510
|
|
We won't create a full new different modem object based on whether the
ID_MM_FIBOCOM_INITIAL_EPS_OFF_ON tag is found or not. Instead, we
always will create the same object type, and detect whether the OFF/ON
cycle is required during runtime.
|
|
Assume that the method to change the initial EPS bearer settings is
always implemented in the parent, so that we can avoid the runtime
check.
This also fixes the codepath that would happen if the
iface_modem_3gpp_parent->set_initial_eps_bearer_settings == NULL
condition was valid, as that would end up with a GTask never completed.
|
|
When the attach APN settings are changed, the device will go through a
radio on -> radio off -> radio on cycle so that the new changes are
taken into consideration.
This change is done in a Fibocom-specific MBIM modem implementation
because it's working around a firmware bug that would prevent for the
attach settings to be considered automatically.
|
|
If the modem is disabled:
* Polling is completely halted.
* Thresholds are disabled.
* The user is allowed to call Setup() or SetupThresholds() to change
the settings, even if the actual polling or thresholds setup isn't
in effect.
When the modem is enabled:
* Polling will be started if there is a existing polling rate.
* Thresholds will be setup based on the existing threshold settings.
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/504
|
|
|
|
|
|
So that when the meson build does the template replacement, the
generated file is also executable and can be used as Exec line in the
test DBus service file.
Fixes the 'test-stub' unit test in meson.
|
|
|
|
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.
|