slitaz-boot-scripts annotate etc/init.d/network.sh @ rev 131
network.sh: WIFI_ESSID can have space in the name
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Sun Feb 15 11:55:47 2009 +0100 (2009-02-15) |
parents | ea125bdc0888 |
children | 6038353267b7 |
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 [ ! -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then |
pascal@112 | 46 echo "$WIFI_INTERFACE is not a wifi interface, changing it." |
pascal@112 | 47 WIFI_INTERFACE=$(grep : /proc/net/dev | cut -d: -f1 | \ |
pascal@112 | 48 while read dev; do iwconfig $dev 2>&1 | \ |
pascal@115 | 49 grep -iq "essid" && { echo $dev ; break; }; \ |
pascal@115 | 50 done) |
pascal@115 | 51 [ -n "$WIFI_INTERFACE" ] && sed -i "s/^WIFI_INTERFACE=.*/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" /etc/network.conf |
pascal@115 | 52 fi |
pascal@115 | 53 [ -n "$WPA_DRIVER" ] || WPA_DRIVER="wext" |
pascal@115 | 54 IWCONFIG_ARGS="" |
pascal@115 | 55 [ -n "$WIFI_MODE" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS mode $WIFI_MODE" |
pascal@115 | 56 [ -n "$WIFI_KEY" ] && case "$WIFI_KEY_TYPE" in |
pascal@112 | 57 wep|WEP) IWCONFIG_ARGS="$IWCONFIG_ARGS key $WIFI_KEY";; |
pascal@112 | 58 wpa|WPA) cat > /tmp/wpa.conf <<EOF |
pascal@102 | 59 ap_scan=1 |
pascal@102 | 60 network={ |
pascal@102 | 61 ssid="$WIFI_ESSID" |
pascal@102 | 62 scan_ssid=1 |
pascal@102 | 63 proto=WPA |
pascal@102 | 64 key_mgmt=WPA-PSK |
pascal@102 | 65 psk="$WIFI_KEY" |
pascal@102 | 66 priority=5 |
pascal@102 | 67 } |
pascal@102 | 68 EOF |
pascal@112 | 69 echo "starting wpa_supplicant, for WPA-PSK" |
pascal@112 | 70 wpa_supplicant -B -w -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE |
pascal@112 | 71 ;; |
pascal@112 | 72 any|ANY) cat > /tmp/wpa.conf <<EOF |
pascal@102 | 73 ap_scan=1 |
pascal@102 | 74 network={ |
pascal@102 | 75 ssid="$WIFI_ESSID" |
pascal@102 | 76 scan_ssid=1 |
pascal@102 | 77 key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE |
pascal@102 | 78 group=CCMP TKIP WEP104 WEP40 |
pascal@102 | 79 pairwise=CCMP TKIP |
pascal@102 | 80 psk="$WIFI_KEY" |
pascal@102 | 81 priority=5 |
pascal@102 | 82 } |
pascal@102 | 83 EOF |
pascal@112 | 84 echo "starting wpa_supplicant for any key type" |
pascal@112 | 85 wpa_supplicant -B -w -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE |
pascal@112 | 86 ;; |
pascal@115 | 87 esac |
pascal@115 | 88 rm -f /tmp/wpa.conf |
pascal@115 | 89 [ -n "$WIFI_CHANNEL" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS channel $WIFI_CHANNEL" |
pascal@115 | 90 echo -n "configuring $WIFI_INTERFACE..." |
pascal@115 | 91 ifconfig $WIFI_INTERFACE up |
pascal@115 | 92 iwconfig $WIFI_INTERFACE txpower on |
pankso@131 | 93 iwconfig $WIFI_INTERFACE essid "$WIFI_ESSID" $IWCONFIG_ARGS |
pascal@115 | 94 status |
pascal@115 | 95 INTERFACE=$WIFI_INTERFACE |
pascal@112 | 96 fi |
pascal@112 | 97 |
pascal@112 | 98 # For a dynamic IP with DHCP. |
pascal@112 | 99 if [ "$DHCP" = "yes" ] ; then |
pascal@112 | 100 echo "Starting udhcpc client on: $INTERFACE... " |
pascal@112 | 101 /sbin/udhcpc -b -i $INTERFACE -p /var/run/udhcpc.$INTERFACE.pid |
pascal@112 | 102 fi |
pascal@112 | 103 |
pascal@112 | 104 # For a static IP. |
pascal@112 | 105 if [ "$STATIC" = "yes" ] ; then |
pascal@112 | 106 echo "Configuring static IP on $INTERFACE: $IP... " |
pascal@112 | 107 /sbin/ifconfig $INTERFACE $IP netmask $NETMASK up |
pascal@112 | 108 /sbin/route add default gateway $GATEWAY |
pascal@112 | 109 # Multi-DNS server in $DNS_SERVER. |
pascal@112 | 110 /bin/mv /etc/resolv.conf /tmp/resolv.conf.$$ |
pascal@112 | 111 for NS in $DNS_SERVER |
pascal@112 | 112 do |
pascal@112 | 113 echo "nameserver $NS" >> /etc/resolv.conf |
pascal@112 | 114 done |
pascal@112 | 115 fi |
pascal@112 | 116 } |
pascal@112 | 117 |
pascal@112 | 118 |
pascal@112 | 119 # looking for arguments: |
pascal@112 | 120 if [ -z "$1" ]; then |
pascal@112 | 121 Boot |
pascal@112 | 122 Start |
pascal@112 | 123 else |
pascal@112 | 124 case $1 in |
pascal@112 | 125 start) |
pascal@112 | 126 Start |
pascal@112 | 127 ;; |
pascal@112 | 128 stop) |
pascal@112 | 129 Stop |
pascal@112 | 130 ;; |
pascal@112 | 131 restart) |
pascal@112 | 132 Stop |
pascal@112 | 133 Start |
pascal@112 | 134 ;; |
pascal@112 | 135 *) |
pascal@112 | 136 echo "" |
pascal@112 | 137 echo -e "\033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart]" |
pascal@112 | 138 echo "" |
pascal@112 | 139 echo -e " Default configuration file is \033[1m/etc/network.conf\033[0m" |
pascal@112 | 140 echo -e " You can specify another configuration file in second argument:" |
pascal@112 | 141 echo -e " \033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart] file.conf" |
pascal@112 | 142 echo "" |
pascal@112 | 143 |
pascal@112 | 144 esac |
pascal@102 | 145 fi |