Skip to content

Commit 3db3238

Browse files
committed
Add support for multiple wireless devies at firstlogin
1 parent 3acd023 commit 3db3238

File tree

1 file changed

+21
-2
lines changed

1 file changed

+21
-2
lines changed

packages/bsp/common/usr/lib/armbian/armbian-firstlogin

+21-2
Original file line numberDiff line numberDiff line change
@@ -284,13 +284,29 @@ set_timezone_and_locales() {
284284
done
285285
if [[ "${response}" =~ ^(Y|y)$ ]]; then
286286

287+
# We could have multiple devices
288+
if (( $(grep -c . <<<"$WIFI_DEVICE") > 1 )); then
289+
scanning=0
290+
while [[ ${scanning} -lt 3 ]]; do
291+
scanning=$(( scanning + 1 ))
292+
echo -e "\nMultiple wireless adaptors detected. Choose primary:\n"
293+
WIFI_DEVICES=($(printf '%s\n' "${WIFI_DEVICE[@]}" | sed 's/^[ \t]*//' | sed 's/"//g' | sed 's/ESSID://' | awk 'BEGIN{FS=OFS=","} {$NF=++count OFS $NF} 1'))
294+
for str in ${WIFI_DEVICES[@]}; do echo $str | sed "s/,/ \t /g"; done
295+
echo ""
296+
read -r -p "Enter a number of wireles adaptor: " input
297+
if [[ "$input" =~ ^[0-9]{,2}$ && -n "$input" ]] ; then break; fi
298+
done
299+
[[ -z $input ]] && input=1
300+
WIFI_DEVICE=$(echo ${WIFI_DEVICES[$input-1]} | cut -d"," -f2)
301+
fi
302+
287303
# get list of wireless networks
288304
scanning=0
289305
broken=1
290306
while [[ ${scanning} -lt 3 ]]; do
291307
sleep 0.5
292308
scanning=$(( scanning + 1 ))
293-
ARRAY=($(iwlist ${WIFI_DEVICE} scanning 2> /dev/null | egrep 'ESSID' | sed 's/^[ \t]*//' | sed 's/"//g' | sed 's/ESSID://' | awk 'BEGIN{FS=OFS=","} {$NF=++count OFS $NF} 1'))
309+
ARRAY=($(iwlist ${WIFI_DEVICE} scanning 2> /dev/null | egrep 'ESSID' | sed 's/^[ \t]*//' | sed 's/"//g' | sed 's/ESSID://' | sed '/^$/d' | sort | uniq | awk 'BEGIN{FS=OFS=","} {$NF=++count OFS $NF} 1'))
294310
if [[ $? == 0 ]]; then broken=0; break; fi
295311
done
296312
# wifi can also fail
@@ -333,7 +349,10 @@ set_timezone_and_locales() {
333349
# apply to netplan
334350
systemctl daemon-reload
335351
netplan apply --timeout 0 2>/dev/null
336-
sleep 5
352+
for i in {10..01}; do
353+
sleep 1
354+
printf "\rConnecting $i"
355+
done
337356

338357
# exit if connection is suffesful
339358
if [[ -n $(iw "${WIFI_DEVICE}" link 2> /dev/null | grep "$SSID") ]]; then broken=0; break; fi

0 commit comments

Comments
 (0)