uqmi: wait for the control device too
authorThomas Equeter <tequeter@users.noreply.github.com>
Thu, 16 Aug 2018 19:39:05 +0000 (21:39 +0200)
committerJohn Crispin <john@phrozen.org>
Wed, 29 Aug 2018 11:10:12 +0000 (13:10 +0200)
The control device /dev/cdc-wdm0 is not available immediately on the
D-Link DWR-921 Rev.C3, therefore the wwan interface fails to start at
boot with a "The specified control device does not exist" error.

This patch alters /lib/netifd/proto/qmi.sh to wait for
network.wwan.delay earlier, before checking for the control device,
instead of just before interacting with the modem.

One still has to use network.wwan.proto='qmi', as the "wwan" proto
performs that sort of check before any delay is possible, failing with a
"No valid device was found" error.

Signed-off-by: Thomas Equeter <tequeter@users.noreply.github.com>
package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh

index 38d83ace5fcc5db23d5eeb8002d03b17984ce0a2..05055b14842571aa1e4a2804b5896f1d273313e6 100755 (executable)
@@ -44,6 +44,8 @@ proto_qmi_setup() {
                return 1
        }
 
+       [ -n "$delay" ] && sleep "$delay"
+
        device="$(readlink -f $device)"
        [ -c "$device" ] || {
                echo "The specified control device does not exist"
@@ -62,8 +64,6 @@ proto_qmi_setup() {
                return 1
        }
 
-       [ -n "$delay" ] && sleep "$delay"
-
        while uqmi -s -d "$device" --get-pin-status | grep '"UIM uninitialized"' > /dev/null; do
                [ -e "$device" ] || return 1
                sleep 1;