slitaz-boot-scripts view etc/init.d/network.sh @ rev 241

clean-up code: removing trailing spaces
author Antoine Bodin <gokhlayeh@slitaz.org>
date Tue Mar 15 06:09:03 2011 +0100 (2011-03-15)
parents b6f5f37beaa3
children 8b16caf41633
line source
1 #!/bin/sh
2 # /etc/init.d/network.sh - Network initialization boot script.
3 # Config file is: /etc/network.conf
4 #
5 . /etc/init.d/rc.functions
7 if [ -z "$2" ]; then
8 . /etc/network.conf
9 else
10 . $2
11 fi
14 Boot() {
15 # Set hostname.
16 echo -n "Setting hostname..."
17 /bin/hostname -F /etc/hostname
18 status
20 # Configure loopback interface.
21 echo -n "Configuring loopback..."
22 /sbin/ifconfig lo 127.0.0.1 up
23 /sbin/route add 127.0.0.1 lo
24 status
25 }
28 eth() {
29 # Use ethernet
30 ifconfig $INTERFACE up
31 }
33 wifi() {
34 # For wifi. Users just have to enable it through yes and usually
35 # essid any will work and the interface is autodetected.
36 if [ "$WIFI" = "yes" ] || grep -q "wifi" /proc/cmdline; then
37 ifconfig $INTERFACE down
39 # Confirm if $WIFI_INTERFACE is the wifi interface
40 if [ ! -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then
41 echo "$WIFI_INTERFACE is not a wifi interface, changing it."
42 WIFI_INTERFACE=$(grep : /proc/net/dev | cut -d: -f1 | \
43 while read dev; do iwconfig $dev 2>&1 | \
44 grep -iq "essid" && { echo $dev ; break; }; \
45 done)
46 [ -n "$WIFI_INTERFACE" ] && sed -i "s/^WIFI_INTERFACE=.*/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" /etc/network.conf
47 fi
49 echo -n "Configuring $WIFI_INTERFACE..."
50 ifconfig $WIFI_INTERFACE up
51 if iwconfig $WIFI_INTERFACE | grep -q "Tx-Power"; then
52 iwconfig $WIFI_INTERFACE txpower on
53 fi
54 status
56 [ -n "$WPA_DRIVER" ] || WPA_DRIVER="wext"
59 IWCONFIG_ARGS=""
60 [ -n "$WIFI_MODE" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS mode $WIFI_MODE"
61 [ -n "$WIFI_CHANNEL" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS channel $WIFI_CHANNEL"
62 # unencrypted network
63 if [ "$WIFI_KEY" == "" -o "$WIFI_KEY_TYPE" == "none" ];
64 then
65 iwconfig $WIFI_INTERFACE essid "$WIFI_ESSID" $IWCONFIG_ARGS
66 fi
67 # encrypted network
68 [ -n "$WIFI_KEY" ] && case "$WIFI_KEY_TYPE" in
69 wep|WEP)
70 IWCONFIG_ARGS="$IWCONFIG_ARGS key $WIFI_KEY"
71 iwconfig $WIFI_INTERFACE essid "$WIFI_ESSID" $IWCONFIG_ARGS
72 # wpa_supplicant can also deal with wep encryption but iwconfig is preferred
73 # Tip: Use unquoted strings for hexadecimal key in wep_key0
74 # cat /etc/wpa_supplicant.conf > /tmp/wpa.conf
75 # cat >> /tmp/wpa.conf <<EOF
76 #ctrl_interface=/var/run/wpa_supplicant
77 #ctrl_interface_group=0
78 #ap_scan=1
79 #network={
80 # ssid="$WIFI_ESSID"
81 # scan_ssid=1
82 # key_mgmt=NONE
83 # wep_key0="$WIFI_KEY"
84 # wep_tx_keyidx=0
85 # priority=5
86 #}
87 #EOF
88 # echo "Starting wpa_supplicant for NONE/WEP..."
89 # wpa_supplicant -B -W -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE
90 ;;
91 wpa|WPA) cat /etc/wpa_supplicant.conf > /tmp/wpa.conf # load pre-configured multiple profiles
92 cat >> /tmp/wpa.conf <<EOF
93 ctrl_interface=/var/run/wpa_supplicant
94 ctrl_interface_group=0
95 ap_scan=1
96 network={
97 ssid="$WIFI_ESSID"
98 scan_ssid=1
99 proto=WPA RSN
100 key_mgmt=WPA-PSK WPA-EAP
101 psk="$WIFI_KEY"
102 priority=5
103 }
104 EOF
105 echo "Starting wpa_supplicant for WPA-PSK..."
106 wpa_supplicant -B -W -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE
107 ;;
108 any|ANY) cat /etc/wpa_supplicant.conf > /tmp/wpa.conf
109 cat >> /tmp/wpa.conf <<EOF
110 ctrl_interface=/var/run/wpa_supplicant
111 ctrl_interface_group=0
112 ap_scan=1
113 network={
114 ssid="$WIFI_ESSID"
115 scan_ssid=1
116 key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE
117 group=CCMP TKIP WEP104 WEP40
118 pairwise=CCMP TKIP
119 psk="$WIFI_KEY"
120 priority=5
121 }
122 EOF
123 echo "Starting wpa_supplicant for any key type..."
124 wpa_supplicant -B -W -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE
125 ;;
126 esac
128 rm -f /tmp/wpa.conf
130 INTERFACE=$WIFI_INTERFACE
132 fi
134 }
136 wpa()
137 {
138 DHCP_SCRIPT="/etc/init.d/wpa_action.sh"
139 wpa_cli -a$DHCP_SCRIPT -B
140 }
142 dhcp() {
144 # For a dynamic IP with DHCP.
145 if [ "$DHCP" = "yes" ] ; then
146 echo "Starting udhcpc client on: $INTERFACE..."
147 if [ -d /var/run/wpa_supplicant ] && [ "$WIFI" = "yes" ]; then # wpa wireless && wpa_ctrl_open interface is up
148 wpa
149 else # fallback on udhcpc: wep, eth
150 /sbin/udhcpc -b -T 1 -A 12 -i $INTERFACE -p /var/run/udhcpc.$INTERFACE.pid
151 fi
152 fi
154 }
156 static_ip() {
157 # For a static IP.
158 if [ "$STATIC" = "yes" ] ; then
159 echo "Configuring static IP on $INTERFACE: $IP..."
160 /sbin/ifconfig $INTERFACE $IP netmask $NETMASK up
161 /sbin/route add default gateway $GATEWAY
162 # wpa_supplicant waits for wpa_cli
163 [ -d /var/run/wpa_supplicant ] && wpa_cli -B
164 # Multi-DNS server in $DNS_SERVER.
165 /bin/mv /etc/resolv.conf /tmp/resolv.conf.$$
166 for NS in $DNS_SERVER
167 do
168 echo "nameserver $NS" >> /etc/resolv.conf
169 done
170 fi
171 }
173 # Stopping everything
174 Stop() {
175 echo "Stopping all interfaces"
176 ifconfig $INTERFACE down
177 ifconfig $WIFI_INTERFACE down
179 echo "Killing all daemons"
180 killall udhcpc
181 killall wpa_supplicant 2>/dev/null
183 if iwconfig $WIFI_INTERFACE | grep -q "Tx-Power"; then
184 echo "Shutting down wifi card"
185 iwconfig $WIFI_INTERFACE txpower off
186 fi
187 }
189 Start() {
190 eth
191 wifi
192 dhcp
193 static_ip
194 # change default lxpanel panel iface
195 [ -f /etc/lxpanel/default/panels/panel ] \
196 && sed -i "s/iface=.*/iface=$INTERFACE/" /etc/lxpanel/default/panels/panel
197 }
200 # looking for arguments:
201 if [ -z "$1" ]; then
202 Boot
203 Start
204 else
205 case $1 in
206 start)
207 Start ;;
208 stop)
209 Stop ;;
210 restart)
211 Stop
212 Start ;;
213 *)
214 echo ""
215 echo -e "\033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart]"
216 echo ""
217 echo -e " Default configuration file is \033[1m/etc/network.conf\033[0m"
218 echo -e " You can specify another configuration file in the second argument:"
219 echo -e " \033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart] file.conf"
220 echo ""
222 esac
223 fi