slitaz-boot-scripts annotate etc/init.d/network.sh @ rev 109

Misc wifi fixes from sygne@ombres.eu
author Pascal Bellard <pascal.bellard@slitaz.org>
date Tue Jul 22 22:25:02 2008 +0000 (2008-07-22)
parents 7ed6dc4683ad
children 444e44898f27
rev   line source
pankso@8 1 #!/bin/sh
MikeDSmith25@107 2 # /etc/init.d/network.sh - Network initialization boot script.
pankso@8 3 # Config file is: /etc/network.conf
pankso@8 4 #
pankso@8 5 . /etc/init.d/rc.functions
pankso@8 6 . /etc/network.conf
pankso@8 7
pascal@109 8 # Only configure hostname and loopback at boot time
pascal@109 9 if [ -n "$1" ]; then
pascal@109 10
pankso@8 11 # Set hostname.
pankso@8 12 echo -n "Setting hostname... "
pankso@8 13 /bin/hostname -F /etc/hostname
pankso@8 14 status
pankso@8 15
pankso@8 16 # Configure loopback interface.
MikeDSmith25@107 17 echo -n "Configuring loopback... "
pankso@8 18 /sbin/ifconfig lo 127.0.0.1 up
pankso@8 19 /sbin/route add 127.0.0.1 lo
pankso@8 20 status
pankso@8 21
pascal@109 22 fi
pascal@109 23
pascal@102 24 # For wifi. Users just have to enable it throught yes and usually
pascal@102 25 # essid any will work and interface is autodetected.
pascal@102 26 if [ "$WIFI" = "yes" ] || grep -q "wifi" /proc/cmdline; then
pascal@102 27 if [ -n "$NDISWRAPPER_DRIVERS" -a -x /usr/sbin/ndiswrapper ]; then
pascal@102 28 for i in $NDISWRAPPER_DRIVERS; do
pascal@102 29 ndiswrapper -i $i
pascal@102 30 done
pascal@109 31 echo -n "Loading ndiswrapper module..."
pascal@102 32 modprobe ndiswrapper
pascal@109 33 status
pascal@102 34 fi
pascal@109 35 if [ ! -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then
pascal@109 36 echo "$WIFI_INTERFACE is not a wifi interface, changing it."
pascal@102 37 WIFI_INTERFACE=$(grep : /proc/net/dev | cut -d: -f1 | \
pascal@102 38 while read dev; do iwconfig $dev 2>&1 | \
pascal@102 39 grep -iq "essid" && { echo $dev ; break; }; \
pascal@102 40 done)
pascal@102 41 [ -n "$WIFI_INTERFACE" ] && sed -i "s/^WIFI_INTERFACE=.*/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" /etc/network.conf
pascal@102 42 fi
pascal@109 43 [ -n "$WPA_DRIVER" ] || WPA_DRIVER="wext"
pascal@109 44 if iwconfig $WIFI_INTERFACE 2>&1 | grep -iq "unassociated"; then
pascal@102 45 IWCONFIG_ARGS=""
pascal@102 46 [ -n "$WIFI_MODE" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS mode $WIFI_MODE"
pascal@102 47 [ -n "$WIFI_KEY" ] && case "$WIFI_KEY_TYPE" in
pascal@102 48 wep|WEP) IWCONFIG_ARGS="$IWCONFIG_ARGS key $WIFI_KEY";;
pascal@102 49 wpa|WPA) cat > /tmp/wpa.conf <<EOF
pascal@102 50 ap_scan=1
pascal@102 51 network={
pascal@102 52 ssid="$WIFI_ESSID"
pascal@102 53 scan_ssid=1
pascal@102 54 proto=WPA
pascal@102 55 key_mgmt=WPA-PSK
pascal@102 56 psk="$WIFI_KEY"
pascal@102 57 priority=5
pascal@102 58 }
pascal@102 59 EOF
pascal@109 60 echo -n "starting wpa_supplicant, for WPA-PSK"
pascal@109 61 wpa_supplicant -B -w -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE
pascal@102 62 ;;
pascal@102 63 any|ANY) cat > /tmp/wpa.conf <<EOF
pascal@102 64 ap_scan=1
pascal@102 65 network={
pascal@102 66 ssid="$WIFI_ESSID"
pascal@102 67 scan_ssid=1
pascal@102 68 key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE
pascal@102 69 group=CCMP TKIP WEP104 WEP40
pascal@102 70 pairwise=CCMP TKIP
pascal@102 71 psk="$WIFI_KEY"
pascal@102 72 priority=5
pascal@102 73 }
pascal@102 74 EOF
pascal@109 75 echo -n "starting wpa_supplicant for any key type"
pascal@102 76 wpa_supplicant -B -w -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE
pascal@102 77 ;;
pascal@102 78 esac
pascal@109 79 rm -f /tmp/wpa.conf
pascal@102 80 [ -n "$WIFI_CHANNEL" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS channel $WIFI_CHANNEL"
pascal@109 81 echo -n "configuring $WIFI_INTERFACE..."
pascal@102 82 ifconfig $WIFI_INTERFACE up
pascal@102 83 iwconfig $WIFI_INTERFACE txpower on
pascal@102 84 iwconfig $WIFI_INTERFACE essid $WIFI_ESSID $IWCONFIG_ARGS
pascal@109 85 status
pascal@102 86 INTERFACE=$WIFI_INTERFACE
pascal@102 87 fi
pascal@102 88 fi
pascal@102 89
pankso@8 90 # For a dynamic IP with DHCP.
pankso@8 91 if [ "$DHCP" = "yes" ] ; then
pankso@67 92 echo "Starting udhcpc client on: $INTERFACE... "
pankso@67 93 /sbin/udhcpc -b -i $INTERFACE -p /var/run/udhcpc.$INTERFACE.pid
pankso@8 94 fi
pankso@8 95
pankso@8 96 # For a static IP.
pankso@8 97 if [ "$STATIC" = "yes" ] ; then
pankso@67 98 echo "Configuring static IP on $INTERFACE: $IP... "
pankso@67 99 /sbin/ifconfig $INTERFACE $IP netmask $NETMASK up
pankso@67 100 /sbin/route add default gateway $GATEWAY
pankso@72 101 # Multi-DNS server in $DNS_SERVER.
pankso@72 102 /bin/mv /etc/resolv.conf /tmp/resolv.conf.$$
pankso@72 103 for NS in $DNS_SERVER
pankso@72 104 do
pankso@72 105 echo "nameserver $NS" >> /etc/resolv.conf
pankso@72 106 done
pankso@8 107 fi