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