slitaz-vz diff base-scripts/network.sh @ rev 2
Add stuff for templates
author | Eric Joseph-Alexandre <erjo@slitaz.org> |
---|---|
date | Tue Nov 01 09:23:49 2011 +0100 (2011-11-01) |
parents | |
children | d8fc6f00bb20 |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/base-scripts/network.sh Tue Nov 01 09:23:49 2011 +0100 1.3 @@ -0,0 +1,226 @@ 1.4 +#!/bin/sh 1.5 +# /etc/init.d/network.sh - Network initialization boot script. 1.6 +# Config file is: /etc/network.conf 1.7 +# 1.8 +. /etc/init.d/rc.functions 1.9 + 1.10 +if [ -z "$2" ]; then 1.11 + . /etc/network.conf 1.12 +else 1.13 + . $2 1.14 +fi 1.15 + 1.16 + 1.17 +Boot() { 1.18 + # Set hostname. 1.19 + echo -n "Setting hostname..." 1.20 + /bin/hostname -F /etc/hostname 1.21 + status 1.22 + 1.23 + # Configure loopback interface. 1.24 + echo -n "Configuring loopback..." 1.25 + /sbin/ifconfig lo 127.0.0.1 up 1.26 + /sbin/route add 127.0.0.1 lo 1.27 + status 1.28 +} 1.29 + 1.30 + 1.31 +eth() { 1.32 +# Use ethernet 1.33 + ifconfig $INTERFACE up 1.34 +} 1.35 + 1.36 +wifi() { 1.37 + # For wifi. Users just have to enable it through yes and usually 1.38 + # essid any will work and the interface is autodetected. 1.39 + if [ "$WIFI" = "yes" ] || grep -q "wifi" /proc/cmdline; then 1.40 + ifconfig $INTERFACE down 1.41 + 1.42 + # Confirm if $WIFI_INTERFACE is the wifi interface 1.43 + if [ ! -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then 1.44 + echo "$WIFI_INTERFACE is not a wifi interface, changing it." 1.45 + WIFI_INTERFACE=$(grep : /proc/net/dev | cut -d: -f1 | \ 1.46 + while read dev; do iwconfig $dev 2>&1 | \ 1.47 + grep -iq "essid" && { echo $dev ; break; }; \ 1.48 + done) 1.49 + [ -n "$WIFI_INTERFACE" ] && sed -i "s/^WIFI_INTERFACE=.*/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" /etc/network.conf 1.50 + fi 1.51 + 1.52 + echo -n "Configuring $WIFI_INTERFACE..." 1.53 + ifconfig $WIFI_INTERFACE up 1.54 + if iwconfig $WIFI_INTERFACE | grep -q "Tx-Power"; then 1.55 + iwconfig $WIFI_INTERFACE txpower on 1.56 + fi 1.57 + status 1.58 + 1.59 + [ -n "$WPA_DRIVER" ] || WPA_DRIVER="wext" 1.60 + 1.61 + 1.62 + IWCONFIG_ARGS="" 1.63 + [ -n "$WIFI_MODE" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS mode $WIFI_MODE" 1.64 + [ -n "$WIFI_CHANNEL" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS channel $WIFI_CHANNEL" 1.65 + # unencrypted network 1.66 + if [ "$WIFI_KEY" == "" -o "$WIFI_KEY_TYPE" == "none" ]; 1.67 +then 1.68 + iwconfig $WIFI_INTERFACE essid "$WIFI_ESSID" $IWCONFIG_ARGS 1.69 + fi 1.70 + # encrypted network 1.71 + [ -n "$WIFI_KEY" ] && case "$WIFI_KEY_TYPE" in 1.72 + wep|WEP) 1.73 + IWCONFIG_ARGS="$IWCONFIG_ARGS key $WIFI_KEY" 1.74 + iwconfig $WIFI_INTERFACE essid "$WIFI_ESSID" $IWCONFIG_ARGS 1.75 +# wpa_supplicant can also deal with wep encryption but iwconfig is preferred 1.76 +# Tip: Use unquoted strings for hexadecimal key in wep_key0 1.77 +# cat /etc/wpa_supplicant.conf > /tmp/wpa.conf 1.78 +# cat >> /tmp/wpa.conf <<EOF 1.79 +#ctrl_interface=/var/run/wpa_supplicant 1.80 +#ctrl_interface_group=0 1.81 +#ap_scan=1 1.82 +#network={ 1.83 +# ssid="$WIFI_ESSID" 1.84 +# scan_ssid=1 1.85 +# key_mgmt=NONE 1.86 +# wep_key0="$WIFI_KEY" 1.87 +# wep_tx_keyidx=0 1.88 +# priority=5 1.89 +#} 1.90 +#EOF 1.91 +# echo "Starting wpa_supplicant for NONE/WEP..." 1.92 +# wpa_supplicant -B -W -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE 1.93 + ;; 1.94 + wpa|WPA) cat /etc/wpa_supplicant.conf > /tmp/wpa.conf # load pre-configured multiple profiles 1.95 + cat >> /tmp/wpa.conf <<EOF 1.96 +ctrl_interface=/var/run/wpa_supplicant 1.97 +ctrl_interface_group=0 1.98 +ap_scan=1 1.99 +network={ 1.100 + ssid="$WIFI_ESSID" 1.101 + scan_ssid=1 1.102 + proto=WPA RSN 1.103 + key_mgmt=WPA-PSK 1.104 + psk="$WIFI_KEY" 1.105 + priority=5 1.106 +} 1.107 +EOF 1.108 + echo "Starting wpa_supplicant for WPA-PSK..." 1.109 + wpa_supplicant -B -W -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE 1.110 + ;; 1.111 + any|ANY) cat /etc/wpa_supplicant.conf > /tmp/wpa.conf 1.112 + cat >> /tmp/wpa.conf <<EOF 1.113 +ctrl_interface=/var/run/wpa_supplicant 1.114 +ctrl_interface_group=0 1.115 +ap_scan=1 1.116 +network={ 1.117 + ssid="$WIFI_ESSID" 1.118 + scan_ssid=1 1.119 + key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE 1.120 + group=CCMP TKIP WEP104 WEP40 1.121 + pairwise=CCMP TKIP 1.122 + psk="$WIFI_KEY" 1.123 + priority=5 1.124 +} 1.125 +EOF 1.126 + echo "Starting wpa_supplicant for any key type..." 1.127 + wpa_supplicant -B -W -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE 1.128 + ;; 1.129 + esac 1.130 + 1.131 + rm -f /tmp/wpa.conf 1.132 + 1.133 + INTERFACE=$WIFI_INTERFACE 1.134 + 1.135 + fi 1.136 + 1.137 +} 1.138 + 1.139 +wpa() 1.140 +{ 1.141 + DHCP_SCRIPT="/etc/init.d/wpa_action.sh" 1.142 + wpa_cli -a$DHCP_SCRIPT -B 1.143 +} 1.144 + 1.145 +dhcp() { 1.146 + 1.147 +# For a dynamic IP with DHCP. 1.148 + if [ "$DHCP" = "yes" ] ; then 1.149 + echo "Starting udhcpc client on: $INTERFACE..." 1.150 + if [ -d /var/run/wpa_supplicant ]; then # wpa wireless && wpa_ctrl_open interface is up 1.151 + wpa 1.152 + else # fallback on udhcpc: wep, eth 1.153 + /sbin/udhcpc -b -T 1 -A 12 -i $INTERFACE -p /var/run/udhcpc.$INTERFACE.pid 1.154 + fi 1.155 + fi 1.156 + 1.157 +} 1.158 + 1.159 +static_ip() { 1.160 +# For a static IP. 1.161 + if [ "$STATIC" = "yes" ] ; then 1.162 + echo "Configuring static IP on $INTERFACE: $IP..." 1.163 + /sbin/ifconfig $INTERFACE $IP netmask $NETMASK up 1.164 + /sbin/route add default gateway $GATEWAY 1.165 + # wpa_supplicant waits for wpa_cli 1.166 + [ -d /var/run/wpa_supplicant ] && wpa_cli -B 1.167 + # Multi-DNS server in $DNS_SERVER. 1.168 + /bin/mv /etc/resolv.conf /tmp/resolv.conf.$$ 1.169 + if [ -n "$DNS_SERVER" ], then 1.170 + for NS in $DNS_SERVER 1.171 + do 1.172 + echo "nameserver $NS" >> /etc/resolv.conf 1.173 + done 1.174 + else 1.175 + touch /etc/resolv.conf 1.176 + fi 1.177 + fi 1.178 +} 1.179 + 1.180 +# Stopping everything 1.181 +Stop() { 1.182 + echo "Stopping all interfaces" 1.183 + ifconfig $INTERFACE down 1.184 + ifconfig $WIFI_INTERFACE down 1.185 + 1.186 + echo "Killing all daemons" 1.187 + killall udhcpc 1.188 + killall wpa_supplicant 2>/dev/null 1.189 + 1.190 + if iwconfig $WIFI_INTERFACE | grep -q "Tx-Power"; then 1.191 + echo "Shutting down wifi card" 1.192 + iwconfig $WIFI_INTERFACE txpower off 1.193 + fi 1.194 +} 1.195 + 1.196 +Start() { 1.197 + eth 1.198 + wifi 1.199 + dhcp 1.200 + static_ip 1.201 + # change default lxpanel panel iface 1.202 + sed -i "s/iface=.*/iface=$INTERFACE/" /etc/lxpanel/default/panels/panel 1.203 +} 1.204 + 1.205 + 1.206 +# looking for arguments: 1.207 +if [ -z "$1" ]; then 1.208 + Boot 1.209 + Start 1.210 +else 1.211 + case $1 in 1.212 + start) 1.213 + Start ;; 1.214 + stop) 1.215 + Stop ;; 1.216 + restart) 1.217 + Stop 1.218 + Start ;; 1.219 + *) 1.220 + echo "" 1.221 + echo -e "\033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart]" 1.222 + echo "" 1.223 + echo -e " Default configuration file is \033[1m/etc/network.conf\033[0m" 1.224 + echo -e " You can specify another configuration file in the second argument:" 1.225 + echo -e " \033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart] file.conf" 1.226 + echo "" 1.227 + 1.228 + esac 1.229 +fi