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

network.sh: fix WIFI
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat Jul 19 15:17:25 2008 +0000 (2008-07-19)
parents 58cc6775e0f0
children 10d28491bea5
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
6 . /etc/network.conf
8 # Set hostname.
9 echo -n "Setting hostname... "
10 /bin/hostname -F /etc/hostname
11 status
13 # Configure loopback interface.
14 echo -n "Configuring loopback... "
15 /sbin/ifconfig lo 127.0.0.1 up
16 /sbin/route add 127.0.0.1 lo
17 status
19 # For wifi. Users just have to enable it throught yes and usually
20 # essid any will work and interface is autodetected.
21 if [ "$WIFI" = "yes" ] || grep -q "wifi" /proc/cmdline; then
22 if [ -n "$NDISWRAPPER_DRIVERS" -a -x /usr/sbin/ndiswrapper ]; then
23 for i in $NDISWRAPPER_DRIVERS; do
24 ndiswrapper -i $i
25 done
26 modprobe ndiswrapper
27 fi
28 if ! iwconfig $WIFI_INTERFACE 2>&1 | grep -iq "essid"; then
29 WIFI_INTERFACE=$(grep : /proc/net/dev | cut -d: -f1 | \
30 while read dev; do iwconfig $dev 2>&1 | \
31 grep -iq "essid" && { echo $dev ; break; }; \
32 done)
33 [ -n "$WIFI_INTERFACE" ] && sed -i "s/^WIFI_INTERFACE=.*/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" /etc/network.conf
34 fi
35 [ -n "$WPA_DRIVER" ] && WPA_DRIVER="wext"
36 if iwconfig $WIFI_INTERFACE 2>&1 | grep -iq "essid"; then
37 IWCONFIG_ARGS=""
38 [ -n "$WIFI_MODE" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS mode $WIFI_MODE"
39 [ -n "$WIFI_KEY" ] && case "$WIFI_KEY_TYPE" in
40 wep|WEP) IWCONFIG_ARGS="$IWCONFIG_ARGS key $WIFI_KEY";;
41 wpa|WPA) cat > /tmp/wpa.conf <<EOF
42 ap_scan=1
43 network={
44 ssid="$WIFI_ESSID"
45 scan_ssid=1
46 proto=WPA
47 key_mgmt=WPA-PSK
48 psk="$WIFI_KEY"
49 priority=5
50 }
51 EOF
52 wpa_supplicant -B -w -c/tmp/wpa.conf -D$DRIVER -i$WIFI_INTERFACE
53 ;;
54 any|ANY) cat > /tmp/wpa.conf <<EOF
55 ap_scan=1
56 network={
57 ssid="$WIFI_ESSID"
58 scan_ssid=1
59 key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE
60 group=CCMP TKIP WEP104 WEP40
61 pairwise=CCMP TKIP
62 psk="$WIFI_KEY"
63 priority=5
64 }
65 EOF
66 wpa_supplicant -B -w -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE
67 ;;
68 esac
69 [ -n "$WIFI_CHANNEL" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS channel $WIFI_CHANNEL"
70 ifconfig $WIFI_INTERFACE up
71 iwconfig $WIFI_INTERFACE txpower on
72 iwconfig $WIFI_INTERFACE essid $WIFI_ESSID $IWCONFIG_ARGS
73 INTERFACE=$WIFI_INTERFACE
74 fi
75 fi
77 # For a dynamic IP with DHCP.
78 if [ "$DHCP" = "yes" ] ; then
79 echo "Starting udhcpc client on: $INTERFACE... "
80 /sbin/udhcpc -b -i $INTERFACE -p /var/run/udhcpc.$INTERFACE.pid
81 fi
83 # For a static IP.
84 if [ "$STATIC" = "yes" ] ; then
85 echo "Configuring static IP on $INTERFACE: $IP... "
86 /sbin/ifconfig $INTERFACE $IP netmask $NETMASK up
87 /sbin/route add default gateway $GATEWAY
88 # Multi-DNS server in $DNS_SERVER.
89 /bin/mv /etc/resolv.conf /tmp/resolv.conf.$$
90 for NS in $DNS_SERVER
91 do
92 echo "nameserver $NS" >> /etc/resolv.conf
93 done
94 fi