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=""