uqmi: skip registration state check if not supported
authorTil Kaiser <[email protected]>
Tue, 25 Nov 2025 10:43:22 +0000 (11:43 +0100)
committerHauke Mehrtens <[email protected]>
Sun, 30 Nov 2025 22:49:57 +0000 (23:49 +0100)
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 <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20933
Signed-off-by: Hauke Mehrtens <[email protected]>
package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh

index ebce281b80345241727d9cce4a45e5ce370f3724..8297e6b3f091bf0f6c502441f890ecf881b8ebf8 100755 (executable)
@@ -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