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 |