# HG changeset patch # User Pascal Bellard # Date 1215691756 0 # Node ID b8b2e39066ea122ea7f87aade301cc31b9cc9eb2 # Parent de5ae88515f686d3099321b53c983c4a332ebede network.sh: enhance wifi setup diff -r de5ae88515f6 -r b8b2e39066ea etc/init.d/network.sh --- a/etc/init.d/network.sh Thu Jun 26 22:08:18 2008 +0200 +++ b/etc/init.d/network.sh Thu Jul 10 12:09:16 2008 +0000 @@ -16,6 +16,64 @@ /sbin/route add 127.0.0.1 lo status +# For wifi. Users just have to enable it throught yes and usually +# essid any will work and interface is autodetected. +if [ "$WIFI" = "yes" ] || grep -q "wifi" /proc/cmdline; then + if [ -n "$NDISWRAPPER_DRIVERS" -a -x /usr/sbin/ndiswrapper ]; then + for i in $NDISWRAPPER_DRIVERS; do + ndiswrapper -i $i + done + modprobe ndiswrapper + fi + if ! iwconfig $WIFI_INTERFACE 2>&1 | grep -iq "essid"; then + WIFI_INTERFACE=$(grep : /proc/net/dev | cut -d: -f1 | \ + while read dev; do iwconfig $dev 2>&1 | \ + grep -iq "essid" && { echo $dev ; break; }; \ + done) + [ -n "$WIFI_INTERFACE" ] && sed -i "s/^WIFI_INTERFACE=.*/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" /etc/network.conf + fi + [ -n "$WPA_DRIVER" ] && WPA_DRIVER="wext" + if ! iwconfig $WIFI_INTERFACE 2>&1 | grep -iq "essid"; then + IWCONFIG_ARGS="" + [ -n "$WIFI_MODE" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS mode $WIFI_MODE" + [ -n "$WIFI_KEY" ] && case "$WIFI_KEY_TYPE" in + wep|WEP) IWCONFIG_ARGS="$IWCONFIG_ARGS key $WIFI_KEY";; + wpa|WPA) cat > /tmp/wpa.conf < /tmp/wpa.conf <> /etc/resolv.conf done fi - -# For wifi. Users just have to enable it throught yes and usually -# essid any will work and interafce is wlan0. -if [ "$WIFI" = "yes" ] || grep -q "wifi" /proc/cmdline; then - if [ -n "$NDISWRAPPER_DRIVERS" -a -x /usr/sbin/ndiswrapper ]; then - for i in $NDISWRAPPER_DRIVERS; do - ndiswrapper -i $i - done - modprobe ndiswrapper - fi - IWCONFIG_ARGS="" - [ -n "$WIFI_MODE" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS mode $WIFI_MODE" - [ -n "$WIFI_KEY" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS key $WIFI_KEY" - [ -n "$WIFI_CHANNEL" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS channel $WIFI_CHANNEL" - ifconfig $WIFI_INTERFACE up - iwconfig $WIFI_INTERFACE essid $WIFI_ESSID $IWCONFIG_ARGS - echo "Starting udhcpc client on: $WIFI_INTERFACE... " - /sbin/udhcpc -b -i $WIFI_INTERFACE \ - -p /var/run/udhcpc.$WIFI_INTERFACE.pid -fi diff -r de5ae88515f6 -r b8b2e39066ea etc/network.conf --- a/etc/network.conf Thu Jun 26 22:08:18 2008 +0200 +++ b/etc/network.conf Thu Jul 10 12:09:16 2008 +0000 @@ -32,5 +32,6 @@ WIFI_ESSID="any" WIFI_MODE="managed" WIFI_KEY="" +WIFI_KEY_TYPE="none" WIFI_CHANNEL="" NDISWRAPPER_DRIVERS=""