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>
35 lines
1.3 KiB
Bash
Executable file
35 lines
1.3 KiB
Bash
Executable file
#!/bin/sh /etc/rc.common
|
|
# Copyright (C) 2016 Aleksander Morgado <aleksander@aleksander.es>
|
|
|
|
USE_PROCD=1
|
|
START=70
|
|
|
|
LOG_LEVEL="INFO"
|
|
|
|
start_service() {
|
|
# Setup ModemManager service
|
|
#
|
|
# We will make sure that the rundir always exists, and we initially cleanup
|
|
# all interfaces flagging them as unavailable.
|
|
#
|
|
# The cached events processing will wait for MM to be available in DBus
|
|
# and will make sure all ports are re-notified to ModemManager every time
|
|
# it starts.
|
|
#
|
|
# All these commands need to be executed on every MM start, even after
|
|
# procd-triggered respawns, which is why this is wrapped in a startup
|
|
# wrapper script called '/usr/sbin/ModemManager-wrapper'.
|
|
#
|
|
. /usr/share/ModemManager/modemmanager.common
|
|
procd_open_instance "service"
|
|
procd_set_param command /usr/sbin/ModemManager-wrapper
|
|
procd_append_param command --log-level="$LOG_LEVEL"
|
|
[ "$LOG_LEVEL" = "DEBUG" ] && procd_append_param command --debug
|
|
procd_set_param respawn "${respawn_threshold:-3600}" "${respawn_timeout:-5}" "${respawn_retry:-5}"
|
|
procd_set_param pidfile "${MODEMMANAGER_PID_FILE}"
|
|
procd_close_instance
|
|
procd_open_instance "monitor"
|
|
procd_set_param command /usr/sbin/ModemManager-monitor
|
|
procd_set_param respawn "${respawn_threshold:-3600}" "${respawn_timeout:-5}" "${respawn_retry:-5}"
|
|
procd_close_instance
|
|
}
|