diff --git a/net-wireless/compat-wireless/Manifest b/net-wireless/compat-wireless/Manifest index 9e5f162ef..101e33dea 100644 --- a/net-wireless/compat-wireless/Manifest +++ b/net-wireless/compat-wireless/Manifest @@ -4,6 +4,7 @@ AUX 4004_zd1211rw-2.6.28.patch 1412 RMD160 70c7cd8a8e03199b33c76ff16974d4a4980b8 AUX 4005_ath5k-frequency-expansion-2.6.30.patch 4838 RMD160 e175138fd025ef0750178146c0c038c1664557bb SHA1 99322fe5cdf1a8ded58f65267503fddc90c934be SHA256 563a1644c51804d6014be54a7ce26cd4db70991a4b75c4b66370ea9136d40467 AUX 4007_ath5k-pass-failed-crc.patch 568 RMD160 1f38abc77887fc23b5f09b1ddd7e4159ab190e91 SHA1 22ecfbd59b4e7f1038ac9415003e182cddae8df2 SHA256 12e8549aa3fd85d83fc7c80ab2dbd4ed5a22ae446af6979bfbdd4a3c2d4e9fe6 AUX 4012_openwrt-b43-disable_qos_when_openfw.patch 721 RMD160 cd67c2425cd5b29f637781652a49a951a9ffda21 SHA1 382947ee332836c43c4eeb32eb8358b88e18fd22 SHA256 f03374faa0d41a5dca7e20079d7a7bd59aebd309b56aa6c7f7108b596d3f0da2 +AUX 4013-runtime-enable-disable-of-mac80211-packet-injection.patch 1490 RMD160 cf2b087a76a9a8839bc7113f048dd9d475151784 SHA1 7d0b8be0e119308efdaafc1ff97f5ee046b77005 SHA256 483ac63c753882d0e1f520101c437bd0594cbca8ecebeac2454b2f198c1f4959 AUX blinky.patch 357 RMD160 6c93e916efc56412f316076e836c1c5d98e58047 SHA1 e23568801309cdf2a01fa5be8cd3b9a3fcff5edd SHA256 1c2f0e18ecbcf2c07ba732671e77408326d2566d260f0252002c5698f9e65e30 AUX compat-chaos.patch 6187 RMD160 2b8477fbf8b8bde456c5c32a8146330232ae355f SHA1 7bd56bcb3c50eb6f22be7ec24b886ae70bf747cd SHA256 5e8c11b46bc8acf10a2ce8b934fec32662b57c003c99e5e0ca4717a8c6b19474 AUX failed_ath5k-frequency-chaos-2.6.28.patch 5787 RMD160 978b39113ebdc4ec1543bd4379d4428431524cb6 SHA1 a1b9268aedeb0d9035fd13214fe465145f1c5334 SHA256 8e9e0888e890a2970274a7ba9d40d75e01ebaedb0e16700d8994b9ecfe921185 @@ -33,4 +34,5 @@ EBUILD compat-wireless-2.6.32_rc5-r1.ebuild 1779 RMD160 c943d857694cddcb21c92ace EBUILD compat-wireless-2.6.32_rc5.ebuild 1742 RMD160 dc0e574a6fa4d34fad5dc08a308ba4e88a28d8f8 SHA1 d7e130851c8578aa17fb74c5c3b3234d62121a04 SHA256 6a313e003762690538692f1022e75858a630c9c01bfc399697a28f8ab3e3230a EBUILD compat-wireless-2.6.32_rc6.ebuild 1779 RMD160 c943d857694cddcb21c92ace853a5a06116b7a1e SHA1 8636e437ad0edd666a8b919e0da0443f998b7b64 SHA256 2c2668bf82abc183816662e80068d3e37a788c70b4fd0ff7eb450fcc239f240e EBUILD compat-wireless-2.6.32_rc7-r1.ebuild 1929 RMD160 42b7a5c62813aa6f1f0681b9246efd34f217717a SHA1 81882c26de50066c171d5d0b521d2669bb127504 SHA256 8baad26721e3033629e64afd144f5f430d4ad3d6db6bee810d4c68775ea275c3 +EBUILD compat-wireless-2.6.32_rc7-r2.ebuild 2073 RMD160 bc2f37c5686f91affda5a7021d168b61915e0b9d SHA1 8c2957a0d2160ec73343a8890a702a150dd529cd SHA256 614ae861f626f90a9fa85084fe280d9bb47cfe18aa6815b9daeb7b078a660737 EBUILD compat-wireless-2.6.32_rc7.ebuild 1804 RMD160 184e3e153488b5dbbefd92368035086a9e15825f SHA1 11626bb82f0b04485fefcef2efaae9ef9e62f017 SHA256 fb33ffed690e34491e2d7bf50a99d1aea334fac7e814ce2e3cf61644dab23130 diff --git a/net-wireless/compat-wireless/compat-wireless-2.6.32_rc7-r2.ebuild b/net-wireless/compat-wireless/compat-wireless-2.6.32_rc7-r2.ebuild new file mode 100644 index 000000000..03d6b1f7e --- /dev/null +++ b/net-wireless/compat-wireless/compat-wireless-2.6.32_rc7-r2.ebuild @@ -0,0 +1,70 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI="2" +inherit linux-mod linux-info + +##Stable +MY_P=${P/_rc/-rc} +DESCRIPTION="Stable kernel pre-release wifi subsystem backport" +HOMEPAGE="http://wireless.kernel.org/en/users/Download/stable" +SRC_URI="http://www.orbit-lab.org/kernel/${PN}-2.6-stable/v2.6.32/${MY_P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="+injection runtime-injection" + +DEPEND="" +RDEPEND="=sys-kernel/linux-firmware-99999999" + +S=${WORKDIR}/${MY_P} +RESTRICT="strip" + +CONFIG_CHECK="!DYNAMIC_FTRACE" + +pkg_setup() { + linux-mod_pkg_setup + kernel_is -lt 2 6 27 && die "kernel 2.6.27 or higher is required" + linux_chkconfig_module MAC80211 || die "CONFIG_MAC80211 must be built as a _module_ !" + linux_chkconfig_module CFG80211 || die "CONFIG_CFG80211 must be built as a _module_ !" +} + +src_prepare() { + #whynot patch is against the makefile to fix general brokeness + epatch "${FILESDIR}"/whynot-2.6.32.patch + + if use injection; then + epatch "${FILESDIR}"/400[24]_*.patch + epatch "${FILESDIR}"/mac80211.compat08082009.wl_frag+ack_v1.patch + if use runtime-injection; then + epatch "${FILESDIR}"/4013-runtime-enable-disable-of-mac80211-packet-injection.patch + fi + epatch "${FILESDIR}"/compat-chaos.patch; + fi +} + +src_compile() { + addpredict "${KERNEL_DIR}" + set_arch_to_kernel + emake KVER="${KV_FULL}" || die "emake failed" +} + +src_install() { + for file in $(find -name \*.ko); do + insinto "/lib/modules/${KV_FULL}/updates/$(dirname ${file})" + doins "${file}" || die "failed to install module ${file}" + done + dosbin scripts/athenable scripts/b43load scripts/iwl-enable \ + scripts/madwifi-unload scripts/athload scripts/iwl-load \ + scripts/modlib.sh scripts/b43enable scripts/load.sh \ + scripts/unload.sh || die "script installation failed" + dodoc README || die +} + +pkg_postinst() { + update_depmod + einfo 'You may have problem if you do not run "depmod -ae" after this installation' + einfo 'To switch to the new drivers without reboot run unload.sh then load.sh' +} diff --git a/net-wireless/compat-wireless/files/4013-runtime-enable-disable-of-mac80211-packet-injection.patch b/net-wireless/compat-wireless/files/4013-runtime-enable-disable-of-mac80211-packet-injection.patch new file mode 100644 index 000000000..07386590b --- /dev/null +++ b/net-wireless/compat-wireless/files/4013-runtime-enable-disable-of-mac80211-packet-injection.patch @@ -0,0 +1,37 @@ +--- net/mac80211/tx.c 2009-11-29 14:59:53.474095955 +0100 ++++ net/mac80211/tx.c 2009-11-29 15:03:06.436871431 +0100 +@@ -670,6 +670,10 @@ + return TX_CONTINUE; + } + ++static int ieee80211_injection_patch = 0; ++module_param(ieee80211_injection_patch, int, 0644); ++MODULE_PARM_DESC(ieee80211_injection_patch, "Enable packet injection patch"); ++ + static ieee80211_tx_result debug_noinline + ieee80211_tx_h_sequence(struct ieee80211_tx_data *tx) + { +@@ -686,14 +690,20 @@ + * excessive retries (ACKing and retrying should be + * handled by the injecting application). + * FIXME This may break hostapd and some other injectors. +- * This should be done using a radiotap flag. ++ * This should be done using a radiotap flag. For the time being, this ++ * may be enabled/disabled in ++ * /sys/module/mac80211/parameters/ieee80211_injection_patch + */ +- if (unlikely((info->flags & IEEE80211_TX_CTL_INJECTED) && +- !(tx->sdata->u.mntr_flags & MONITOR_FLAG_COOK_FRAMES))) { ++ if (unlikely(ieee80211_injection_patch && ++ (info->flags & IEEE80211_TX_CTL_INJECTED) && ++ !(tx->sdata->u.mntr_flags & MONITOR_FLAG_COOK_FRAMES))) { + if (!ieee80211_has_morefrags(hdr->frame_control)) + info->flags |= IEEE80211_TX_CTL_NO_ACK; + return TX_CONTINUE; + } ++ if (unlikely(!ieee80211_injection_patch && ++ info->control.vif->type == NL80211_IFTYPE_MONITOR)) ++ return TX_CONTINUE; + + if (unlikely(ieee80211_is_ctl(hdr->frame_control))) + return TX_CONTINUE; diff --git a/net-wireless/compat-wireless/metadata.xml b/net-wireless/compat-wireless/metadata.xml new file mode 100644 index 000000000..b519e1990 --- /dev/null +++ b/net-wireless/compat-wireless/metadata.xml @@ -0,0 +1,8 @@ + + + + +Add patches for better wifi injection support +Allow fragmentation support to be toggled at runtime + +