switching to wpa_supplicant backend

This commit is contained in:
Tobias Powalowski 2022-12-07 15:33:37 +01:00
parent 96ced0d577
commit 3ce2498222

View file

@ -67,25 +67,21 @@ donetwork() {
#shellcheck disable=SC2001,SC2086
WLAN_ESSID="$(echo ${WLAN_ESSID} | sed -e 's|#|\ |g')"
WPA=""
WEP=""
DIALOG --infobox "Checking on WPA/PSK encryption ..." 3 40
iw dev "${INTERFACE}" scan | grep -q 'RSN:' && WPA="1"
iw dev "${INTERFACE}" scan | grep -q 'WPA:' && WPA="1"
DIALOG --infobox "Checking on WEP encryption ..." 3 40
iw dev "${INTERFACE}" scan | grep -q 'Privacy:' && WEP="1"
#shellcheck disable=SC2181
while [[ "${WLAN_SECURITY}" = "" ]]; do
#shellcheck disable=2046
DIALOG --ok-label "Select" --menu "Select encryption type:" 9 40 7 \
$([[ "${WPA}" == "1" ]] && echo "wpa" "WPA/PSK") \
$([[ "${WEP}" == "1" ]] && echo "wep" "WEP") \
"none" "NO encryption" 2>"${ANSWER}"
$([[ "${WPA}" == "1" ]] && echo "WPA-PSK" "Encrypted network") \
"NONE" "Open network/NO encryption" 2>"${ANSWER}"
case $? in
1) return 1 ;;
0) WLAN_SECURITY=$(cat "${ANSWER}") ;;
esac
done
if [[ "${WLAN_SECURITY}" == "wpa" || "${WLAN_SECURITY}" == "wep" ]]; then
if [[ "${WLAN_SECURITY}" == "wpa" ]]; then
DIALOG --inputbox "Enter your KEY:" 5 40 "WirelessKey" 2>"${ANSWER}" || return 1
WLAN_KEY=$(cat "${ANSWER}")
fi
@ -137,6 +133,10 @@ donetwork() {
echo "" >> "${NETWORK_PROFILE}"
echo "[Network]" >> "${NETWORK_PROFILE}"
[[ "${IP}" == "dhcp" ]] && echo "DHCP=yes" >> "${NETWORK_PROFILE}"
if [[ "${CONNECTION}" = "wireless" ]]; then
#shellcheck disable=SC2129
echo "IgnoreCarrierLoss=3s" >> >>"${NETWORK_PROFILE}"
fi
if [[ "${IP}" = "static" ]]; then
#shellcheck disable=SC2129
echo "Address=${IPADDR}" >>"${NETWORK_PROFILE}"
@ -144,18 +144,25 @@ donetwork() {
echo "DNS=${DNS}" >>"${NETWORK_PROFILE}"
fi
if [[ "${CONNECTION}" = "wireless" ]]; then
#shellcheck disable=SC2129
echo "Security=${WLAN_SECURITY}" >>"${NETWORK_PROFILE}"
echo "ESSID='${WLAN_ESSID}'" >>"${NETWORK_PROFILE}"
echo "Key='${WLAN_KEY}'" >>"${NETWORK_PROFILE}"
[[ "${WLAN_HIDDEN}" = "yes" ]] && echo "Hidden=yes" >>"${NETWORK_PROFILE}"
# setup wpa_supplicant
WPA_PROFILE=/etc/wpa_supplicant/wpa_supplicant-${INTERFACE}.conf
echo "#$NETWORK_PROFILE generated by archboot setup" > "${WPA_PROFILE}"
echo "network={"
[[ "${WLAN_HIDDEN}" == yes ]] && echo "scan_ssid=1" >> "${WPA_PROFILE}"
echo "key_mgmt=\"${WLAN_SECURITY}\"" >> "${WPA_PROFILE}"
echo "ssid=\"${WLAN_ESSID}\"" >> "${WPA_PROFILE}"
echo "PSK=\"${WLAN_KEY}\"" >> "${WPA_PROFILE}"
echo "}" >> "${WPA_PROFILE}"
echo "Setup wpa_supplicant config to ${WPA_PROFILE}."
echo "Starting wpa_supplicant@${INTERFACE}.service ..." > "${LOG}"
systemctl restart wpa_supplicant@${INTERFACE}.service
fi
if [[ -e /etc/systemd/network/10-wired-auto-dhcp.network ]]; then
echo "Disabled Archboot's bootup wired auto dhcp browsing." > "${LOG}"
rm /etc/systemd/network/10-wired-auto-dhcp.network
fi
echo "Using setup's network profile "${NETWORK_PROFILE}" now..." > "${LOG}"
systemctl restart systemd-networkd.service
# bring down interface first
#systemctl stop dhcpcd@"${INTERFACE}".service
#ip link set dev "${INTERFACE}" down
# run netctl
#netctl restart "$(basename "${NETWORK_PROFILE}")" >"${LOG}"
# add sleep here dhcp can need some time to get link
DIALOG --infobox "Waiting 30 seconds for network link to come up ..." 3 60
NETWORK_COUNT="0"
@ -165,7 +172,7 @@ donetwork() {
[[ "${NETWORK_COUNT}" == "30" ]] && break
done
if ! grep -qw up /sys/class/net/"${INTERFACE}"/operstate; then
DIALOG --msgbox "Error occured while running netctl. (see 'journalctl -xn' for output)" 0 0
DIALOG --msgbox "Your network is not correctly working, please configure again!" 0 0
return 1
else
DIALOG --infobox "Link is up. Continuing in 3 seconds ..." 3 60