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