summaryrefslogtreecommitdiffstats
path: root/abs/core/LinHES-config/networkconfig.sh
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/LinHES-config/networkconfig.sh')
-rw-r--r--abs/core/LinHES-config/networkconfig.sh341
1 files changed, 341 insertions, 0 deletions
diff --git a/abs/core/LinHES-config/networkconfig.sh b/abs/core/LinHES-config/networkconfig.sh
new file mode 100644
index 0000000..770aa98
--- /dev/null
+++ b/abs/core/LinHES-config/networkconfig.sh
@@ -0,0 +1,341 @@
+#!/bin/bash
+#. /etc/profile
+#. /etc/systemconfig
+#BASE=/tmp
+ETCNETDIR=$BASE/etc/net/ifaces
+
+
+
+function kill_dhcp ()
+{
+#for i in ${BASE}/etc/dhcpc/dhcpcd-*.pid
+for i in ${BASE}/var/run/dhcpcd-*.pid
+do
+ if [ -f ${i} ]
+ then
+ pid=`cat ${i}`
+ kill -9 $pid
+ rm -f ${i}
+ fi
+ if [ x$1 = xflush ]
+ then
+ for ifdev in eth0 wlan0 eth1 wlan1
+ do
+ echo ${i} |grep $ifdev
+ status=$?
+ if [ $status = 1 ]
+ then
+ ip address flush $ifdev
+ fi
+ done
+ fi
+
+done
+
+}
+
+function kill_dhcp_chroot ()
+{
+#for i in ${BASE}/etc/dhcpc/dhcpcd-*.pid
+for i in ${mountpoint}/var/run/dhcpcd-*.pid
+do
+ if [ -f ${i} ]
+ then
+ pid=`cat ${i}`
+ kill -9 $pid
+ rm -f ${i}
+ fi
+done
+
+}
+
+
+
+function setup_nameserver(){
+grep -q $1 ${BASE}/etc/resolv.conf
+status=$?
+if [ ! $status = 0 ]
+then
+ echo "nameserver $1" >> ${BASE}/etc/resolv.conf
+fi
+
+}
+
+function change_iface_state () {
+ if [ x$2 = xenabled ]
+ then
+ echo "setting $1 to active"
+ sed -i -e 's/^ONBOOT=.*$/ONBOOT=yes/g' $ETCNETDIR/$1/options
+ sed -i -e 's/^DISABLED=.*$/DISABLED=no/g' $ETCNETDIR/$1/options
+ else
+ echo "setting $1 to inactive"
+ if [ -e $ETCNETDIR/$1/options ]
+ then
+ sed -i -e 's/^ONBOOT=.*$/ONBOOT=no/g' $ETCNETDIR/$1/options
+ sed -i -e 's/^DISABLED=.*$/DISABLED=yes/g' $ETCNETDIR/$1/options
+ fi
+ /sbin/ifconfig $1 down
+ ip address flush $1
+ fi
+
+}
+
+function setup_interfaces() {
+ local IS_WIRELESS
+ local ip
+ local netmask
+ local isactive
+ local dns
+ local UseDHCP
+ local GW
+ local ESSID
+ local KEY
+ local ENCRYPT
+ local TEMPNET
+ local MTU
+ IS_WIRELESS=false
+
+ #local ip
+ TEMPNET="Hostip"$1
+ echo $TEMPNET
+ eval ip=\$${TEMPNET}
+
+ TEMPNET=Hostnetmask$1
+ eval netmask=\$${TEMPNET}
+ netmask=`echo "$netmask" | cut -d " " -f1`
+
+ TEMPNET=HostActive$1
+ eval isactive=\$${TEMPNET}
+
+ TEMPNET=HostDNS$1
+ eval dns=\$${TEMPNET}
+
+ TEMPNET="HostUSEDHCP"$1
+ eval UseDHCP=\$${TEMPNET}
+
+ TEMPNET=HostGW$1
+ eval GW=\$${TEMPNET}
+
+ TEMPNET=HOST_iswireless$1
+ eval wireless=\$${TEMPNET}
+
+ TEMPNET=HostMTU$1
+ eval MTU=\$${TEMPNET}
+
+
+
+ if [ x$wireless = x1 ]
+ then
+ IS_WIRELESS=TRUE
+ TEMPNET=HostESSID$1
+ eval ESSID=\$${TEMPNET}
+
+ TEMPNET="HostKey"$1
+ eval KEY=\$${TEMPNET}
+
+ TEMPNET=HostUseEncryption$1
+ eval ENCRYPT=\$${TEMPNET}
+ fi
+
+
+ echo "Setup $1 in progress, wireless: $IS_WIRELESS"
+
+ if [ ! -d $ETCNETDIR/$1 ]
+ then
+ mkdir -p $ETCNETDIR/$1
+ fi
+
+ if [ ! -f $ETCNETDIR/$1/options ]
+ then
+ cp -f $TEMPLATES/etcnet/eth/options $ETCNETDIR/$1/options
+ fi
+
+ if [ x$isactive = x1 ]
+ then
+ change_iface_state $1 enabled
+ #echo "setting $1 to active"
+ #sed -i -e 's/^ONBOOT=.*$/ONBOOT=yes/g' $ETCNETDIR/$1/options
+ #sed -i -e 's/^DISABLED=.*$/DISABLED=no/g' $ETCNETDIR/$1/options
+ else
+ change_iface_state $1 disabled
+ #echo "setting $1 to inactive"
+ #sed -i -e 's/^ONBOOT=.*$/ONBOOT=no/g' $ETCNETDIR/$1/options
+ #sed -i -e 's/^DISABLED=.*$/DISABLED=yes/g' $ETCNETDIR/$1/options
+ fi
+
+ if [ x$IS_WIRELESS = xTRUE ]
+ then
+ echo "setting $1 wireless"
+ sed -i -e 's/^CONFIG_WIRELESS=.*$/CONFIG_WIRLESS=yes/g' $ETCNETDIR/$1/options
+ #set the key and essid
+ echo "essid $ESSID" > $ETCNETDIR/$1/iwconfig
+ if [ x$ENCRYPT = x1 ]
+ then
+ echo "key $KEY" >> $ETCNETDIR/$1/iwconfig
+ fi
+
+ else
+ echo "disabling wireless"
+ sed -i -e 's/^CONFIG_WIRLESS=.*$/CONFIG_WIRLESS=no/g' $ETCNETDIR/$1/options
+ fi
+
+ if [ x$UseDHCP = x0 ]
+ then
+ echo using dhcp
+ sed -i -e 's/^BOOTPROTO=.*$/BOOTPROTO=dhcp/g' $ETCNETDIR/$1/options
+
+ else
+ echo "using static ip"
+ sed -i -e 's/^BOOTPROTO=.*$/BOOTPROTO=static/g' $ETCNETDIR/$1/options
+ echo "default via $GW" > $ETCNETDIR/$1/ipv4route
+ echo "$ip$netmask" > $ETCNETDIR/$1/ipv4address
+ setup_nameserver $dns
+ fi
+
+ if [ x$MTU = x ]
+ then
+ echo "MTU is blank, card will use default values"
+ sed -i '/^mtu.*$/d' /etc/net/ifaces/$1/iplink
+ else
+ echo "setting mtu for $1 to $MTU"
+ sed -i '/^mtu.*$/d' /etc/net/ifaces/$1/iplink
+ echo "mtu $MTU " >> /etc/net/ifaces/$1/iplink
+ fi
+}
+
+
+function find_active () {
+#HostActiveeth1="1"
+rm -f ${BASE}/etc/resolv.conf
+if [ x$MYTHDHCP = x1 ]
+ then
+ #add 127.0.0.1 to /etc/resolv.conf
+ echo "search lan" > ${BASE}/etc/resolv.conf
+ echo "nameserver 127.0.0.1" >> ${BASE}/etc/resolv.conf
+ fi
+
+for i in eth0 eth1 wlan0 wlan1
+do
+ CURRENTIF="HostActive"$i
+ eval IFSTATE=\$${CURRENTIF}
+ echo $IFSTATE "---"
+ echo $i
+ if [ x$IFSTATE = x1 ]
+ then
+ setup_interfaces $i
+ else
+ change_iface_state $i disabled
+ fi
+done
+
+}
+
+function setup_hostname {
+#set the hostname
+if [ ! x$hostname = x ]
+then
+ echo $hostname > ${BASE}/etc/hostname
+ cat $BASE/etc/hosts |grep -v 127.0.0.1|grep -v $hostname > /tmp/hosts
+ #cat $BASE/etc/hosts |grep -v 127.0.0.1|grep -v $hostname | grep -v $ip > /tmp/hosts
+
+ if [ x$MYTHDHCP = x1 ]
+ then
+ echo "127.0.0.1 localhost " > ${BASE}/etc/hosts
+ echo "$MYTHIP $hostname " >> ${BASE}/etc/hosts
+ else
+ echo "127.0.0.1 $hostname localhost " > ${BASE}/etc/hosts
+ fi
+ cat /tmp/hosts >> ${BASE}/etc/hosts
+fi
+
+kill_dhcp
+}
+
+function vnc_check() {
+ CMDLINE=$(cat /proc/cmdline)
+ echo $CMDLINE |grep -q vnc
+ USEVNC=$?
+ echo $CMDLINE |grep -q nfsroot
+ NETBOOT=$?
+ echo $USEVNC
+ if [ ! x$USEVNC = x0 ]
+ then
+ echo "not using vnc"
+ if [ ! x$NETBOOT = x0 ]
+ then
+ echo "not using netboot"
+ else
+ echo "using netboot"
+ USEVNC=0
+ fi
+
+ else
+ echo " using vnc"
+ fi
+}
+
+function setup_MYTH_vars {
+ TEMPMYTH="Hostip"$default_interface
+ #echo $TEMPMYTH
+ eval MYTHIP=\$${TEMPMYTH}
+
+ TEMPMYTH="HostUSEDHCP"$default_interface
+ eval MYTHDHCP=\$${TEMPMYTH}
+
+
+
+}
+
+
+
+
+function start_network {
+if [ ! $USEVNC = 0 ]
+then
+ /etc/net/scripts/network.init reload
+ /etc/net/scripts/network.init restart
+else
+ echo "VNC/NETBOOT in use, will NOT restart network"
+fi
+
+}
+
+function setup_network {
+ setup_MYTH_vars
+ setup_hostname
+ find_active
+}
+
+
+function stop_network {
+if [ ! $USEVNC = 0 ]
+then
+ echo "stopping the network"
+ kill_dhcp flush
+ ip address flush dev eth0 2>&1 >/dev/null
+ ip address flush dev eth1 2>&1 >/dev/null
+ ip address flush dev wlan0 2>&1 >/dev/null
+ ip address flush dev wlan1 2>&1 >/dev/null
+else
+ echo "VNC/NETBOOT in use, will NOT restart network"
+fi
+
+}
+
+
+#this is used by the install process to start the network
+function install_network_setup {
+ setup_MYTH_vars
+ setup_hostname
+ stop_network
+ find_active
+ start_network
+
+}
+
+
+
+
+
+
+