]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
qmi: increase SIM power-cycle timeouts 18772/head
authorAntti Seppälä <a.seppala@gmail.com>
Sat, 10 May 2025 10:54:56 +0000 (13:54 +0300)
committerHauke Mehrtens <hauke@hauke-m.de>
Thu, 29 May 2025 22:16:48 +0000 (00:16 +0200)
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>
package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh

index b08b225104848a23edd43c98514e3dcf8a83f62b..a6a3fdaa693297985d0825ce9174665833e0e8be 100755 (executable)
@@ -107,7 +107,7 @@ proto_qmi_setup() {
        # 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
@@ -122,7 +122,7 @@ proto_qmi_setup() {
 
                        if [ "$uim_state_timeout" -lt "$timeout" ] || [ "$timeout" = "0" ]; then
                                let uim_state_timeout++
-                               sleep 1
+                               sleep 5
                                continue
                        fi