proto_config_add_int profile
proto_config_add_boolean dhcpv6
proto_config_add_boolean autoconnect
+ proto_config_add_int plmn
proto_config_add_defaults
}
proto_qmi_setup() {
local interface="$1"
- local device apn auth username password pincode delay modes pdptype profile dhcpv6 autoconnect $PROTO_DEFAULT_OPTIONS
+ local device apn auth username password pincode delay modes pdptype profile dhcpv6 autoconnect plmn $PROTO_DEFAULT_OPTIONS
local cid_4 pdh_4 cid_6 pdh_6
local ip_6 ip_prefix_length gateway_6 dns1_6 dns2_6
- json_get_vars device apn auth username password pincode delay modes pdptype profile dhcpv6 autoconnect $PROTO_DEFAULT_OPTIONS
+ json_get_vars device apn auth username password pincode delay modes pdptype profile dhcpv6 autoconnect plmn $PROTO_DEFAULT_OPTIONS
[ "$metric" = "" ] && metric="0"
proto_set_available "$interface" 0
return 1
}
+
+ device="$(readlink -f $device)"
[ -c "$device" ] || {
echo "The specified control device does not exist"
proto_notify_error "$interface" NO_DEVICE
[ -n "$delay" ] && sleep "$delay"
while uqmi -s -d "$device" --get-pin-status | grep '"UIM uninitialized"' > /dev/null; do
+ [ -e "$device" ] || return 1
sleep 1;
done
}
}
+ [ -n "$plmn" ] && {
+ local mcc mnc
+ if [ "$plmn" = 0 ]; then
+ mcc=0
+ mnc=0
+ echo "Setting PLMN to auto"
+ else
+ mcc=${plmn:0:3}
+ mnc=${plmn:3}
+ echo "Setting PLMN to $plmn"
+ fi
+ uqmi -s -d "$device" --set-plmn --mcc "$mcc" --mnc "$mnc" || {
+ echo "Unable to set PLMN"
+ proto_notify_error "$interface" PLMN_FAILED
+ proto_block_restart "$interface"
+ return 1
+ }
+ }
+
uqmi -s -d "$device" --set-data-format 802.3
uqmi -s -d "$device" --wda-set-data-format 802.3
+ uqmi -s -d "$device" --sync
echo "Waiting for network registration"
while uqmi -s -d "$device" --get-serving-system | grep '"searching"' > /dev/null; do
+ [ -e "$device" ] || return 1
sleep 5;
done