slitaz-boot-scripts 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 d6f7d8765539
files etc/init.d/network.sh etc/network.conf
line diff
     1.1 --- a/etc/init.d/network.sh	Sat Jul 19 15:17:25 2008 +0000
     1.2 +++ b/etc/init.d/network.sh	Tue Jul 22 22:25:02 2008 +0000
     1.3 @@ -5,6 +5,9 @@
     1.4  . /etc/init.d/rc.functions
     1.5  . /etc/network.conf
     1.6  
     1.7 +# Only configure hostname and loopback at boot time
     1.8 +if [ -n "$1" ]; then
     1.9 +
    1.10  # Set hostname.
    1.11  echo -n "Setting hostname... "
    1.12  /bin/hostname -F /etc/hostname
    1.13 @@ -16,6 +19,8 @@
    1.14  /sbin/route add 127.0.0.1 lo
    1.15  status
    1.16  
    1.17 +fi
    1.18 +
    1.19  # For wifi. Users just have to enable it throught yes and usually
    1.20  # essid any will work and interface is autodetected.
    1.21  if [ "$WIFI" = "yes" ] || grep -q "wifi" /proc/cmdline; then
    1.22 @@ -23,17 +28,20 @@
    1.23  		for i in $NDISWRAPPER_DRIVERS; do
    1.24  			ndiswrapper -i $i
    1.25  		done
    1.26 +		echo -n "Loading ndiswrapper module..."
    1.27  		modprobe ndiswrapper
    1.28 +		status
    1.29  	fi
    1.30 -	if ! iwconfig $WIFI_INTERFACE 2>&1 | grep -iq "essid"; then
    1.31 +	if [ ! -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then
    1.32 +		echo "$WIFI_INTERFACE is not a wifi interface, changing it."
    1.33  		WIFI_INTERFACE=$(grep : /proc/net/dev | cut -d: -f1 | \
    1.34  			while read dev; do iwconfig $dev 2>&1 | \
    1.35  			grep -iq "essid" && { echo $dev ; break; }; \
    1.36                          done)
    1.37                  [ -n "$WIFI_INTERFACE" ] && sed -i "s/^WIFI_INTERFACE=.*/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" /etc/network.conf
    1.38          fi
    1.39 -        [ -n "$WPA_DRIVER" ] && WPA_DRIVER="wext"
    1.40 -	if iwconfig $WIFI_INTERFACE 2>&1 | grep -iq "essid"; then
    1.41 +        [ -n "$WPA_DRIVER" ] || WPA_DRIVER="wext"
    1.42 +        if iwconfig $WIFI_INTERFACE 2>&1 | grep -iq "unassociated"; then
    1.43  		IWCONFIG_ARGS=""
    1.44  		[ -n "$WIFI_MODE" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS mode $WIFI_MODE"
    1.45  		[ -n "$WIFI_KEY" ] && case "$WIFI_KEY_TYPE" in
    1.46 @@ -49,7 +57,8 @@
    1.47  	priority=5
    1.48  }
    1.49  EOF
    1.50 -			wpa_supplicant -B -w -c/tmp/wpa.conf -D$DRIVER -i$WIFI_INTERFACE
    1.51 +			echo -n "starting wpa_supplicant, for WPA-PSK"
    1.52 +			wpa_supplicant -B -w -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE
    1.53  			;;
    1.54  		any|ANY) cat > /tmp/wpa.conf <<EOF
    1.55  ap_scan=1
    1.56 @@ -63,13 +72,17 @@
    1.57  	priority=5
    1.58  }
    1.59  EOF
    1.60 +			echo -n "starting wpa_supplicant for any key type"
    1.61  			wpa_supplicant -B -w -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE
    1.62  			;;
    1.63  		esac
    1.64 +		rm -f /tmp/wpa.conf
    1.65  		[ -n "$WIFI_CHANNEL" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS channel $WIFI_CHANNEL"
    1.66 +		echo -n "configuring $WIFI_INTERFACE..."
    1.67  		ifconfig $WIFI_INTERFACE up
    1.68  		iwconfig $WIFI_INTERFACE txpower on
    1.69  		iwconfig $WIFI_INTERFACE essid $WIFI_ESSID $IWCONFIG_ARGS
    1.70 +		status
    1.71  		INTERFACE=$WIFI_INTERFACE
    1.72          fi
    1.73  fi
     2.1 --- a/etc/network.conf	Sat Jul 19 15:17:25 2008 +0000
     2.2 +++ b/etc/network.conf	Tue Jul 22 22:25:02 2008 +0000
     2.3 @@ -33,6 +33,7 @@
     2.4  WIFI_MODE="managed"
     2.5  WIFI_KEY=""
     2.6  WIFI_KEY_TYPE="none"
     2.7 +WPA_DRIVER=""
     2.8  WIFI_CHANNEL=""
     2.9  WIFI_IWCONFIG_ARGS=""
    2.10  NDISWRAPPER_DRIVERS=""