[openwrt/openwrt] uqmi: skip registration state check if not supported

LEDE Commits lede-commits at lists.infradead.org
Sun Nov 30 14:51:04 PST 2025


hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/7ff854a197c765bd6922a93c3eada627e2dff987

commit 7ff854a197c765bd6922a93c3eada627e2dff987
Author: Til Kaiser <mail at tk154.de>
AuthorDate: Tue Nov 25 11:43:22 2025 +0100

    uqmi: skip registration state check if not supported
    
    The Quectel RG255C modem used in the Teltonika RUT976 does not support
    the 'Get Serving System' QMI command, returning "Invalid QMI command".
    Without this change, the script would fail even though the connection
    could be established successfully.
    
    This patch skips the registration state check if the command is not
    supported and relies on subsequent checks instead.
    
    Signed-off-by: Til Kaiser <mail at tk154.de>
    Link: https://github.com/openwrt/openwrt/pull/20933
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

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 ebce281b80..8297e6b3f0 100755
--- a/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
+++ b/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
@@ -270,10 +270,13 @@ proto_qmi_setup() {
 	echo "Waiting for network registration"
 	sleep 5
 	local registration_timeout=0
+	local serving_system=""
 	local registration_state=""
 	while true; do
-		registration_state=$(uqmi -s -d "$device" -t 1000 --get-serving-system 2>/dev/null | jsonfilter -e "@.registration" 2>/dev/null)
+		serving_system="$(uqmi -s -d "$device" -t 1000 --get-serving-system 2>/dev/null)"
+		registration_state=$(echo "$serving_system" | jsonfilter -e "@.registration" 2>/dev/null)
 
+		[ "$serving_system" = "\"Invalid QMI command\"" ] && break
 		[ "$registration_state" = "registered" ] && break
 
 		if [ "$registration_state" = "searching" ] || [ "$registration_state" = "not_registered" ]; then




More information about the lede-commits mailing list