diff options
author | Denys Dmytriyenko <denis@denix.org> | 2009-03-17 14:32:59 -0400 |
---|---|---|
committer | Denys Dmytriyenko <denis@denix.org> | 2009-03-17 14:32:59 -0400 |
commit | 709c4d66e0b107ca606941b988bad717c0b45d9b (patch) | |
tree | 37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/wlan-ng/files | |
parent | fa6cd5a3b993f16c27de4ff82b42684516d433ba (diff) |
rename packages/ to recipes/ per earlier agreement
See links below for more details:
http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326
http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816
Signed-off-by: Denys Dmytriyenko <denis@denix.org>
Acked-by: Mike Westerhof <mwester@dls.net>
Acked-by: Philip Balister <philip@balister.org>
Acked-by: Khem Raj <raj.khem@gmail.com>
Acked-by: Marcin Juszkiewicz <hrw@openembedded.org>
Acked-by: Koen Kooi <koen@openembedded.org>
Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/wlan-ng/files')
-rw-r--r-- | recipes/wlan-ng/files/might-sleep.patch | 16 | ||||
-rw-r--r-- | recipes/wlan-ng/files/more-compat.patch | 7 | ||||
-rw-r--r-- | recipes/wlan-ng/files/msleep-vs-mdelay.patch | 16 | ||||
-rw-r--r-- | recipes/wlan-ng/files/no-compat.patch | 47 | ||||
-rw-r--r-- | recipes/wlan-ng/files/pcmciasrc.patch | 45 | ||||
-rwxr-xr-x | recipes/wlan-ng/files/post-down | 31 | ||||
-rwxr-xr-x | recipes/wlan-ng/files/pre-up | 227 | ||||
-rwxr-xr-x | recipes/wlan-ng/files/resume | 22 | ||||
-rw-r--r-- | recipes/wlan-ng/files/scripts-makefile-hostcc.patch | 16 | ||||
-rwxr-xr-x | recipes/wlan-ng/files/usbctl | bin | 0 -> 4040 bytes | |||
-rw-r--r-- | recipes/wlan-ng/files/wlan-ng.modutils | 1 | ||||
-rw-r--r-- | recipes/wlan-ng/files/wlan.agent | 107 |
12 files changed, 535 insertions, 0 deletions
diff --git a/recipes/wlan-ng/files/might-sleep.patch b/recipes/wlan-ng/files/might-sleep.patch new file mode 100644 index 0000000000..a156229331 --- /dev/null +++ b/recipes/wlan-ng/files/might-sleep.patch @@ -0,0 +1,16 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- linux-wlan-ng-0.2.2/src/include/wlan/wlan_compat.h~might_sleep ++++ linux-wlan-ng-0.2.2/src/include/wlan/wlan_compat.h +@@ -584,7 +584,7 @@ + #endif + + #ifndef might_sleep +-#define might_sleep(a) do { } while (0) ++#define might_sleep() do { } while (0) + #endif + + /* Apparently 2.4.2 ethtool is quite different, maybe newer too? */ diff --git a/recipes/wlan-ng/files/more-compat.patch b/recipes/wlan-ng/files/more-compat.patch new file mode 100644 index 0000000000..4ce8173f93 --- /dev/null +++ b/recipes/wlan-ng/files/more-compat.patch @@ -0,0 +1,7 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- linux-wlan-ng-0.2.2/wlan_compat.h ++++ /dev/null diff --git a/recipes/wlan-ng/files/msleep-vs-mdelay.patch b/recipes/wlan-ng/files/msleep-vs-mdelay.patch new file mode 100644 index 0000000000..d98116b07c --- /dev/null +++ b/recipes/wlan-ng/files/msleep-vs-mdelay.patch @@ -0,0 +1,16 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- linux-wlan-ng-0.2.2/src/prism2/driver/prism2_usb.c~msleep-vs-mdelay ++++ linux-wlan-ng-0.2.2/src/prism2/driver/prism2_usb.c +@@ -279,7 +279,7 @@ + * is "wake up", so that's easy. + * (I'd like a better way to do this, really.) + */ +- msleep(100); ++ mdelay(100); + + /* Now delete the CTLXs, because no-one else can now. */ + list_for_each_safe(entry, temp, &cleanlist) { diff --git a/recipes/wlan-ng/files/no-compat.patch b/recipes/wlan-ng/files/no-compat.patch new file mode 100644 index 0000000000..4f59f0fa5d --- /dev/null +++ b/recipes/wlan-ng/files/no-compat.patch @@ -0,0 +1,47 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- linux-wlan-ng-0.2.1pre21/src/include/wlan/wlan_compat.h~no-compat ++++ linux-wlan-ng-0.2.1pre21/src/include/wlan/wlan_compat.h +@@ -351,14 +351,14 @@ + + #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,20)) + #ifdef _LINUX_LIST_H +- ++/* + static inline void list_move_tail(struct list_head *list, + struct list_head *head) + { + __list_del(list->prev, list->next); + list_add_tail(list, head); + } +- ++*/ + static inline void __list_splice(struct list_head *list, + struct list_head *head) + { +@@ -372,13 +372,13 @@ + last->next = at; + at->prev = last; + } +- ++/* + static inline void list_move(struct list_head *list, struct list_head *head) + { + __list_del(list->prev, list->next); + list_add(list, head); + } +- ++*/ + static inline void list_splice_init(struct list_head *list, + struct list_head *head) + { +@@ -388,7 +388,6 @@ + } + } + +- + #endif // LIST_H + #endif diff --git a/recipes/wlan-ng/files/pcmciasrc.patch b/recipes/wlan-ng/files/pcmciasrc.patch new file mode 100644 index 0000000000..ea76baa98b --- /dev/null +++ b/recipes/wlan-ng/files/pcmciasrc.patch @@ -0,0 +1,45 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- linux-wlan-ng-0.2.2/Configure~pcmciasrc ++++ linux-wlan-ng-0.2.2/Configure +@@ -358,37 +358,6 @@ + # kernel PCMCIA. + + if [ $WLAN_KERN_PCMCIA != "y" ] ; then +- if [ ! "$PCMCIA_SRC" ] ; then +- if [ -f /sbin/cardctl ] ; then +- PCMCIA_SRC=`/sbin/cardctl -V 2>&1 | sed -e 's/cardctl version //'` +- PCMCIA_SRC=/usr/src/pcmcia-cs-$PCMCIA_SRC +- fi +- fi +- ask_str "pcmcia-cs source dir" PCMCIA_SRC +- +- if [ ! -f $PCMCIA_SRC/Makefile ] ; then +- $ECHO "pcmcia-cs source tree $PCMCIA_SRC is incomplete or missing!" +- $ECHO "The wlan driver for pcmcia cannot be built without " +- $ECHO "the pcmcia-cs source tree present and configured." +- fail +- fi +- if [ ! -f $PCMCIA_SRC/include/pcmcia/config.h ] ; then +- $ECHO "The pcmcia-cs source tree does not appear to be configured." +- $ECHO "The wlan driver for pcmcia cannot be built without "\ +- $ECHO "the pcmcia-cs source tree present and configured." +- fail +- fi +- $ECHO "" +- +- # Now we need to generate the module options flags. +- # It's only relevant if modversions is turned on. +- grep CONFIG_MODVERSIONS=y < $PCMCIA_SRC/config.mk > /dev/null +- if [ $? = 0 ] ; then +- PCMCIA_MODFLAGS="-DMODULE -DMODVERSIONS -include $PCMCIA_SRC/include/linux/modversions.h" +- else +- PCMCIA_MODFLAGS="-DMODULE" +- fi +- + # new versions of pcmcia-cs don't generate their own modversion.h + # if they don't have it, use the kernel module flags instead. + if [ ! -f $PCMCIA_SRC/include/linux/modversions.h ] ; then diff --git a/recipes/wlan-ng/files/post-down b/recipes/wlan-ng/files/post-down new file mode 100755 index 0000000000..bf4ba0ae60 --- /dev/null +++ b/recipes/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/recipes/wlan-ng/files/pre-up b/recipes/wlan-ng/files/pre-up new file mode 100755 index 0000000000..0ae410edfa --- /dev/null +++ b/recipes/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/recipes/wlan-ng/files/resume b/recipes/wlan-ng/files/resume new file mode 100755 index 0000000000..f875939da6 --- /dev/null +++ b/recipes/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/recipes/wlan-ng/files/scripts-makefile-hostcc.patch b/recipes/wlan-ng/files/scripts-makefile-hostcc.patch new file mode 100644 index 0000000000..1746b8a359 --- /dev/null +++ b/recipes/wlan-ng/files/scripts-makefile-hostcc.patch @@ -0,0 +1,16 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- linux-wlan-ng-0.2.2/scripts/Makefile~scripts-makefile-hostcc ++++ linux-wlan-ng-0.2.2/scripts/Makefile +@@ -24,7 +24,7 @@ + exit 1;\ + fi + +- $(CC) -I$(KERNEL_SOURCE)/include get_version.c -o get_version ++ $(BUILD_CC) -I$(KERNEL_SOURCE)/include get_version.c -o get_version + + get_options: + $(MAKE) -f $(CURR_DIR)/Makefile.get_options -C $(KERNEL_SOURCE) get_version_target diff --git a/recipes/wlan-ng/files/usbctl b/recipes/wlan-ng/files/usbctl Binary files differnew file mode 100755 index 0000000000..5a34b03c39 --- /dev/null +++ b/recipes/wlan-ng/files/usbctl diff --git a/recipes/wlan-ng/files/wlan-ng.modutils b/recipes/wlan-ng/files/wlan-ng.modutils new file mode 100644 index 0000000000..010e20d375 --- /dev/null +++ b/recipes/wlan-ng/files/wlan-ng.modutils @@ -0,0 +1 @@ +alias wlan0 prism2_usb diff --git a/recipes/wlan-ng/files/wlan.agent b/recipes/wlan-ng/files/wlan.agent new file mode 100644 index 0000000000..945d646984 --- /dev/null +++ b/recipes/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 |