Skip to content

Commit

Permalink
Increase default sleep on ModemManager modem restart and add it as a …
Browse files Browse the repository at this point in the history
…parameter in network luci interface
  • Loading branch information
Ysurac committed Sep 18, 2024
1 parent c525e9c commit ef0040e
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,10 @@ return network.registerProtocol('modemmanager', {

s.taboption('advanced', form.Flag, 'debugmode', _('Enable Debugmode'));

o = s.taboption('advanced', form.Value, 'delay', _('Modem init timeout'), _('Amount of seconds to wait for the modem to become ready'));
o.datatype = 'uinteger';
o.placeholder = '120';

o = s.taboption('advanced', form.ListValue, 'loglevel', _('Log output level'));
o.value('ERR', _('Error'))
o.value('WARN', _('Warning'));
Expand Down
2 changes: 2 additions & 0 deletions omr-tracker/files/bin/omr-tracker
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,8 @@ _restart

OMR_TRACKER_INTERFACE_PROTO="$(uci -q get network.${OMR_TRACKER_INTERFACE}.proto)"
OMR_TRACKER_PREV_STATUS=""
[ "$OMR_TRACKER_INTERFACE_PROTO" = "modemmanager" ] && sleep $(uci -q get network.${OMR_TRACKER_INTERFACE}.delay || echo '120')

# main loop
while true; do
# setup tracker variables
Expand Down
14 changes: 7 additions & 7 deletions omr-tracker/files/usr/share/omr/post-tracking.d/002-error
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || { [ "$OMR_TRACKER_INTERFACE" != "omrvp
if [ "$mm_state_failed" = "unknown-capabilities" ]; then
_log "Interface $OMR_TRACKER_INTERFACE in failed state in ModemManager, reset modem..."
/usr/bin/mmcli -m ${modem} -r >/dev/null 2>&1
sleep 30
sleep $(uci -q get network.$OMR_TRACKER_INTERFACE.delay || echo '120')
elif false && [ "$mm_state_failed" = "sim-missing" ]; then
_log "Interface $OMR_TRACKER_INTERFACE in failed state in ModemManager, reset modem..."
/usr/bin/mmcli -m ${modem} -r >/dev/null 2>&1
Expand All @@ -56,20 +56,20 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || { [ "$OMR_TRACKER_INTERFACE" != "omrvp
sleep 5
_log "Set $OMR_TRACKER_INTERFACE up"
ifup $OMR_TRACKER_INTERFACE
sleep 30
sleep $(uci -q get network.$OMR_TRACKER_INTERFACE.delay || echo '120')
uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.restart_intf=1
uci -q commit openmptcprouter
elif [ "$mm_state" = "disabled" ]; then
# [ -n "$(echo $modeminfo | grep 'modem.3gpp.registration-state ' | grep home)" ]; then
_log "Interface $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) disabled, set it up"
/usr/bin/mmcli -m ${modem} -e >/dev/null 2>&1
ifup $OMR_TRACKER_INTERFACE
sleep 30
sleep $(uci -q get network.$OMR_TRACKER_INTERFACE.delay || echo '120')
elif [ "$mm_state" = "registered" ]; then
_log "Interface $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) registered, reset it"
#ifup $OMR_TRACKER_INTERFACE
/usr/bin/mmcli -m ${modem} -r >/dev/null 2>&1
sleep 30
sleep $(uci -q get network.$OMR_TRACKER_INTERFACE.delay || echo '120')
elif [ "$mm_state" = "locked" ]; then
mm_unlock_required=$(modemmanager_get_field "${MODEM_STATUS}" "modem.generic.unlock-required")
mm_generic_sim=$(modemmanager_get_field "${MODEM_STATUS}" "modem.generic.sim")
Expand All @@ -82,15 +82,15 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || { [ "$OMR_TRACKER_INTERFACE" != "omrvp
if [ "$mm_unlock_retries" -gt "1" ] && [ -n "$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode)" ]; then
_log "Interface $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) locked, set PIN"
mmcli -a -m ${modem} -i $mm_generic_sim --pin=$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode) >/dev/null 2>&1
sleep 20
sleep 30
ifup $OMR_TRACKER_INTERFACE
fi
fi
elif [ "$mm_unlock_required" = "sim-puk" ] && [ "$mm_unlock_retries" -gt "1" ] && [ -n "$(uci -q get network.$OMR_TRACKER_INTERFACE.pukcode)" ] && [ -n "$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode)" ]; then
_log "Interface $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) locked, set PUK"
mmcli -i $mm_generic_sim --puk=$(uci -q get network.$OMR_TRACKER_INTERFACE.pukcode) --pin=$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode) >/dev/null 2>&1
sleep 30
fi
sleep $(uci -q get network.$OMR_TRACKER_INTERFACE.delay || echo '120')
fi
fi
if [ "$modemfind" = "0" ]; then
Expand All @@ -99,7 +99,7 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || { [ "$OMR_TRACKER_INTERFACE" != "omrvp
#_log "Can't find $OMR_TRACKER_INTERFACE in ModemManager, restart modemmanager..."
_log "Can't find $OMR_TRACKER_INTERFACE in ModemManager"
#/etc/init.d/modemmanager restart
sleep 30
sleep $(uci -q get network.$OMR_TRACKER_INTERFACE.delay || echo '120')
fi
fi
#elif [ -n "$OMR_TRACKER_INTERFACE" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "modemmanager" ] && [ "$interface_available" = "false" ]; then
Expand Down

0 comments on commit ef0040e

Please sign in to comment.