Commit graph

80 commits

Author SHA1 Message Date
Florian Eckert
fabb50ae97 modemmanger: bump PKG_RELEASE
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2024-01-19 08:52:04 +01:00
Florian Eckert
d9b5e06d19 modemmanager: replace modem available check on start with the new monitore service
Before this change, the status of the sysfs paths from the kernel events
was cached with a cache file. This is necessary to mark configured modems
as available for the netifd.

Using the new monitor service via the mmcli command 'mmcli -M' simplifies
the whole process. There is no need to start sub shells in the background
anymore that monitors whether the modem has already been added to the
ModemManager.

For this purpose, a new service was added that reacts on add and remove
events for modems in the ModemManager and, if necessary, marks the logical
netifd interface as available.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2024-01-19 08:47:34 +01:00
Florian Eckert
620afc1806 modemmanager: set allowedmode to 'any' if nothing is configured
The modem saves the permitted technology configuration in the modem
itself. If the technology configuration is deleted in the uci, this is
not passed on to the modem. This means that the previously saved
technology configuration is remains in the modem and is therefore still
active. By setting the technology to 'any', if no option is set, all
technologies are allowed again.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2024-01-19 08:31:17 +01:00
Florian Eckert
af12147f8c modemmanager: add possibilty for setting initial EPS bearer
If no GSM but only 4G is available and a special APN must be used, it
is necessary to set an inital EPS bearer beforehand. If this is not set,
then modem cannot log in and register in the mobile network.

The new option 'init_epsbearer' could be set to the following options.
* none: No init EPS bearer is used and the old one is deleted (default)
* default: Use init EPS bearer with the following config options
  'iptype', 'allowedauth', 'password', 'user' and 'apn' as for the
  connection bearer.
* custom: Other parameters are used that do not match those of the
  default connection bearer. These have an 'init_' prefix and are named
  in the same way as the default connection bearer config options.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2023-12-04 12:14:56 +01:00
Florian Eckert
7b4d82c58f modemmanager: check modem state before establishing a connection
With this change the following modem 'state' are checked before a
connection attempt setup.
* failed: Stop connection attempt because of sim-missing
* locked: Stop connection attempt if no pincode is set

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2023-12-04 11:37:06 +01:00
Oliver Sedlbauer
074741e343 modemmanager: move iface cleanup to wrapper script
If the ModemManager process crashes, the interfaces are not cleaned
up properly because the stop_service method is not called. With this
change, the interfaces are cleaned up both when stopping the service
and during a crash. Therefore it is no longer necessary to perform a
cleanup at the beginning.

Signed-off-by: Oliver Sedlbauer <osedlbauer@tdt.de>
2023-10-30 08:53:29 +01:00
Oliver Sedlbauer
d78505bcfa modemmanager: improve cleanup of ifaces
Change workflow to cleanup interfaces using the sysfscache.
The sysfscache stores the processed sysfs-paths. Using this
instead of mmcli -L, the interfaces can be properly cleaned
up even if, for example, ModemManager crashes and mmcli is
no longer usable.

Signed-off-by: Oliver Sedlbauer <osedlbauer@tdt.de>
2023-10-30 08:53:10 +01:00
Oliver Sedlbauer
01fb59f4e2 modemmanager: check status of report-kernel-event
At mm_report_modem_wait a wait status is set. When attempting to report
an event (via hotplug or during startup) and the DBus is not yet available,
the status in the sysfs cache is set to 'processed' incorrectly, even
if mmcli fails.
This is fixed by aborting the operation and logging an error when
the kernel report fails.

Signed-off-by: Oliver Sedlbauer <osedlbauer@tdt.de>
2023-10-25 09:33:22 +02:00
Oliver Sedlbauer
9ae43c14e8 modemmanager: remove sysfscache after dbus ready
The mm_report_events_from_cache method is called during the startup and
informs the ModemManager of kernel events. Additionally, hotplug scripts
inform the ModemManager of kernel events. Processed events are stored in
the sysfs cache. It is possible for a hotplug script to write to the
sysfs cache while the mm_report_events_from_cache method is still waiting
for the ModemManager to be available on the bus during startup.
This could lead to a misbehavior where modems are not recognized.
To ensure a clean state on startup, the sysfs cache is cleared after the
ModemManager is available, ensuring reliable processing of kernel events.

