mirror of
https://gitlab.archlinux.org/tpowa/archboot.git
synced 2024-09-20 03:50:37 +02:00
switching to wpa_supplicant backend
This commit is contained in:
parent
96ced0d577
commit
3ce2498222
1 changed files with 25 additions and 18 deletions
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue