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

/etc/init.d/network.sh restart fix (thanks sygne@ombres.eu)
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sun Jul 27 15:46:07 2008 +0000 (2008-07-27)
parents 444e44898f27
children 6d7cab1978a8
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
pascal@112 7 if [ -z "$2" ]; then
pascal@112 8 . /etc/network.conf
pascal@112 9 else
pascal@112 10 . $2
pascal@109 11 fi
pascal@109 12
pascal@112 13 Boot() {
pascal@112 14 # Set hostname.
pascal@112 15 echo -n "Setting hostname... "
pascal@112 16 /bin/hostname -F /etc/hostname
pascal@112 17 status
pascal@112 18
pascal@112 19 # Configure loopback interface.
pascal@112 20 echo -n "Configuring loopback... "
pascal@112 21 /sbin/ifconfig lo 127.0.0.1 up
pascal@112 22 /sbin/route add 127.0.0.1 lo
pascal@112 23 status
pascal@112 24 }
pascal@112 25
pascal@112 26 # Stopping everything
pascal@112 27 Stop() {
pascal@112 28 echo "Stopping all interfaces"
pascal@112 29 ifconfig $INTERFACE down
pascal@112 30 ifconfig $WIFI_INTERFACE down
pascal@112 31
pascal@112 32 echo "Killing all daemons"
pascal@112 33 killall udhcpc
pascal@112 34 killall wpa_supplicant
pascal@112 35
pascal@112 36 echo "Shutting down wifi card"
pascal@112 37 iwconfig $WIFI_INTERFACE txpower off
pascal@112 38
pascal@112 39 }
pascal@112 40
pascal@112 41 Start() {
pascal@112 42 # For wifi. Users just have to enable it throught yes and usually
pascal@112 43 # essid any will work and interface is autodetected.
pascal@112 44 if [ "$WIFI" = "yes" ] || grep -q "wifi" /proc/cmdline; then
pascal@112 45 if [ -n "$NDISWRAPPER_DRIVERS" -a -x /usr/sbin/ndiswrapper ]; then
pascal@112 46 for i in $NDISWRAPPER_DRIVERS; do
pascal@112 47 ndiswrapper -i $i
pascal@112 48 done
pascal@112 49 echo -n "Loading ndiswrapper module..."
pascal@112 50 modprobe ndiswrapper
pascal@112 51 status
pascal@112 52 fi
pascal@112 53 if [ ! -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then
pascal@112 54 echo "$WIFI_INTERFACE is not a wifi interface, changing it."
pascal@112 55 WIFI_INTERFACE=$(grep : /proc/net/dev | cut -d: -f1 | \
pascal@112 56 while read dev; do iwconfig $dev 2>&1 | \
pascal@112 57 grep -iq "essid" && { echo $dev ; break; }; \
pascal@112 58 done)
pascal@112 59 [ -n "$WIFI_INTERFACE" ] && sed -i "s/^WIFI_INTERFACE=.*/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" /etc/network.conf
pascal@112 60 fi
pascal@112 61 [ -n "$WPA_DRIVER" ] || WPA_DRIVER="wext"
pascal@112 62 if iwconfig $WIFI_INTERFACE 2>&1 | grep -iq "unassociated"; then
pascal@112 63 IWCONFIG_ARGS=""
pascal@112 64 [ -n "$WIFI_MODE" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS mode $WIFI_MODE"
pascal@112 65 [ -n "$WIFI_KEY" ] && case "$WIFI_KEY_TYPE" in
pascal@112 66 wep|WEP) IWCONFIG_ARGS="$IWCONFIG_ARGS key $WIFI_KEY";;
pascal@112 67 wpa|WPA) cat > /tmp/wpa.conf <<EOF
pascal@102 68 ap_scan=1
pascal@102 69 network={
pascal@102 70 ssid="$WIFI_ESSID"
pascal@102 71 scan_ssid=1
pascal@102 72 proto=WPA
pascal@102 73 key_mgmt=WPA-PSK
pascal@102 74 psk="$WIFI_KEY"
pascal@102 75 priority=5
pascal@102 76 }
pascal@102 77 EOF
pascal@112 78 echo "starting wpa_supplicant, for WPA-PSK"
pascal@112 79 wpa_supplicant -B -w -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE
pascal@112 80 ;;
pascal@112 81 any|ANY) cat > /tmp/wpa.conf <<EOF
pascal@102 82 ap_scan=1
pascal@102 83 network={
pascal@102 84 ssid="$WIFI_ESSID"
pascal@102 85 scan_ssid=1
pascal@102 86 key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE
pascal@102 87 group=CCMP TKIP WEP104 WEP40
pascal@102 88 pairwise=CCMP TKIP
pascal@102 89 psk="$WIFI_KEY"
pascal@102 90 priority=5
pascal@102 91 }
pascal@102 92 EOF
pascal@112 93 echo "starting wpa_supplicant for any key type"
pascal@112 94 wpa_supplicant -B -w -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE
pascal@112 95 ;;
pascal@112 96 esac
pascal@112 97 rm -f /tmp/wpa.conf
pascal@112 98 [ -n "$WIFI_CHANNEL" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS channel $WIFI_CHANNEL"
pascal@112 99 echo -n "configuring $WIFI_INTERFACE..."
pascal@112 100 ifconfig $WIFI_INTERFACE up
pascal@112 101 iwconfig $WIFI_INTERFACE txpower on
pascal@112 102 iwconfig $WIFI_INTERFACE essid $WIFI_ESSID $IWCONFIG_ARGS
pascal@112 103 status
pascal@112 104 INTERFACE=$WIFI_INTERFACE
pascal@112 105 fi
pascal@112 106 fi
pascal@112 107
pascal@112 108 # For a dynamic IP with DHCP.
pascal@112 109 if [ "$DHCP" = "yes" ] ; then
pascal@112 110 echo "Starting udhcpc client on: $INTERFACE... "
pascal@112 111 /sbin/udhcpc -b -i $INTERFACE -p /var/run/udhcpc.$INTERFACE.pid
pascal@112 112 fi
pascal@112 113
pascal@112 114 # For a static IP.
pascal@112 115 if [ "$STATIC" = "yes" ] ; then
pascal@112 116 echo "Configuring static IP on $INTERFACE: $IP... "
pascal@112 117 /sbin/ifconfig $INTERFACE $IP netmask $NETMASK up
pascal@112 118 /sbin/route add default gateway $GATEWAY
pascal@112 119 # Multi-DNS server in $DNS_SERVER.
pascal@112 120 /bin/mv /etc/resolv.conf /tmp/resolv.conf.$$
pascal@112 121 for NS in $DNS_SERVER
pascal@112 122 do
pascal@112 123 echo "nameserver $NS" >> /etc/resolv.conf
pascal@112 124 done
pascal@112 125 fi
pascal@112 126 }
pascal@112 127
pascal@112 128
pascal@112 129 # looking for arguments:
pascal@112 130 if [ -z "$1" ]; then
pascal@112 131 Boot
pascal@112 132 Start
pascal@112 133 else
pascal@112 134 case $1 in
pascal@112 135 start)
pascal@112 136 Start
pascal@112 137 ;;
pascal@112 138 stop)
pascal@112 139 Stop
pascal@112 140 ;;
pascal@112 141 restart)
pascal@112 142 Stop
pascal@112 143 Start
pascal@112 144 ;;
pascal@112 145 *)
pascal@112 146 echo ""
pascal@112 147 echo -e "\033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart]"
pascal@112 148 echo ""
pascal@112 149 echo -e " Default configuration file is \033[1m/etc/network.conf\033[0m"
pascal@112 150 echo -e " You can specify another configuration file in second argument:"
pascal@112 151 echo -e " \033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart] file.conf"
pascal@112 152 echo ""
pascal@112 153
pascal@112 154 esac
pascal@102 155 fi