Signed-off-by: Oliver Sedlbauer <osedlbauer@tdt.de>
2023-10-25 09:33:22 +02:00
Maxim Anisimov
5a81a131b6 modemmanager: bump to 1.22.0
- switch to builtin plugins
- import upstream patch for fixing support of ublox LARA-R6001 / LARA-R6001D modules
  (see: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/779)

Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
2023-10-18 07:35:44 +03:00
Florian Eckert
56111297af modemmanger: bump PKG_RELEASE
The PKG_RELEASE was not incremented during the last merge, the commit shows
that it is incremented by one, but this was already done during the last
change. Very strange. Hence this commit which increments PKG_RELEASE by
one.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2023-09-27 15:56:49 +02:00
Philip Prindeville
aa03634cbc modemmanager: handle no *.conf files being installed
To begin with, there are only a couple of .conf files, and
one of them is for testing, and the other is only installed
when MBIM is enabled, so if you build without MBIM you'll
have a failing install:

  install -m0644 /home/pprindeville/work/openwrt/build_dir/target-x86_64_musl/modemmanager-1.20.6/ipkg-install/usr/share/ModemManager/*.conf /home/pprindeville/work/openwrt/build_dir/target-x86_64_musl/modemmanager-1.20.6/.pkgdir/modemmanager/usr/share/ModemManager
  install: cannot stat '/home/pprindeville/work/openwrt/build_dir/target-x86_64_musl/modemmanager-1.20.6/ipkg-install/usr/share/ModemManager/*.conf': No such file or directory
  make[2]: *** [Makefile:161: /home/pprindeville/work/openwrt/build_dir/target-x86_64_musl/modemmanager-1.20.6/.pkgdir/modemmanager.installed] Error 1
  make[2]: Leaving directory '/home/pprindeville/work/openwrt/feeds/packages/net/modemmanager'

So make sure there's anything there to copy over first.

Signed-off-by: Philip Prindeville <pprindeville@netgate.com>
2023-09-05 21:38:27 -06:00
Florian Eckert
161fd74fa2 modemmanager: copy dbus interfaces file to staging
In order to use the dbus interfaces via the command gdbus-codegen, the
xml files must be copied into the building staging directory, so that other
programmes can use them during compilation.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2023-08-18 13:31:19 +02:00
Florian Eckert
015106346c modemmanager: add setting for allowed and preferred mode
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2023-08-09 14:13:06 +02:00
Florian Eckert
5fa043000f modemmanager: remove unneeded teardown error reporting
Teardown error reporting is not needed, bacause it overrides init error
reporting.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2023-08-09 14:10:25 +02:00
Florian Eckert
dbf23705c5 modemmanager: fix white spaces
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2023-08-09 14:10:20 +02:00
Florian Eckert
89391d4213 modemmanager: improve 'simple connection' option handling
The line to generate the argument list for 'simple connect' is quite
long and is not maintainable. To improve the handling a function
'append_param' was added for appending the 'simple connect' options.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2023-07-24 13:46:39 +02:00
Francisco Jose Alvarez
7ba2c969b2 modemmanager: Adding support for 'allow_roaming' option
Signed-off-by: Francisco Jose Alvarez <francisco.alvarez@galgus.net>
* Update commit head
* Rebase patch to the latest changes
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2023-07-24 12:57:39 +02:00
Florian Eckert
2f00e4b8d7 modemmanger: add missing proto_init_update in teardown
Inform netifd with missing 'proto_update', that the interface is not
up anymore.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2023-07-24 09:42:12 +02:00
Florian Eckert
30911865b2 modemmanager: do not set proto_notify_error on teardown
If on teardown the 'proto_notify_error' is set to 'MM_TEARDOWN_IN_PROGRESS',
then an error which is set on 'setup' is not visible in the ubus
network.interface.<iface> status output.

{
  "up": false,
  "pending": false,
  "available": true,
  "autostart": false,
  "dynamic": false,
  "proto": "modemmanager",
  "data": {
  },
  "errors": [
    {
      "subsystem": "dualsim",
      "code": "MM_TEARDOWN_IN_PROGRESS"
    }
  ]
}

It alway shows the code 'MM_TEARDWON_IN_PROGRESS'!

By removing the line 'proto_notify_error "${interface}" MM_TEARDOWN_IN_PROGRESS'
in teardown, the last error is show in the proto stack from setup.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2023-07-24 09:41:51 +02:00
Mladen Milinkovic
f3943dbb2a modemmanager: support setting plmn
Signed-off-by: Mladen Milinkovic <maxrd2@smoothware.net>
2023-07-21 16:39:01 +02:00
Florian Eckert
fd63e400ba modemmanager: if an alias name is used do not check sysfs path
If an alias name is used for the modem, then a check if the device exists
in sysfs does not work. To fix this remove the check if the sysfs device
exists. The protocoll handler already checks if the modem is responsible
for this device on the next line.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2023-06-15 15:45:16 +02:00
Florian Eckert
e66fead6d4 modemmanager: do not cache virtual device events
On small systems with many virtual devices, the modem manager sometimes
could not start because it took too long until all devices for the modem
were recognised. This is because all system events that are stored in
the file events.cache have to be processed. To speed up the processing,
all devices under /sys/devices/virtual are now filtered out so that they
do not have to be processed.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2023-06-15 15:09:55 +02:00
Andre Heider
35f4ef76e0 treewide: refactor to use PKG_BUILD_FLAGS:=gc-sections
See commit da370098 "treewide: add support for "gc-sections" in
PKG_BUILD_FLAGS" on the main repository.

Note: This only touches packages which use all three parts
(-ffunction-sections, -fdata-sections and -Wl,--gc-sections) enabled by
this build flag. Some packages only use a subset, and these are left
unchanged for now.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2023-04-08 08:38:54 +02:00
Kuan-Yi Li
0c526d09a8 modemmanager: bump to 1.20.6
Signed-off-by: Kuan-Yi Li <kyli@abysm.org>
2023-03-09 14:13:13 +08:00
Kuan-Yi Li
cec29e9105 modemmanager: bump to 1.20.2
Drop deprecated AUTORELEASE.

Disable unused tests as its compilation is optional in 1.20.

Signed-off-by: Kuan-Yi Li <kyli@abysm.org>
2022-12-09 06:32:32 +08:00
Maxim Anisimov
c588b92d51 modemmanager: bump to 1.18.12
Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
2022-09-14 22:12:01 +03:00
Rosen Penev
df5d7245b9 treewide: remove PKG_INSTALL for meson projects
It doesn't seem to be used by meson.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2022-06-15 18:07:46 -07:00
Aleksander Morgado
bc754f31cf modemmanager: report network initiated disconnections to netifd
The new connection dispatcher scripts support integrated in
ModemManager 1.18.8 allows us to provide a openwrt-specific dispatcher
script used to report netifd that the underlying network connection is
down.

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

Fixes https://github.com/openwrt/openwrt/issues/8368
Fixes https://github.com/openwrt/packages/issues/14096

Signed-off-by: Aleksander Morgado <aleksander@aleksander.es>
2022-05-14 21:39:50 -07:00
Aleksander Morgado
e430420aa1 modemmanager: install available FCC unlock scripts
The FCC unlock scripts are installed but not enabled by default.

Signed-off-by: Aleksander Morgado <aleksander@aleksander.es>
2022-05-14 21:39:50 -07:00
Aleksander Morgado
43d4e8fff8 modemmanager: bump to 1.18.8
Also removed two patches that are already included in the upstream
release.

Signed-off-by: Aleksander Morgado <aleksander@aleksander.es>
2022-05-14 21:39:50 -07:00
Maxim Anisimov
6ae8b15d68 modemmanager: switch to meson build tools
Using https://gitlab.freedesktop.org/mobile-broadband/ModemManager.git to download the source code.
Added compile option to compile qrtr support.
Enabled lto and additional gcc flags for perfomance and less size.
Modified to use meson as upstream has abandoned autotools.
Removed BUILD_PARALLEL options. These are default with ninja/meson.

Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
2022-03-30 21:48:56 -07:00
Kuan-Yi Li
de9fce568b modemmanager: bump to 1.18.6
Remove upstreamed patch.

Signed-off-by: Kuan-Yi Li <kyli@abysm.org>
2022-03-09 02:15:46 -08:00
Nicholas Smith
8a878440bf modemmanager: bump to 1.18.4 with patch
The included patch corrects an issue preventing udev rules from
being parsed correctly. [1][2]

This patch should not be needed after the next release. [3]

More information:
[1] e9f254ba3f
[2] https://lists.freedesktop.org/archives/modemmanager-devel/2021-December/009024.html
[3] https://lists.freedesktop.org/archives/modemmanager-devel/2021-December/009022.html

Signed-off-by: Nicholas Smith <nicholas@nbembedded.com>
2022-02-11 11:58:42 -08:00
Florian Eckert
0b027b131c ModemManager: refactoring procd init script
The way the init script is written now, we get a bad output when calling
the ubus service backend.

ubus call service list "{'verbose':true,'name':'modemmanager'}"
>{
>        "modemmanager": {
>                "instances": {
>                        "instance1": {
>                                "running": true,
>                                "pid": 20511,
>                                "command": [
>                                        "sh",
>                                        "-c",
>                                        ".
>/usr/share/ModemManager/modemmanager.common;    \t
>mkdir -m 0755 -p /var/run/modemmanager;          \t
>mm_cleanup_interfaces;                            \t
>( mm_report_events_from_cache ) >/dev/null 2>&1 & \t
>/usr/sbin/ModemManager"
>                                ],
>                                "term_timeout": 5,
>                                "respawn": {
>                                        "threshold": 3600,
>                                        "timeout": 5,
>                                        "retry": 5
>                                },
>                                "pidfile":"/var/run/modemmanager/modemmanager.pid"
>                        }
>                }
>        }
>}"

I also get the output in the log that the PID file cannot be created.

> daemon.err procd: Failed to remove pidfile: :No such file or directory

The changes in this commit fixes this issues, by moving startup into a
wrapper script.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2021-12-06 14:49:43 +01:00
Aleksander Morgado
2a31359c47 modemmanager: add support for wwan subsystem in hotplug
WWAN devices may now be exposed in the new 'wwan' subsystem in the
kernel (since 5.13), initially applicable to devices exposed in PCIe
(no USB), but at some point may also apply to USB devices that until
now were exposed via other subsystems (e.g. usbmisc, tty).

Signed-off-by: Aleksander Morgado <aleksander@aleksander.es>
2021-10-19 21:39:26 +02:00
Kuan-Yi Li
2937f0024b modemmanager: bump to 1.18.2
Signed-off-by: Kuan-Yi Li <kyli@abysm.org>
2021-09-20 21:52:09 +08:00
Nicholas Smith
c7ec9ec410 modemmanager: switch to autorelease
Signed-off-by: Nicholas Smith <nicholas@nbembedded.com>
2021-08-22 16:12:36 +10:00
Nicholas Smith
858d61b148 modemmanager: bump to 1.16.10
Signed-off-by: Nicholas Smith <nicholas@nbembedded.com>
2021-08-22 15:50:33 +10:00
Nicholas Smith
5bfe8ed2df modemmanager: bump to 1.16.6
Signed-off-by: Nicholas Smith <nicholas@nbembedded.com>
2021-06-07 09:02:37 +10:00
Nicholas Smith
02d8bbcfe0 modemmanager: bump to 1.16.2
Signed-off-by: Nicholas Smith <nicholas@nbembedded.com>
2021-03-07 19:50:23 +10:00
Nicholas Smith
54a9b58ffd modemmanager: bump to version 1.16.0
Signed-off-by: Nicholas Smith <nicholas@nbembedded.com>
2021-02-24 13:43:52 +10:00
Nicholas Smith
a0fb37f78c modemmanager: bump version
Signed-off-by: Nicholas Smith <nicholas.smith@telcoantennas.com.au>
2021-01-19 08:47:52 +10:00
Rosen Penev
aca1ee1b67 modemmanager: bump release
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-12-09 01:40:11 -08:00
Rosen Penev
520a619e58
Merge pull request #13009 from valexi7/master
modemmanager: Added options
2020-12-09 00:55:54 -08:00
Nicholas Smith
e13d36fa8b modemmanager: bump to 1.14.8
Signed-off-by: Nicholas Smith <nicholas.smith@telcoantennas.com.au>
2020-11-30 10:35:42 +10:00
Aleksander Morgado
a7108c9e12 modemmanager: include all init commands in the procd instance
If procd relaunches the ModemManager daemon after e.g. a crash, we
also want it to notify all cached hotplug events, or otherwise we
would end up leaving the daemon running without the full initial
processing done.

This change modifies the init script to include all the required init
commands as part of the procd instance command, so that procd launches
all of them on every respawn.

Signed-off-by: Aleksander Morgado <aleksander@aleksander.es>
2020-11-02 10:55:17 +01:00
Aleksander Morgado
9a16087fd6 modemmanager: increase initial timeout for event reporting
When the ModemManager daemon is started by the init script, we're
explicitly calling mm_report_events_from_cache() so that all the
hotplug events that happened before that moment are properly notified
to the newly launched daemon.

This initial reporting of events does a wait for the ModemManager
process to be available in DBus, and if the daemon isn't registered in
the bus in a given time, the process is considered failed:

  Sun Sep  6 16:20:02 2020 ModemManager: hotplug: checking if ModemManager is available...
  Sun Sep  6 16:20:02 2020 ModemManager: hotplug: ModemManager not yet available
  Sun Sep  6 16:20:03 2020 [2180]: <info>  ModemManager (version 1.14.6) starting in system bus...
  Sun Sep  6 16:20:03 2020 ModemManager: hotplug: checking if ModemManager is available...
  Sun Sep  6 16:20:04 2020 ModemManager: hotplug: ModemManager not yet available
  Sun Sep  6 16:20:05 2020 ModemManager: hotplug: checking if ModemManager is available...
  Sun Sep  6 16:20:05 2020 ModemManager: hotplug: ModemManager not yet available
  Sun Sep  6 16:20:06 2020 ModemManager: hotplug: checking if ModemManager is available...
  Sun Sep  6 16:20:06 2020 ModemManager: hotplug: ModemManager not yet available
  Sun Sep  6 16:20:07 2020 ModemManager: hotplug: checking if ModemManager is available...
  Sun Sep  6 16:20:07 2020 ModemManager: hotplug: ModemManager not yet available
  Sun Sep  6 16:20:08 2020 ModemManager: hotplug: checking if ModemManager is available...
  Sun Sep  6 16:20:08 2020 ModemManager: hotplug: ModemManager not yet available
  Sun Sep  6 16:20:09 2020 ModemManager: hotplug: checking if ModemManager is available...
  Sun Sep  6 16:20:09 2020 ModemManager: hotplug: ModemManager not yet available
  Sun Sep  6 16:20:10 2020 ModemManager: hotplug: checking if ModemManager is available...
  Sun Sep  6 16:20:10 2020 ModemManager: hotplug: ModemManager not yet available
  Sun Sep  6 16:20:11 2020 ModemManager: hotplug: checking if ModemManager is available...
  Sun Sep  6 16:20:11 2020 ModemManager: hotplug: ModemManager not yet available
  Sun Sep  6 16:20:12 2020 ModemManager: hotplug: checking if ModemManager is available...
  Sun Sep  6 16:20:12 2020 ModemManager: hotplug: ModemManager not yet available
  Sun Sep  6 16:20:12 2020 ModemManager: hotplug: error: couldn't report initial kernel events: ModemManager not running

Update the default wait time for this initial event notification from
10s to 60s, because there are cases where the daemon is slower to
boot, e.g. during the first boot after a sysupgrade.

Signed-off-by: Aleksander Morgado <aleksander@aleksander.es>
2020-10-30 23:29:55 +01:00
Nicholas Smith
87593abb06 modemmanager: bump to 1.14.6
Signed-off-by: Nicholas Smith <nicholas.smith@telcoantennas.com.au>
2020-10-15 09:39:02 +10:00
Aleksander Morgado
efda597235 modemmanager: bump to 1.14.2
https://lists.freedesktop.org/archives/modemmanager-devel/2020-August/008099.html

Signed-off-by: Aleksander Morgado <aleksander@aleksander.es>
2020-08-20 10:01:19 +02:00