| 1 |
# Copyright 1999-2004 Gentoo Technologies, Inc.
|
| 2 |
# Distributed under the terms of the GNU General Public License v2
|
| 3 |
# $Header: /var/cvsroot/gentoo/src/livecd-tools/net-setup,v 1.5 2004/10/20 11:37:33 wolf31o2 Exp $
|
| 4 |
|
| 5 |
#!/bin/bash
|
| 6 |
|
| 7 |
if [ `whoami` != "root" ]; then
|
| 8 |
echo "net-setup: must be root to continue"
|
| 9 |
exit 1
|
| 10 |
fi
|
| 11 |
|
| 12 |
if [ -z ${1} ]; then
|
| 13 |
echo "net-setup: please specify a network interface"
|
| 14 |
exit 1
|
| 15 |
fi
|
| 16 |
|
| 17 |
[ ! -d /tmp/setup.opts ] && mkdir /tmp/setup.opts
|
| 18 |
cd /tmp/setup.opts
|
| 19 |
|
| 20 |
dialog --title "Network setup" --menu "This script is designed to setup both wired and wireless network settings. All questions below apply to the ${1} interface only. Choose one option:" 20 60 7 1 "My network is wireless" 2 "My network is wired" 2> ${1}.WIRED
|
| 21 |
WIRED_WIRELESS=`cat ${1}.WIRED`
|
| 22 |
case $WIRED_WIRELESS in
|
| 23 |
1)
|
| 24 |
dialog --title "SSID" --inputbox "Please enter your SSID, or leave blank for selecting the nearest open network" 20 50 2> ${1}.SSID
|
| 25 |
SSID=`cat ${1}.SSID`
|
| 26 |
if [ -n "${SSID}" ]; then
|
| 27 |
dialog --title "WEP (Part 1)" --menu "Does your network use encryption?" 20 60 7 1 "Yes" 2 "No" 2> ${1}.WEP
|
| 28 |
WEP=`cat ${1}.WEP`
|
| 29 |
case $WEP in
|
| 30 |
1)
|
| 31 |
dialog --title "WEP (Part 2)" --menu "Are you entering your WEP key in HEX or ASCII?" 20 60 7 1 "HEX" 2 "ASCII" 2> ${1}.WEPTYPE
|
| 32 |
WEP_TYPE=`cat ${1}.WEPTYPE`
|
| 33 |
case $WEP_TYPE in
|
| 34 |
1)
|
| 35 |
dialog --title "WEP (Part 3)" --inputbox "Please enter your WEP key in the form of XXXX-XXXX-XX for 64-bit or XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XX for 128-bit" 20 50 2> ${1}.WEPKEY
|
| 36 |
WEP_KEY=`cat ${1}.WEPKEY`
|
| 37 |
if [ -n "${WEP_KEY}" -a -x /usr/sbin/iwconfig ]; then
|
| 38 |
/usr/sbin/iwconfig ${1} essid \"${SSID}\"
|
| 39 |
/usr/sbin/iwconfig ${1} key "${WEP_KEY}"
|
| 40 |
fi
|
| 41 |
;;
|
| 42 |
2)
|
| 43 |
dialog --title "WEP (Part 3)" --inputbox "Please enter your WEP key in ASCII form. This should be 5 or 13 characters for either 64-bit or 128-bit encryption, repectively" 20 50 2> ${1}.WEPKEY
|
| 44 |
WEP_KEY=`cat ${1}.WEPKEY`
|
| 45 |
if [ -n "${WEP_KEY}" -a -x /usr/sbin/iwconfig ]; then
|
| 46 |
/usr/sbin/iwconfig ${1} essid \""${SSID}"\"
|
| 47 |
/usr/sbin/iwconfig ${1} key s:"${WEP_KEY}"
|
| 48 |
fi
|
| 49 |
;;
|
| 50 |
esac
|
| 51 |
;;
|
| 52 |
2)
|
| 53 |
/usr/sbin/iwconfig ${1} essid \""${SSID}"\"
|
| 54 |
/usr/sbin/iwconfig ${1} key off
|
| 55 |
;;
|
| 56 |
esac
|
| 57 |
fi
|
| 58 |
;;
|
| 59 |
2)
|
| 60 |
;;
|
| 61 |
esac
|
| 62 |
|
| 63 |
dialog --title "TCP/IP setup" --menu "You can use DHCP to automatically configure a network interface or you can specify an IP and related settings manually. Choose one option:" 20 60 7 1 "Use DHCP to auto-detect my network settings" 2 "Specify an IP address manually" 2> ${1}.DHCP
|
| 64 |
DHCP=`cat ${1}.DHCP`
|
| 65 |
case $DHCP in
|
| 66 |
1)
|
| 67 |
/sbin/dhcpcd -t 10 ${1} &
|
| 68 |
;;
|
| 69 |
2)
|
| 70 |
dialog --title "IP address" --inputbox "Please enter an IP address for ${1}:" 20 50 "192.168.1.1" 2> ${1}.IP
|
| 71 |
IP=`cat ${1}.IP`
|
| 72 |
BC_TEMP="`echo $IP|cut -d . -f 1`.`echo $IP|cut -d . -f 2`.`echo $IP|cut -d . -f 3`.255"
|
| 73 |
dialog --title "Broadcast address" --inputbox "Please enter a Broadcast address for ${1}:" 20 50 "${BC_TEMP}" 2> ${1}.BC
|
| 74 |
BROADCAST=`cat ${1}.BC`
|
| 75 |
dialog --title "Network mask" --inputbox "Please enter a Network Mask for ${1}:" 20 50 "255.255.255.0" 2> ${1}.NM
|
| 76 |
NETMASK=`cat ${1}.NM`
|
| 77 |
dialog --title "Gateway" --inputbox "Please enter a Gateway for ${1} (hit enter for none:)" 20 50 2> ${1}.GW
|
| 78 |
GATEWAY=`cat ${1}.GW`
|
| 79 |
dialog --title "DNS server" --inputbox "Please enter a name server to use (hit enter for none:)" 20 50 2> ${1}.DNS
|
| 80 |
DNS=`cat ${1}.DNS`
|
| 81 |
/sbin/ifconfig ${1} ${IP} broadcast ${BROADCAST} netmask ${NETMASK}
|
| 82 |
if [ -n "${GATEWAY}" ]; then
|
| 83 |
/sbin/route add default gw ${GATEWAY} dev $1 netmask 0.0.0.0 metric 1
|
| 84 |
fi
|
| 85 |
if [ -n "${DNS}" ]; then
|
| 86 |
echo "nameserver ${DNS}" > /etc/resolv.conf
|
| 87 |
else
|
| 88 |
: > /etc/resolv.conf
|
| 89 |
fi
|
| 90 |
;;
|
| 91 |
esac
|
| 92 |
|
| 93 |
echo "Type \"ifconfig\" to make sure the interface was configured correctly."
|
| 94 |
|
| 95 |
# vim: ts=4
|