Some modems and SIM cards take a bit longer to initialize after UIM has been
powered off. Waiting too little time can cause the qmi protocol to end up
in a loop repeatedly power-cycling the SIM card.
Avoid that by
a) increasing the time we unconditionally sleep after --uim-power-on
b) increasing the time we allow uqmi to wait for response for --uim-get-sim-state
Signed-off-by: Antti Seppälä <a.seppala@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18772
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
# Check if UIM application is stuck in illegal state
local uim_state_timeout=0
while true; do
- json_load "$(uqmi -s -d "$device" -t 1000 --uim-get-sim-state)"
+ json_load "$(uqmi -s -d "$device" -t 2000 --uim-get-sim-state)"
json_get_var card_application_state card_application_state
# SIM card is either completely absent or state is labeled as illegal
if [ "$uim_state_timeout" -lt "$timeout" ] || [ "$timeout" = "0" ]; then
let uim_state_timeout++
- sleep 1
+ sleep 5
continue
fi