installer: added basic wifi setup via dhcpcd (only WEP and WPA/PSK for now).
This commit is contained in:
parent
c3c67ad641
commit
08db3c6cb3
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#-
|
#-
|
||||||
# Copyright (c) 2012-2013 Juan Romero Pardines <xtraeme@gmail.com>.
|
# Copyright (c) 2012-2014 Juan Romero Pardines <xtraeme@gmail.com>.
|
||||||
# 2012 Dave Elusive <davehome@redthumb.info.tm>.
|
# 2012 Dave Elusive <davehome@redthumb.info.tm>.
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
@ -158,6 +158,7 @@ show_partitions() {
|
|||||||
# LVM
|
# LVM
|
||||||
for p in $(ls /dev/mapper 2>/dev/null|grep -v control); do
|
for p in $(ls /dev/mapper 2>/dev/null|grep -v control); do
|
||||||
[ "$p" = "live-rw" ] && continue
|
[ "$p" = "live-rw" ] && continue
|
||||||
|
[ "$p" = "live-base" ] && continue
|
||||||
fstype=$(lsblk -nfr /dev/$part|awk '{print $2}')
|
fstype=$(lsblk -nfr /dev/$part|awk '{print $2}')
|
||||||
fssize=$(lsblk -nr /dev/mapper/$p|awk '{print $4}')
|
fssize=$(lsblk -nr /dev/mapper/$p|awk '{print $4}')
|
||||||
echo "/dev/mapper/$p"
|
echo "/dev/mapper/$p"
|
||||||
@ -439,15 +440,43 @@ test_network() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
configure_wifi() {
|
configure_wifi() {
|
||||||
local dev="$1"
|
local dev="$1" ssid enc pass _wpasupconf=/etc/wpa_supplicant/wpa_supplicant.conf
|
||||||
|
|
||||||
DIALOG --form "Wireless configuration for $dev:" 0 0 0 \
|
DIALOG --form "Wireless configuration for ${dev}\n(encryption type: wep or wpa)" 0 0 0 \
|
||||||
"SSID:" 1 1 "add your AP name here" 1 21 20 0 \
|
"SSID:" 1 1 "" 1 16 30 0 \
|
||||||
"Encryption:" 2 1 "Only supported: WEP or WPA-PSK" 2 21 20 0 \
|
"Encryption:" 2 1 "" 2 16 3 0 \
|
||||||
"Passphrase:" 3 1 "Enter the AP passphrase here" 3 21 20 0 || return 1
|
"Password:" 3 1 "" 3 16 30 0 || return 1
|
||||||
|
set -- $(cat $ANSWER)
|
||||||
|
ssid="$1"; enc="$2"; pass="$3";
|
||||||
|
|
||||||
|
if [ -z "$ssid" ]; then
|
||||||
|
DIALOG --msgbox "Invalid SSID." ${MSGBOXSIZE}
|
||||||
|
return 1
|
||||||
|
elif [ -z "$enc" -o "$enc" != "wep" -a "$enc" != "wpa" ]; then
|
||||||
|
DIALOG --msgbox "Invalid encryption type (possible values: wep or wpa)." ${MSXBOXSIZE}
|
||||||
|
return 1
|
||||||
|
elif [ -z "$pass" ]; then
|
||||||
|
DIALOG --msgbox "Invalid AP password." ${MSGBOXSIZE}
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f ${_wpasupconf%.conf}-${dev}.conf
|
||||||
|
cp -f ${_wpasupconf} ${_wpasupconf%.conf}-${dev}.conf
|
||||||
|
if [ "$enc" = "wep" ]; then
|
||||||
|
echo "network={" >> ${_wpasupconf%.conf}-${dev}.conf
|
||||||
|
echo " ssid=\"$ssid\"" >> ${_wpasupconf%.conf}-${dev}.conf
|
||||||
|
echo " wep_key0=\"$pass\"" >> ${_wpasupconf%.conf}-${dev}.conf
|
||||||
|
echo " wep_tx_keyidx=0" >> ${_wpasupconf%.conf}-${dev}.conf
|
||||||
|
echo " auth_alg=SHARED" >> ${_wpasupconf%.conf}-${dev}.conf
|
||||||
|
echo "}" >> ${_wpasupconf%.conf}-${dev}.conf
|
||||||
|
else
|
||||||
|
wpa_passphrase "$ssid" "$pass" >> ${_wpasupconf%.conf}-${dev}.conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
configure_net_dhcp $dev
|
||||||
|
return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
configure_eth() {
|
configure_net() {
|
||||||
local dev="$1" rval
|
local dev="$1" rval
|
||||||
|
|
||||||
DIALOG --yesno "Do you want to use DHCP for $dev?" ${YESNOSIZE}
|
DIALOG --yesno "Do you want to use DHCP for $dev?" ${YESNOSIZE}
|
||||||
@ -469,10 +498,10 @@ configure_net_dhcp() {
|
|||||||
|
|
||||||
iface_setup $dev
|
iface_setup $dev
|
||||||
if [ $? -eq 1 ]; then
|
if [ $? -eq 1 ]; then
|
||||||
dhcpcd -t 10 -w -4 -L $dev 2>&1 | tee $LOG | \
|
dhcpcd -t 10 -w -4 -L $dev -e "wpa_supplicant_conf=/etc/wpa_supplicant/wpa_supplicant-${dev}.conf" 2>&1 | tee $LOG | \
|
||||||
DIALOG --progressbox "Initializing $dev via DHCP..." ${WIDGET_SIZE}
|
DIALOG --progressbox "Initializing $dev via DHCP..." ${WIDGET_SIZE}
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
DIALOG --msgbox "${BOLD}${RED}ERROR:${RESET} failed to run udhcpc. See $LOG for details." ${MSGBOXSIZE}
|
DIALOG --msgbox "${BOLD}${RED}ERROR:${RESET} failed to run dhcpcd. See $LOG for details." ${MSGBOXSIZE}
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
iface_setup $dev
|
iface_setup $dev
|
||||||
@ -535,10 +564,10 @@ menu_network() {
|
|||||||
--menu "$MENULABEL" ${MENUSIZE} ${DEVICES}
|
--menu "$MENULABEL" ${MENUSIZE} ${DEVICES}
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
dev=$(cat $ANSWER)
|
dev=$(cat $ANSWER)
|
||||||
if $(echo $dev|grep -q "wlan[0-9]" 2>/dev/null); then
|
if $(echo $dev|egrep -q "^wl.*" 2>/dev/null); then
|
||||||
configure_wifi $dev
|
configure_wifi $dev
|
||||||
else
|
else
|
||||||
configure_eth $dev
|
configure_net $dev
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@ -818,8 +847,12 @@ ${BOLD}Do you want to continue?${RESET}" 20 80 || return
|
|||||||
# network type empty??!!!
|
# network type empty??!!!
|
||||||
:
|
:
|
||||||
elif [ "$_type" = "dhcp" ]; then
|
elif [ "$_type" = "dhcp" ]; then
|
||||||
# if user had dhcp enabled, enable dhcpcd service for that device.
|
if [ -f /etc/wpa_supplicant/wpa_supplicant-${_dev}.conf ]; then
|
||||||
chroot $TARGETDIR systemctl enable dhcpcd.service >$LOG 2>&1
|
cp /etc/wpa_supplicant/wpa_supplicant-${_dev}.conf $TARGETDIR/etc/wpa_supplicant
|
||||||
|
chroot $TARGETDIR systemctl enable dhcpcd@${_dev}.service >$LOG 2>&1
|
||||||
|
else
|
||||||
|
chroot $TARGETDIR systemctl enable dhcpcd.service >$LOG 2>&1
|
||||||
|
fi
|
||||||
elif [ -n "$dev" -a -n "$type" = "static" ]; then
|
elif [ -n "$dev" -a -n "$type" = "static" ]; then
|
||||||
# static IP through dhcpcd.
|
# static IP through dhcpcd.
|
||||||
mv $TARGETDIR/etc/dhcpcd.conf $TARGETDIR/etc/dhdpcd.conf.orig
|
mv $TARGETDIR/etc/dhcpcd.conf $TARGETDIR/etc/dhdpcd.conf.orig
|
||||||
|
Loading…
x
Reference in New Issue
Block a user