slitaz-boot-scripts rev 346 5.4

network.sh: handle identity/password and use /etc/wpa
author Christophe Lincoln <pankso@slitaz.org>
date Sat Feb 15 20:13:56 2014 +0100 (2014-02-15)
parents 612a6f9874c0
children 1f2b496405ce
files etc/init.d/network.sh etc/network.conf
line diff
     1.1 --- a/etc/init.d/network.sh	Sat Feb 15 18:50:46 2014 +0100
     1.2 +++ b/etc/init.d/network.sh	Sat Feb 15 20:13:56 2014 +0100
     1.3 @@ -56,34 +56,25 @@
     1.4  		fi
     1.5  		status
     1.6  
     1.7 +		IWCONFIG_ARGS=""
     1.8  		[ -n "$WPA_DRIVER" ] || WPA_DRIVER="wext"
     1.9 -		IWCONFIG_ARGS=""
    1.10  		[ -n "$WIFI_MODE" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS mode $WIFI_MODE"
    1.11  		[ -n "$WIFI_CHANNEL" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS channel $WIFI_CHANNEL"
    1.12  		[ -n "$WIFI_AP" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS ap $WIFI_AP"
    1.13 -		# unencrypted network
    1.14 -		if [ "$WIFI_KEY" == "" -o "$WIFI_KEY_TYPE" == "none" ]; then
    1.15 +		
    1.16 +		# Unencrypted network
    1.17 +		if [ "$WIFI_KEY" == "" -o "$WIFI_KEY_TYPE" == "" ]; then
    1.18  			iwconfig $WIFI_INTERFACE essid "$WIFI_ESSID" $IWCONFIG_ARGS
    1.19  		fi
    1.20 -		# encrypted network
    1.21 +		
    1.22 +		# Encrypted network
    1.23  		[ -n "$WIFI_KEY" ] && case "$WIFI_KEY_TYPE" in
    1.24  			wep|WEP)
    1.25 -				#
    1.26 -				# NOTE (20120303) struggled to connect with WEP key in
    1.27 -				# cooking but works with 3.0. Busybox/iwconfig seems buggy
    1.28 -				# but connection works with wpa_supplicant and unquoted
    1.29 -				# wep_key0
    1.30 -				#
    1.31 -				#IWCONFIG_ARGS="$IWCONFIG_ARGS key $WIFI_KEY"
    1.32 -				#iwconfig $WIFI_INTERFACE essid "$WIFI_ESSID" $IWCONFIG_ARGS
    1.33 -				#
    1.34  				# wpa_supplicant can also deal with wep encryption
    1.35  				# Tip: Use unquoted strings for hexadecimal key in wep_key0
    1.36 -				cat /etc/wpa_supplicant.conf > /tmp/wpa.conf
    1.37 -				cat >> /tmp/wpa.conf <<EOF
    1.38 -ctrl_interface=/var/run/wpa_supplicant
    1.39 -ctrl_interface_group=0
    1.40 -ap_scan=1
    1.41 +				echo "Creating: /etc/wpa/wpa.conf"
    1.42 +				cat /etc/wpa/wpa_empty.conf > /etc/wpa/wpa.conf
    1.43 +				cat >> /etc/wpa/wpa.conf << EOT
    1.44  network={
    1.45  	ssid="$WIFI_ESSID"
    1.46  	scan_ssid=1
    1.47 @@ -92,18 +83,27 @@
    1.48  	wep_tx_keyidx=0
    1.49  	priority=5
    1.50  }
    1.51 -EOF
    1.52 +EOT
    1.53  				echo "Starting wpa_supplicant for NONE/WEP..."
    1.54 -				wpa_supplicant -B -W -c/tmp/wpa.conf -D$WPA_DRIVER \
    1.55 +				wpa_supplicant -B -W -c/etc/wpa/wpa.conf -D$WPA_DRIVER \
    1.56  					-i$WIFI_INTERFACE ;;
    1.57  			
    1.58  			wpa|WPA)
    1.59  				# load pre-configured multiple profiles
    1.60 -				cat /etc/wpa_supplicant.conf > /tmp/wpa.conf
    1.61 -				cat >> /tmp/wpa.conf <<EOF
    1.62 -ctrl_interface=/var/run/wpa_supplicant
    1.63 -ctrl_interface_group=0
    1.64 -ap_scan=1
    1.65 +				echo "Creating: /etc/wpa/wpa.conf"
    1.66 +				cat /etc/wpa/wpa_empty.conf > /etc/wpa/wpa.conf
    1.67 +				if [ "$WIFI_IDENTITY" ]; then
    1.68 +					cat >> /etc/wpa/wpa.conf << EOT
    1.69 +network={
    1.70 +	ssid="$WIFI_ESSID"
    1.71 +	key_mgmt=WPA-EAP
    1.72 +	scan_ssid=1
    1.73 +	identity="$WIFI_IDENTITY"
    1.74 +	password="$WIFI_PASSWORD"
    1.75 +}
    1.76 +EOT
    1.77 +				else
    1.78 +					cat >> /etc/wpa/wpa.conf << EOT
    1.79  network={
    1.80  	ssid="$WIFI_ESSID"
    1.81  	scan_ssid=1
    1.82 @@ -112,16 +112,16 @@
    1.83  	psk="$WIFI_KEY"
    1.84  	priority=5
    1.85  }
    1.86 -EOF
    1.87 +EOT
    1.88 +				fi
    1.89  				echo "Starting wpa_supplicant for WPA-PSK..."
    1.90 -				wpa_supplicant -B -W -c/tmp/wpa.conf \
    1.91 +				wpa_supplicant -B -W -c/etc/wpa/wpa.conf \
    1.92  					-D$WPA_DRIVER -i$WIFI_INTERFACE ;;
    1.93  			
    1.94 -			any|ANY) cat /etc/wpa_supplicant.conf > /tmp/wpa.conf
    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 +			any|ANY)
   1.100 +				echo "Creating: /etc/wpa/wpa.conf"
   1.101 +				cat /etc/wpa/wpa_empty.conf > /etc/wpa/wpa.conf
   1.102 +				cat >> /etc/wpa/wpa.conf << EOT
   1.103  network={
   1.104  	ssid="$WIFI_ESSID"
   1.105  	scan_ssid=1
   1.106 @@ -131,12 +131,11 @@
   1.107  	psk="$WIFI_KEY"
   1.108  	priority=5
   1.109  }
   1.110 -EOF
   1.111 +EOT
   1.112  				echo "Starting wpa_supplicant for any key type..."
   1.113 -				wpa_supplicant -B -W -c/tmp/wpa.conf \
   1.114 +				wpa_supplicant -B -W -c/etc/wpa/wpa.conf \
   1.115  					-D$WPA_DRIVER -i$WIFI_INTERFACE ;;
   1.116  		esac
   1.117 -		#rm -f /tmp/wpa.conf
   1.118  		INTERFACE=$WIFI_INTERFACE
   1.119  	fi
   1.120  }
   1.121 @@ -182,6 +181,7 @@
   1.122  		
   1.123  		# wpa_supplicant waits for wpa_cli
   1.124  		[ -d /var/run/wpa_supplicant ] && wpa_cli -B
   1.125 +		
   1.126  		# Multi-DNS server in $DNS_SERVER.
   1.127  		/bin/mv /etc/resolv.conf /tmp/resolv.conf.$$
   1.128  		for NS in $DNS_SERVER
   1.129 @@ -197,9 +197,9 @@
   1.130  	fi
   1.131  }
   1.132  
   1.133 -# Stopping everything
   1.134 -Stop() {
   1.135 -	echo "Stopping all interfaces"
   1.136 +# stopping everything
   1.137 +stop() {
   1.138 +	echo "stopping all interfaces"
   1.139  	ifconfig $INTERFACE down
   1.140  	ifconfig $WIFI_INTERFACE down
   1.141  
   1.142 @@ -213,30 +213,31 @@
   1.143  	fi
   1.144  }
   1.145  
   1.146 -Start() {
   1.147 -   eth
   1.148 -   wifi
   1.149 -   dhcp
   1.150 -   static_ip
   1.151 -   # change default lxpanel panel iface
   1.152 -   [ -f /etc/lxpanel/default/panels/panel ] \
   1.153 -		&& sed -i "s/iface=.*/iface=$INTERFACE/" \
   1.154 +start() {
   1.155 +	eth
   1.156 +	wifi
   1.157 +	dhcp
   1.158 +	static_ip
   1.159 +	# change default lxpanel panel iface
   1.160 +	if [ -f /etc/lxpanel/default/panels/panel ]; then
   1.161 +		sed -i "s/iface=.*/iface=$INTERFACE/" \
   1.162  			/etc/lxpanel/default/panels/panel
   1.163 +	fi
   1.164  }
   1.165  
   1.166  # looking for arguments:
   1.167  if [ -z "$1" ]; then
   1.168  	boot
   1.169 -	Start
   1.170 +	start
   1.171  else
   1.172  	case $1 in
   1.173  		start)
   1.174 -			Start ;;
   1.175 +			start ;;
   1.176  		stop)
   1.177 -			Stop ;;
   1.178 +			stop ;;
   1.179  		restart)
   1.180 -			Stop
   1.181 -			Start ;;
   1.182 +			stop
   1.183 +			start ;;
   1.184  		*)
   1.185  			echo ""
   1.186  			echo -e "\033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart]"
     2.1 --- a/etc/network.conf	Sat Feb 15 18:50:46 2014 +0100
     2.2 +++ b/etc/network.conf	Sat Feb 15 20:13:56 2014 +0100
     2.3 @@ -36,10 +36,13 @@
     2.4  # Wifi interface (iwconfig) and ESSID.
     2.5  WIFI_INTERFACE="wlan0"
     2.6  WIFI_ESSID="any"
     2.7 +WIFI_KEY=""
     2.8 +WIFI_KEY_TYPE="any"
     2.9  WIFI_AP=""
    2.10  WIFI_MODE="managed"
    2.11 -WIFI_KEY=""
    2.12 -WIFI_KEY_TYPE="none"
    2.13 +WIFI_CHANNEL=""
    2.14  WPA_DRIVER=""
    2.15 -WIFI_CHANNEL=""
    2.16 -WIFI_IWCONFIG_ARGS=""
    2.17 +
    2.18 +# Wifi network requiering a user and password
    2.19 +WIFI_IDENTITY=""
    2.20 +WIFI_PASSWORD=""