[openwrt/openwrt] uqmi: added timeout to fix hanging qmi.sh

LEDE Commits lede-commits at lists.infradead.org
Sun Oct 8 05:15:56 PDT 2023


hauke pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/5b00873f5d14f623185388251e46850940c50383

commit 5b00873f5d14f623185388251e46850940c50383
Author: Uwe Niethammer <uwe at dr-niethammer.de>
AuthorDate: Sun Oct 1 12:26:51 2023 +0200

    uqmi: added timeout to fix hanging qmi.sh
    
    Modems which are using qmi do not reply on the 1st sync but they do
    on subsequent. So qmi.sh is hanging on the first call. Since 2020 uqmi
    supports a timeout parameter. Unfortunately qmi.sh didn't make use of
    this parameter. So qmi.sh is now invoking an early dummy access to
    unlock the modem
    
    Signed-off-by: Uwe Niethammer <uwe at dr-niethammer.de>
    (cherry picked from commit 32a696f9e419ebec5b166847a16a5a45d030acbd)
---
 package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh b/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
index 6c5104bccd..eab7f1ea13 100755
--- a/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
+++ b/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
@@ -83,6 +83,8 @@ proto_qmi_setup() {
 
 	echo "Waiting for SIM initialization"
 	local uninitialized_timeout=0
+	# timeout 3s for first call to avoid hanging uqmi
+	uqmi -d "$device" --get-pin-status -t 3000 > /dev/null 2>&1
 	while uqmi -s -d "$device" --get-pin-status | grep '"UIM uninitialized"' > /dev/null; do
 		[ -e "$device" ] || return 1
 		if [ "$uninitialized_timeout" -lt "$timeout" -o "$timeout" = "0" ]; then




More information about the lede-commits mailing list