diff options
Diffstat (limited to 'abs/core-testing/wlan-ng26')
-rw-r--r-- | abs/core-testing/wlan-ng26/PKGBUILD | 35 | ||||
-rw-r--r-- | abs/core-testing/wlan-ng26/kernel-2.6.26.patch | 3 | ||||
-rw-r--r-- | abs/core-testing/wlan-ng26/kernel-2.6.27.patch | 179 | ||||
-rw-r--r-- | abs/core-testing/wlan-ng26/wlan-ng26.install | 4 |
4 files changed, 202 insertions, 19 deletions
diff --git a/abs/core-testing/wlan-ng26/PKGBUILD b/abs/core-testing/wlan-ng26/PKGBUILD index c592386..7d4ff75 100644 --- a/abs/core-testing/wlan-ng26/PKGBUILD +++ b/abs/core-testing/wlan-ng26/PKGBUILD @@ -1,35 +1,38 @@ -# $Id: PKGBUILD 7952 2008-08-05 10:33:48Z tpowa $ +# $Id: PKGBUILD 14957 2008-10-11 20:14:56Z tpowa $ # Maintainer: Tom Killian <tom@archlinux.org> -pkgname=wlan-ng26 -pkgver=0.2.9 +pkgname=wlan-ng26-svn +pkgver=r1870 pkgrel=1 -_kernver=2.6.26-ARCH +_kernver=2.6.27-ARCH pkgdesc="Wireless Lan usb modules. For kernel26." arch=(i686 x86_64) license=('MPL') -depends=('kernel26>=2.6.26-1' 'kernel26<2.6.27' 'wlan-ng26-utils') -source=(ftp://ftp.linux-wlan.org/pub/linux-wlan-ng/linux-wlan-ng-$pkgver.tar.bz2 - kernel-2.6.26.patch) +depends=('kernel26>=2.6.27-1' 'kernel26<2.6.28' 'wlan-ng26-utils') +source=(ftp://ftp.knoppmyth.net/R6/sources/wlan-ng26-svn-$pkgver.tar.bz2 + kernel-2.6.26.patch + kernel-2.6.27.patch) url="ftp://ftp.linux-wlan.org/pub/linux-wlan-ng/" install=wlan-ng26.install options=(!makeflags) +md5sums=('86af583059976c2f340e27911af49059' + '7023c8c1f048659f95c2a41e5f1ae772' + '9261df23043b181fd86c5e4100a84883') build() { - cd $startdir/src/linux-wlan-ng-$pkgver - patch -Np0 -i ../kernel-2.6.26.patch || return 1 +# cd $srcdir/linux-wlan-ng-$pkgver + cd $srcdir/trunk +# patch -Np0 -i ../kernel-2.6.26.patch || return 1 +# patch -Np0 -i ../kernel-2.6.27.patch || return 1 # only built usb modules the rest is covered by hostap and orinoco driver, according to gentoo changelog sed -i "s#PRISM2_PCMCIA=y#PRISM2_PCMCIA=n#;s#TARGET_ROOT_ON_HOST=#TARGET_ROOT_ON_HOST=$startdir/pkg#;s#PRISM2_PLX=y#PRISM2_PLX=n#;s#PRISM2_PCI=y#PRISM2_PCI=n#;s#PRISM2_USB=n#PRISM2_USB=y#;s%#LINUX_SRC=/usr/src/linux%LINUX_SRC=/lib/modules/${_kernver}/build%" config.in make auto_config make all || return 1 make install sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" $startdir/wlan-ng26.install - rm -r $startdir/pkg/{etc,sbin,usr,init.d} + rm -r $pkgdir/{etc,sbin,usr,init.d} # fix module path - mkdir -p $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/net/wireless - mv $startdir/pkg/lib/modules/${_kernver}/linux-wlan-ng \ - $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/net/wireless + mkdir -p $pkgdir/lib/modules/${_kernver}/kernel/drivers/net/wireless + mv $pkgdir/lib/modules/${_kernver}/linux-wlan-ng \ + $pkgdir/lib/modules/${_kernver}/kernel/drivers/net/wireless } - -md5sums=('96130b36f9674521b08fb3e2a6ac0382' - '6ed5a5fefc2c149e0e0a98de211ba147') diff --git a/abs/core-testing/wlan-ng26/kernel-2.6.26.patch b/abs/core-testing/wlan-ng26/kernel-2.6.26.patch index ec306f0..28b61a0 100644 --- a/abs/core-testing/wlan-ng26/kernel-2.6.26.patch +++ b/abs/core-testing/wlan-ng26/kernel-2.6.26.patch @@ -11,4 +11,5 @@ Index: src/p80211/p80211netdev.c + dev_net_set(dev, &init_net); +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24) ) dev->nd_net = &init_net; - #endif
\ No newline at end of file + #endif + diff --git a/abs/core-testing/wlan-ng26/kernel-2.6.27.patch b/abs/core-testing/wlan-ng26/kernel-2.6.27.patch new file mode 100644 index 0000000..7a17f17 --- /dev/null +++ b/abs/core-testing/wlan-ng26/kernel-2.6.27.patch @@ -0,0 +1,179 @@ +--- src/p80211/p80211wext.c (revision 1865) ++++ src/p80211/p80211wext.c (working copy) +@@ -81,6 +81,12 @@ + /* compatibility to wireless extensions */ + #ifdef WIRELESS_EXT + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 27) && \ ++ !defined(IW_REQUEST_FLAG_COMPAT) ++#define iwe_stream_add_event(a, b, c, d, e) iwe_stream_add_event(b, c, d, e) ++#define iwe_stream_add_point(a, b, c, d, e) iwe_stream_add_point(b, c, d, e) ++#endif ++ + static UINT8 p80211_mhz_to_channel(UINT16 mhz) + { + if (mhz >= 5000) { +@@ -1520,7 +1526,8 @@ + * airo driver code. + */ + static char * +-wext_translate_bss(char *current_ev, char *end_buf, p80211msg_dot11req_scan_results_t *bss) ++wext_translate_bss(struct iw_request_info *info, char *current_ev, ++ char *end_buf, p80211msg_dot11req_scan_results_t *bss) + { + struct iw_event iwe; /* Temporary buffer */ + +@@ -1528,7 +1535,8 @@ + memcpy(iwe.u.ap_addr.sa_data, bss->bssid.data.data, WLAN_BSSID_LEN); + iwe.u.ap_addr.sa_family = ARPHRD_ETHER; + iwe.cmd = SIOCGIWAP; +- current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, IW_EV_ADDR_LEN); ++ current_ev = iwe_stream_add_event(info, current_ev, end_buf, &iwe, ++ IW_EV_ADDR_LEN); + + /* The following entries will be displayed in the same order we give them */ + +@@ -1544,7 +1552,8 @@ + iwe.u.data.length = size; + iwe.u.data.flags = 1; + iwe.cmd = SIOCGIWESSID; +- current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe, &essid[0]); ++ current_ev = iwe_stream_add_point(info, current_ev, end_buf, ++ &iwe, &essid[0]); + WLAN_LOG_DEBUG(1, " essid size OK.\n"); + } + +@@ -1563,7 +1572,8 @@ + } + iwe.cmd = SIOCGIWMODE; + if (iwe.u.mode) +- current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, IW_EV_UINT_LEN); ++ current_ev = iwe_stream_add_event(info, current_ev, end_buf, ++ &iwe, IW_EV_UINT_LEN); + + /* Encryption capability */ + if (bss->privacy.data == P80211ENUM_truth_true) +@@ -1572,13 +1582,15 @@ + iwe.u.data.flags = IW_ENCODE_DISABLED; + iwe.u.data.length = 0; + iwe.cmd = SIOCGIWENCODE; +- current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe, NULL); ++ current_ev = iwe_stream_add_point(info, current_ev, end_buf, &iwe, ++ NULL); + + /* Add frequency. (short) bss->channel is the frequency in MHz */ + iwe.u.freq.m = bss->dschannel.data; + iwe.u.freq.e = 0; + iwe.cmd = SIOCGIWFREQ; +- current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, IW_EV_FREQ_LEN); ++ current_ev = iwe_stream_add_event(info, current_ev, end_buf, &iwe, ++ IW_EV_FREQ_LEN); + + /* Add quality statistics */ + iwe.u.qual.level = bss->signal.data; +@@ -1586,7 +1598,8 @@ + /* do a simple SNR for quality */ + iwe.u.qual.qual = qual_as_percent(bss->signal.data - bss->noise.data); + iwe.cmd = IWEVQUAL; +- current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, IW_EV_QUAL_LEN); ++ current_ev = iwe_stream_add_event(info, current_ev, end_buf, &iwe, ++ IW_EV_QUAL_LEN); + + return current_ev; + } +@@ -1627,7 +1640,8 @@ + break; + } + +- current_ev = wext_translate_bss(current_ev, extra + IW_SCAN_MAX_DATA, &msg); ++ current_ev = wext_translate_bss(info, current_ev, ++ extra + IW_SCAN_MAX_DATA, &msg); + scan_good = 1; + i++; + } while (i < IW_MAX_AP); +--- src/p80211/p80211netdev.c ++++ src/p80211/p80211netdev.c +@@ -869,6 +869,30 @@ static int wlan_change_mtu(netdevice_t *dev, int new_mtu) + return 0; + } + ++/*--------------------------------------------------------- ++ * wlan_alloc_netdev ++ * ++ * create a netdev properly over different kernel versions ++ * this should work with kernels earlier than 2.6.26, and if ++ * anyone cares they can change it ++----------------------------------------------------------*/ ++ ++static inline netdevice_t * wlan_alloc_netdev() { ++ netdevice_t *dev; ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) ) ++ dev = alloc_netdev(0,"wlan%d",ether_setup); ++#else ++ dev = kmalloc(sizeof(netdevice_t), GFP_ATOMIC); ++ if ( dev ) { ++ memset( dev, 0, sizeof(netdevice_t)); ++ ether_setup(dev); ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24) ) ++ dev->nd_net = &init_net; ++#endif ++ } ++#endif ++ return dev; ++} + + + /*---------------------------------------------------------------- +@@ -911,14 +935,12 @@ int wlan_setup(wlandevice_t *wlandev) + p80211netdev_rx_bh, + (unsigned long)wlandev); + +- /* Allocate and initialize the struct device */ +- dev = kmalloc(sizeof(netdevice_t), GFP_ATOMIC); ++ /* Allocate and initialize the struct net device */ ++ dev = wlan_alloc_netdev(); + if ( dev == NULL ) { + WLAN_LOG_ERROR("Failed to alloc netdev.\n"); + result = 1; + } else { +- memset( dev, 0, sizeof(netdevice_t)); +- ether_setup(dev); + wlandev->netdev = dev; + dev->priv = wlandev; + dev->hard_start_xmit = p80211knetdev_hard_start_xmit; +@@ -946,10 +968,8 @@ int wlan_setup(wlandevice_t *wlandev) + dev->wireless_handlers = &p80211wext_handler_def; + #endif + #endif +- +-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) ) +- dev_net_set(dev, &init_net); +-#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24) ) ++ ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24) && LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26)) + dev->nd_net = &init_net; + #endif + +@@ -1044,7 +1064,12 @@ int register_wlandev(wlandevice_t *wlandev) + netdevice_t *dev = wlandev->netdev; + + DBFENTER; +- ++/* alloc_netdev already sets up the name */ ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) ) ++ i = register_netdev(dev); ++ if (i) ++ return i; ++#else + i = dev_alloc_name(wlandev->netdev, "wlan%d"); + if (i >= 0) { + i = register_netdev(wlandev->netdev); +@@ -1058,6 +1083,8 @@ int register_wlandev(wlandevice_t *wlandev) + #else + strcpy(wlandev->name, dev->name); + #endif ++#endif ++ + + #ifdef CONFIG_PROC_FS + if (proc_p80211) { diff --git a/abs/core-testing/wlan-ng26/wlan-ng26.install b/abs/core-testing/wlan-ng26/wlan-ng26.install index fe7abaa..ff39264 100644 --- a/abs/core-testing/wlan-ng26/wlan-ng26.install +++ b/abs/core-testing/wlan-ng26/wlan-ng26.install @@ -8,7 +8,7 @@ post_install() { post_upgrade() { # updating module dependencies echo ">>> Updating module dependencies. Please wait ..." - KERNEL_VERSION=2.6.26-ARCH + KERNEL_VERSION=2.6.27-ARCH depmod -v $KERNEL_VERSION > /dev/null 2>&1 } @@ -21,7 +21,7 @@ pre_remove() { post_remove() { # updating module dependencies echo ">>> Updating module dependencies. Please wait ..." - KERNEL_VERSION=2.6.26-ARCH + KERNEL_VERSION=2.6.27-ARCH depmod -v $KERNEL_VERSION > /dev/null 2>&1 } |