slitaz-boot-scripts annotate etc/init.d/network.sh @ rev 109
Misc wifi fixes from sygne@ombres.eu
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Tue Jul 22 22:25:02 2008 +0000 (2008-07-22) |
parents | 7ed6dc4683ad |
children | 444e44898f27 |
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 . /etc/network.conf |
pankso@8 | 7 |
pascal@109 | 8 # Only configure hostname and loopback at boot time |
pascal@109 | 9 if [ -n "$1" ]; then |
pascal@109 | 10 |
pankso@8 | 11 # Set hostname. |
pankso@8 | 12 echo -n "Setting hostname... " |
pankso@8 | 13 /bin/hostname -F /etc/hostname |
pankso@8 | 14 status |
pankso@8 | 15 |
pankso@8 | 16 # Configure loopback interface. |
MikeDSmith25@107 | 17 echo -n "Configuring loopback... " |
pankso@8 | 18 /sbin/ifconfig lo 127.0.0.1 up |
pankso@8 | 19 /sbin/route add 127.0.0.1 lo |
pankso@8 | 20 status |
pankso@8 | 21 |
pascal@109 | 22 fi |
pascal@109 | 23 |
pascal@102 | 24 # For wifi. Users just have to enable it throught yes and usually |
pascal@102 | 25 # essid any will work and interface is autodetected. |
pascal@102 | 26 if [ "$WIFI" = "yes" ] || grep -q "wifi" /proc/cmdline; then |
pascal@102 | 27 if [ -n "$NDISWRAPPER_DRIVERS" -a -x /usr/sbin/ndiswrapper ]; then |
pascal@102 | 28 for i in $NDISWRAPPER_DRIVERS; do |
pascal@102 | 29 ndiswrapper -i $i |
pascal@102 | 30 done |
pascal@109 | 31 echo -n "Loading ndiswrapper module..." |
pascal@102 | 32 modprobe ndiswrapper |
pascal@109 | 33 status |
pascal@102 | 34 fi |
pascal@109 | 35 if [ ! -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then |
pascal@109 | 36 echo "$WIFI_INTERFACE is not a wifi interface, changing it." |
pascal@102 | 37 WIFI_INTERFACE=$(grep : /proc/net/dev | cut -d: -f1 | \ |
pascal@102 | 38 while read dev; do iwconfig $dev 2>&1 | \ |
pascal@102 | 39 grep -iq "essid" && { echo $dev ; break; }; \ |
pascal@102 | 40 done) |
pascal@102 | 41 [ -n "$WIFI_INTERFACE" ] && sed -i "s/^WIFI_INTERFACE=.*/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" /etc/network.conf |
pascal@102 | 42 fi |
pascal@109 | 43 [ -n "$WPA_DRIVER" ] || WPA_DRIVER="wext" |
pascal@109 | 44 if iwconfig $WIFI_INTERFACE 2>&1 | grep -iq "unassociated"; then |
pascal@102 | 45 IWCONFIG_ARGS="" |
pascal@102 | 46 [ -n "$WIFI_MODE" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS mode $WIFI_MODE" |
pascal@102 | 47 [ -n "$WIFI_KEY" ] && case "$WIFI_KEY_TYPE" in |
pascal@102 | 48 wep|WEP) IWCONFIG_ARGS="$IWCONFIG_ARGS key $WIFI_KEY";; |
pascal@102 | 49 wpa|WPA) cat > /tmp/wpa.conf <<EOF |
pascal@102 | 50 ap_scan=1 |
pascal@102 | 51 network={ |
pascal@102 | 52 ssid="$WIFI_ESSID" |
pascal@102 | 53 scan_ssid=1 |
pascal@102 | 54 proto=WPA |
pascal@102 | 55 key_mgmt=WPA-PSK |
pascal@102 | 56 psk="$WIFI_KEY" |
pascal@102 | 57 priority=5 |
pascal@102 | 58 } |
pascal@102 | 59 EOF |
pascal@109 | 60 echo -n "starting wpa_supplicant, for WPA-PSK" |
pascal@109 | 61 wpa_supplicant -B -w -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE |
pascal@102 | 62 ;; |
pascal@102 | 63 any|ANY) cat > /tmp/wpa.conf <<EOF |
pascal@102 | 64 ap_scan=1 |
pascal@102 | 65 network={ |
pascal@102 | 66 ssid="$WIFI_ESSID" |
pascal@102 | 67 scan_ssid=1 |
pascal@102 | 68 key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE |
pascal@102 | 69 group=CCMP TKIP WEP104 WEP40 |
pascal@102 | 70 pairwise=CCMP TKIP |
pascal@102 | 71 psk="$WIFI_KEY" |
pascal@102 | 72 priority=5 |
pascal@102 | 73 } |
pascal@102 | 74 EOF |
pascal@109 | 75 echo -n "starting wpa_supplicant for any key type" |
pascal@102 | 76 wpa_supplicant -B -w -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE |
pascal@102 | 77 ;; |
pascal@102 | 78 esac |
pascal@109 | 79 rm -f /tmp/wpa.conf |
pascal@102 | 80 [ -n "$WIFI_CHANNEL" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS channel $WIFI_CHANNEL" |
pascal@109 | 81 echo -n "configuring $WIFI_INTERFACE..." |
pascal@102 | 82 ifconfig $WIFI_INTERFACE up |
pascal@102 | 83 iwconfig $WIFI_INTERFACE txpower on |
pascal@102 | 84 iwconfig $WIFI_INTERFACE essid $WIFI_ESSID $IWCONFIG_ARGS |
pascal@109 | 85 status |
pascal@102 | 86 INTERFACE=$WIFI_INTERFACE |
pascal@102 | 87 fi |
pascal@102 | 88 fi |
pascal@102 | 89 |
pankso@8 | 90 # For a dynamic IP with DHCP. |
pankso@8 | 91 if [ "$DHCP" = "yes" ] ; then |
pankso@67 | 92 echo "Starting udhcpc client on: $INTERFACE... " |
pankso@67 | 93 /sbin/udhcpc -b -i $INTERFACE -p /var/run/udhcpc.$INTERFACE.pid |
pankso@8 | 94 fi |
pankso@8 | 95 |
pankso@8 | 96 # For a static IP. |
pankso@8 | 97 if [ "$STATIC" = "yes" ] ; then |
pankso@67 | 98 echo "Configuring static IP on $INTERFACE: $IP... " |
pankso@67 | 99 /sbin/ifconfig $INTERFACE $IP netmask $NETMASK up |
pankso@67 | 100 /sbin/route add default gateway $GATEWAY |
pankso@72 | 101 # Multi-DNS server in $DNS_SERVER. |
pankso@72 | 102 /bin/mv /etc/resolv.conf /tmp/resolv.conf.$$ |
pankso@72 | 103 for NS in $DNS_SERVER |
pankso@72 | 104 do |
pankso@72 | 105 echo "nameserver $NS" >> /etc/resolv.conf |
pankso@72 | 106 done |
pankso@8 | 107 fi |