summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--classes/base.bbclass4
-rw-r--r--packages/wlan-ng/files/post-down31
-rw-r--r--packages/wlan-ng/files/pre-up227
-rw-r--r--packages/wlan-ng/files/resume22
-rw-r--r--packages/wlan-ng/files/usbctlbin0 -> 4040 bytes
-rw-r--r--packages/wlan-ng/files/wlan-ng.modutils1
-rw-r--r--packages/wlan-ng/files/wlan.agent107
-rw-r--r--packages/wlan-ng/wlan-ng-modules-0.2.1-pre23/Ambit_usb.patch (renamed from packages/wlan-ng/files/Ambit_usb.patch)0
-rw-r--r--packages/wlan-ng/wlan-ng-modules-0.2.1-pre23/OZ-Configure.patch (renamed from packages/wlan-ng/files/OZ-Configure.patch)0
-rw-r--r--packages/wlan-ng/wlan-ng-modules-0.2.1-pre23/config.in (renamed from packages/wlan-ng/files/config.in)0
-rw-r--r--packages/wlan-ng/wlan-ng-modules-0.2.1-pre23/config.mk (renamed from packages/wlan-ng/files/config.mk)0
-rw-r--r--packages/wlan-ng/wlan-ng-modules-0.2.1-pre23/no-compat.patch (renamed from packages/wlan-ng/files/no-compat.patch)0
-rw-r--r--packages/wlan-ng/wlan-ng-modules-0.2.1-pre23/pass-kernel-cross.patch (renamed from packages/wlan-ng/files/pass-kernel-cross.patch)0
-rw-r--r--packages/wlan-ng/wlan-ng-modules-0.2.1-pre23/scripts-makefile-hostcc.diff (renamed from packages/wlan-ng/files/scripts-makefile-hostcc.diff)0
-rw-r--r--packages/wlan-ng/wlan-ng-modules-0.2.1-pre23/version.h (renamed from packages/wlan-ng/files/version.h)0
15 files changed, 390 insertions, 2 deletions
diff --git a/classes/base.bbclass b/classes/base.bbclass
index 52dfede863..4c2c58e8d2 100644
--- a/classes/base.bbclass
+++ b/classes/base.bbclass
@@ -795,7 +795,7 @@ ftp://ftp.kernel.org/pub ftp://ftp.uk.kernel.org/pub
ftp://ftp.kernel.org/pub ftp://ftp.hk.kernel.org/pub
ftp://ftp.kernel.org/pub ftp://ftp.au.kernel.org/pub
ftp://ftp.kernel.org/pub ftp://ftp.jp.kernel.org/pub
-ftp://.*/.*/ http://www.oesources.org/source/current
-http://.*/.*/ http://www.oesources.org/source/current
+ftp://.*/.*/ http://www.oesources.org/source/current/
+http://.*/.*/ http://www.oesources.org/source/current/
}
diff --git a/packages/wlan-ng/files/post-down b/packages/wlan-ng/files/post-down
index e69de29bb2..bf4ba0ae60 100644
--- a/packages/wlan-ng/files/post-down
+++ b/packages/wlan-ng/files/post-down
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+# This script takes care of bringing down wlan-ng devices.
+# It is run by ifdown.
+
+WLANCTL=/sbin/wlanctl-ng
+
+if [ ! -x $WLANCTL ] ; then
+ exit 0
+fi
+
+case $IFACE in
+wlan?)
+ # Reset device to make sure it is not trying to generate
+ # interrupts.
+ result=`$WLANCTL $IFACE lnxreq_ifstate ifstate=disable`
+
+ # Remove modules. Of course, for all I know they are still in use
+ # by another interface, in which case these rmmods will fail. Also,
+ # depending on how modutils is set up, different prism2 modules
+ # might be loaded.
+ (
+ rmmod prism2_pci || rmmod prism2_cs || rmmod prism2_usb || \
+ rmmod prism2_plx || true
+ rmmod p80211 || true
+ ) 2>/dev/null
+
+ # Remove lock file, just in case.
+ rm -f /var/lock/wlan-$IFACE.lock
+;;
+esac
diff --git a/packages/wlan-ng/files/pre-up b/packages/wlan-ng/files/pre-up
index e69de29bb2..0ae410edfa 100644
--- a/packages/wlan-ng/files/pre-up
+++ b/packages/wlan-ng/files/pre-up
@@ -0,0 +1,227 @@
+#!/bin/sh
+
+case "$METHOD" in loopback) exit 0 ;; esac
+
+#
+# This script takes care of bringing up wlan-ng device.
+# It is run by ifup, and gets information from the
+# /etc/network/interfaces file. It is derived from the
+# init.d/wlan script in the wlan-ng distribution
+
+WLANCTL=/sbin/wlanctl-ng
+PRIV_GENERATOR=/sbin/nwepgen
+
+if [ ! -x $WLANCTL ] ; then
+ exit 0
+fi
+
+# Detect and act only on linux-wlan-ng interfaces
+if [ "$IF_WIRELESS_TYPE" != "wlan-ng" ]; then
+ exit 0
+fi
+
+# Create a lock file; remove on script exit. This is a fairly crummy lock,
+# but all it needs to do is prevent hotplug from calling this script,
+# which may happen when the module is loaded below. Since it should only
+# happen when the module is loaded, I don't need a proper lock.
+if [ -e /var/lock/wlan-$IFACE.lock ]; then
+ exit 0
+fi
+touch /var/lock/wlan-$IFACE.lock
+cleanup () {
+ rm -f /var/lock/wlan-$IFACE.lock
+}
+trap cleanup 0
+
+if [ -z "$IF_WIRELESS_MODE" ]; then
+ IF_WIRELESS_MODE="ad_hoc"
+fi
+
+if [ -z "$IF_WLAN_NG_HOSTWEP" ]; then
+ IF_WLAN_NG_HOSTWEP=false
+fi
+
+if [ -z "$IF_WLAN_NG_DEFAULT_KEY_ID" ]; then
+ IF_WLAN_NG_DEFAULT_KEY_ID=0
+fi
+
+if [ -z "$IF_WLAN_NG_EXCLUDE_UNENCRYPTED" ]; then
+ IF_WLAN_NG_EXCLUDE_UNENCRYPTED=true
+fi
+
+if [ -z "$IF_WLAN_NG_PRIV_KEY128" ]; then
+ IF_WLAN_NG_PRIV_KEY128=false
+fi
+
+if [ -z "$IF_WLAN_NG_BCINT" ]; then
+ IF_WLAN_NG_BCINT=100
+fi
+
+if [ -z "$IF_WLAN_NG_BASICRATES" ]; then
+ IF_WLAN_NG_BASICRATES="2 4"
+fi
+
+if [ -z "$IF_WLAN_NG_OPRATES" ]; then
+ IF_WLAN_NG_OPRATES="2 4 11 22"
+fi
+
+if [ -z "$IF_WLAN_NG_AUTHTYPE" ]; then
+ IF_WLAN_NG_AUTHTYPE="opensystem"
+fi
+
+if [ -z "$IF_WIRELESS_CHANNEL" ]; then
+ IF_WIRELESS_CHANNEL=1
+fi
+
+if ! modprobe p80211; then
+ echo "Failed to load p80211.o." >&2
+ exit 1
+fi
+
+# NOTE: We don't explicitly insmod the card driver here. The
+# best thing to do is to specify an alias in /etc/modules.conf.
+# Then, the first time we call wlanctl with the named device,
+# the kernel module autoload stuff will take over.
+# But, if you prefer, you could modprobe it here.
+
+
+# Bring the card up into an operable state.
+result=`$WLANCTL $IFACE lnxreq_ifstate ifstate=enable`
+if [ $? = 0 ] ; then
+ eval $result
+ if [ $resultcode != "success" ]; then
+ echo "Failed to enable the device, resultcode=" $resultcode "." >&2
+ exit 1
+ fi
+else
+ echo "Failed to enable the device, exitcode=" $? "." >&2
+ exit 1
+fi
+
+# Set user-specified MIB items.
+for i in $IF_WLAN_NG_USER_MIBS; do
+ result=`$WLANCTL $IFACE dot11req_mibset "mibattribute=$i"`
+
+ if [ $? = 0 ] ; then
+ eval $result
+ if [ $resultcode != "success" ] ; then
+ echo "Failed to set user MIB $i." >&2
+ exit 1
+ fi
+ else
+ echo "Failed to set user MIB $i." >&2
+ exit 1
+ fi
+done
+
+if [ "$IF_WIRELESS_ENC" = "on" ]; then
+ # Set up WEP.
+ result=`$WLANCTL $IFACE dot11req_mibget mibattribute=dot11PrivacyOptionImplemented`
+ if [ $? = 0 ] ; then
+ eval $result
+ eval $mibattribute
+ else
+ echo "mibget failed." >&2
+ exit 1
+ fi
+
+ if [ "$dot11PrivacyOptionImplemented" != "true" ]; then
+ echo "Cannot enable privacy, dot11PrivacyOptionImplemented=$dot11PrivacyOptionImplemented." >&2
+ exit 1
+ fi
+
+ $WLANCTL $IFACE lnxreq_hostwep decrypt=$IF_WLAN_NG_HOSTWEP encrypt=$IF_WLAN_NG_HOSTWEP >/dev/null
+
+ $WLANCTL $IFACE dot11req_mibset \
+ mibattribute=dot11WEPDefaultKeyID=$IF_WLAN_NG_DEFAULT_KEY_ID \
+ >/dev/null
+
+ $WLANCTL $IFACE dot11req_mibset \
+ mibattribute=dot11ExcludeUnencrypted=$IF_WLAN_NG_EXCLUDE_UNENCRYPTED \
+ >/dev/null
+
+ $WLANCTL $IFACE dot11req_mibset \
+ mibattribute=dot11PrivacyInvoked=true >/dev/null
+
+ if [ -e "$IF_WLAN_NG_KEYFILE" ]; then
+ IF_WLAN_NG_PRIV_GENSTR=`cat $IF_WLAN_NG_KEYFILE`
+ fi
+ if [ ! -z "$IF_WLAN_NG_PRIV_GENSTR" ]; then
+ if [ "$IF_WLAN_NG_PRIV_KEY128" = "false" ]; then
+ keys=`$PRIV_GENERATOR "$IF_WLAN_NG_PRIV_GENSTR" 5`
+ else
+ keys=`$PRIV_GENERATOR "$IF_WLAN_NG_PRIV_GENSTR" 13`
+ fi
+
+ knum=0
+ for i in $keys; do
+ $WLANCTL $IFACE dot11req_mibset \
+ mibattribute=dot11WEPDefaultKey$knum=$i \
+ >/dev/null
+ knum=$(expr $knum + 1)
+ done
+ else
+ $WLANCTL $IFACE dot11req_mibset \
+ mibattribute=dot11WEPDefaultKey0=$IF_WLAN_NG_KEY0 \
+ >/dev/null
+ $WLANCTL $IFACE dot11req_mibset \
+ mibattribute=dot11WEPDefaultKey1=$IF_WLAN_NG_KEY1 \
+ >/dev/null
+ $WLANCTL $IFACE dot11req_mibset \
+ mibattribute=dot11WEPDefaultKey2=$IF_WLAN_NG_KEY2 \
+ >/dev/null
+ $WLANCTL $IFACE dot11req_mibset \
+ mibattribute=dot11WEPDefaultKey3=$IF_WLAN_NG_KEY3 \
+ >/dev/null
+ fi
+fi
+
+# MAC startup
+if [ "$IF_WIRELESS_MODE" = "ad_hoc" ] ||
+ [ "$IF_WIRELESS_MODE" = "ad-hoc" ]; then
+ startcmd="$WLANCTL $IFACE dot11req_start "
+ startcmd="$startcmd ssid=$IF_WIRELESS_ESSID"
+ startcmd="$startcmd bsstype=independent"
+ startcmd="$startcmd beaconperiod=$IF_WLAN_NG_BCINT"
+ startcmd="$startcmd dtimperiod=3"
+ startcmd="$startcmd cfpollable=false"
+ startcmd="$startcmd cfpollreq=false"
+ startcmd="$startcmd cfpperiod=3"
+ startcmd="$startcmd cfpmaxduration=100"
+ startcmd="$startcmd probedelay=100"
+ startcmd="$startcmd dschannel=$IF_WIRELESS_CHANNEL"
+ j=1
+ for i in $IF_WLAN_NG_BASICRATES; do
+ startcmd="$startcmd basicrate$j=$i"
+ j=$(expr $j + 1)
+ done
+ j=1
+ for i in $IF_WLAN_NG_OPRATES; do
+ startcmd="$startcmd operationalrate$j=$i"
+ j=$(expr $j + 1)
+ done
+
+ results=`$startcmd`
+ if [ $? = 0 ]; then
+ eval $results
+ if [ $resultcode != "success" ] ; then
+ echo "IBSS not started, resultcode=$resultcode" >&2
+ exit 1
+ fi
+ else
+ echo FAILED: $startcmd >&2
+ exit 1
+ fi
+else
+ # Infrastructure mode.
+ results=`$WLANCTL $IFACE lnxreq_autojoin \
+ "ssid=$IF_WIRELESS_ESSID" \
+ authtype=$IF_WLAN_NG_AUTHTYPE | sed 's/\([^=]*\)=\(.*\)/\1="\2"/'`
+ if [ $? = 0 ]; then
+ eval $results
+ if [ ${resultcode:-"failure"} != "success" ]; then
+ echo 'error: Autojoin indicated failure!' >&2
+ exit 1
+ fi
+ fi
+fi
diff --git a/packages/wlan-ng/files/resume b/packages/wlan-ng/files/resume
index e69de29bb2..f875939da6 100644
--- a/packages/wlan-ng/files/resume
+++ b/packages/wlan-ng/files/resume
@@ -0,0 +1,22 @@
+#!/bin/sh
+# This script is run on resume to force a down and up of any linux-wlanng
+# iterfaces. Otherwise they could get into a weird state.
+IFACES=$(ifconfig | grep -B 1 ^wlan | cut -d ' ' -f 1)
+for iface in $IFACES; do
+ echo down $ifcase >>/tmp/log
+ ifdown $iface || ifconfig $iface down
+done
+
+rmmod prism2_pci 2>/dev/null
+rmmod prism2_usb 2>/dev/null
+rmmod prism2_cs 2>/dev/null
+rmmod prism2_plx 2>/dev/null
+rmmod p80211 2>/dev/null
+
+# There is a race here for some reason.
+sleep 2
+
+for iface in $IFACES; do
+ ifup $iface
+done
+
diff --git a/packages/wlan-ng/files/usbctl b/packages/wlan-ng/files/usbctl
index e69de29bb2..5a34b03c39 100644
--- a/packages/wlan-ng/files/usbctl
+++ b/packages/wlan-ng/files/usbctl
Binary files differ
diff --git a/packages/wlan-ng/files/wlan-ng.modutils b/packages/wlan-ng/files/wlan-ng.modutils
index e69de29bb2..010e20d375 100644
--- a/packages/wlan-ng/files/wlan-ng.modutils
+++ b/packages/wlan-ng/files/wlan-ng.modutils
@@ -0,0 +1 @@
+alias wlan0 prism2_usb
diff --git a/packages/wlan-ng/files/wlan.agent b/packages/wlan-ng/files/wlan.agent
index e69de29bb2..945d646984 100644
--- a/packages/wlan-ng/files/wlan.agent
+++ b/packages/wlan-ng/files/wlan.agent
@@ -0,0 +1,107 @@
+#!/bin/sh
+#
+# p80211/wlan hotplug policy agent.
+#
+# wlan hotplug params include:
+#
+# ACTION=%s [register|remove|shutdown|startup|suspend|resume]
+# INTERFACE=%s
+# NSDNAME=%s
+#
+
+cd /etc/hotplug
+# must have ./ here or busybox shell barfs
+. ./hotplug.functions
+
+#DEBUG=yes export DEBUG
+
+if [ "$INTERFACE" = "" ]; then
+ mesg Bad WLAN invocation: \$INTERFACE is not set
+ exit 1
+fi
+
+if [ "$NSDNAME" = "" ]; then
+ mesg Bad WLAN invocation: \$NSDNAME is not set
+ exit 1
+fi
+
+debug_mesg WLAN $ACTION on $INTERFACE \($NSDNAME\)
+
+if [ "$NSDNAME" = "prism2_cs" ] ; then
+ mesg "WLAN Hotplug bypassed for pcmcia"
+ exit 0
+fi
+
+# load up the shared scripts
+if [ ! -f /etc/wlan/shared ] ; then
+ mesg "/etc/wlan/shared not present, aborting"
+ exit 1
+fi
+
+ECHO=mesg
+. /etc/wlan/shared
+
+case $ACTION in
+'register'|'resume')
+ eval 'WLAN_ENABLE=$ENABLE_'$INTERFACE
+ if ! is_true $WLAN_ENABLE ; then
+ mesg "WLAN $ACTION - interface $INTERFACE not enabled, aborting"
+ exit 1
+ fi
+ debug_mesg WLAN $INTERFACE registered.
+ wlan_bring_it_up $INTERFACE
+ if [ $? = 0 ] ; then
+ mesg WLAN $INTERFACE brought up successfully.
+ if [ -x /etc/wlan/network ] ; then
+ mesg "WLAN bringing up layer 3+ with /etc/wlan/network"
+ /etc/wlan/network start $INTERFACE
+ elif [ -x /etc/wlan/pre-ifup ] ; then
+ # pre-ifup is presumed to call ifup if it
+ # wants to...it may choose to skip it.
+ mesg "WLAN bringing up layer 3+ with /etc/wlan/pre-ifup"
+ /etc/wlan/pre-ifup $INTERFACE
+ else
+ mesg "WLAN bringing up layer 3+ with /sbin/ifup"
+ /sbin/ifup $INTERFACE
+ fi
+ else
+ mesg WLAN Could not bring up $INTERFACE
+ exit 1
+ fi
+ # eventually invoke net.agent on $INTERFACE w/ REGISTER
+;;
+'remove'|'suspend')
+ debug_mesg WLAN $INTERFACE removed.
+ eval 'WLAN_ENABLE=$ENABLE_'$INTERFACE
+ if ! is_true $WLAN_ENABLE ; then
+ mesg "WLAN $ACTION - interface $INTERFACE not enabled, aborting"
+ exit 1
+ fi
+ if [ -x /etc/wlan/network ] ; then
+ mesg "WLAN taking down layer 3+ with /etc/wlan/network"
+ /etc/wlan/network stop $INTERFACE
+ elif [ -x /etc/wlan/post-ifdown ] ; then
+ # post-ifdown is presumed to call ifdown if it
+ # wants to...it may choose to skip it.
+ mesg "WLAN taking down layer 3+ with /etc/wlan/post-ifdown"
+ /etc/wlan/post-ifdown $INTERFACE
+ else
+ mesg "WLAN taking down layer 3+ with /sbin/ifdown"
+ /sbin/ifdown $INTERFACE
+ fi
+ wlan_disable $INTERFACE
+;;
+'startup')
+ # kick off wland.
+ debug_mesg WLAN p80211 starting!
+ start_wland
+;;
+'shutdown')
+ debug_mesg WLAN p80211 shutting down!
+ stop_wland
+;;
+*)
+ debug_mesg WLAN $ACTION event not supported
+ exit 1 ;;
+
+esac
diff --git a/packages/wlan-ng/files/Ambit_usb.patch b/packages/wlan-ng/wlan-ng-modules-0.2.1-pre23/Ambit_usb.patch
index e69de29bb2..e69de29bb2 100644
--- a/packages/wlan-ng/files/Ambit_usb.patch
+++ b/packages/wlan-ng/wlan-ng-modules-0.2.1-pre23/Ambit_usb.patch
diff --git a/packages/wlan-ng/files/OZ-Configure.patch b/packages/wlan-ng/wlan-ng-modules-0.2.1-pre23/OZ-Configure.patch
index e69de29bb2..e69de29bb2 100644
--- a/packages/wlan-ng/files/OZ-Configure.patch
+++ b/packages/wlan-ng/wlan-ng-modules-0.2.1-pre23/OZ-Configure.patch
diff --git a/packages/wlan-ng/files/config.in b/packages/wlan-ng/wlan-ng-modules-0.2.1-pre23/config.in
index e69de29bb2..e69de29bb2 100644
--- a/packages/wlan-ng/files/config.in
+++ b/packages/wlan-ng/wlan-ng-modules-0.2.1-pre23/config.in
diff --git a/packages/wlan-ng/files/config.mk b/packages/wlan-ng/wlan-ng-modules-0.2.1-pre23/config.mk
index e69de29bb2..e69de29bb2 100644
--- a/packages/wlan-ng/files/config.mk
+++ b/packages/wlan-ng/wlan-ng-modules-0.2.1-pre23/config.mk
diff --git a/packages/wlan-ng/files/no-compat.patch b/packages/wlan-ng/wlan-ng-modules-0.2.1-pre23/no-compat.patch
index e69de29bb2..e69de29bb2 100644
--- a/packages/wlan-ng/files/no-compat.patch
+++ b/packages/wlan-ng/wlan-ng-modules-0.2.1-pre23/no-compat.patch
diff --git a/packages/wlan-ng/files/pass-kernel-cross.patch b/packages/wlan-ng/wlan-ng-modules-0.2.1-pre23/pass-kernel-cross.patch
index e69de29bb2..e69de29bb2 100644
--- a/packages/wlan-ng/files/pass-kernel-cross.patch
+++ b/packages/wlan-ng/wlan-ng-modules-0.2.1-pre23/pass-kernel-cross.patch
diff --git a/packages/wlan-ng/files/scripts-makefile-hostcc.diff b/packages/wlan-ng/wlan-ng-modules-0.2.1-pre23/scripts-makefile-hostcc.diff
index e69de29bb2..e69de29bb2 100644
--- a/packages/wlan-ng/files/scripts-makefile-hostcc.diff
+++ b/packages/wlan-ng/wlan-ng-modules-0.2.1-pre23/scripts-makefile-hostcc.diff
diff --git a/packages/wlan-ng/files/version.h b/packages/wlan-ng/wlan-ng-modules-0.2.1-pre23/version.h
index e69de29bb2..e69de29bb2 100644
--- a/packages/wlan-ng/files/version.h
+++ b/packages/wlan-ng/wlan-ng-modules-0.2.1-pre23/version.h