1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-10-01 12:00:42 +03:00

madwifi: add 0.9.4 madwifi as a menuconfig option, as requested in some mails/tickets

untested, does not work with 2.6.26


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@12047 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
nbd 2008-07-31 17:27:55 +00:00
parent 76c7f83e59
commit 0270f3b748
4 changed files with 86 additions and 24 deletions

View File

@ -5,13 +5,25 @@ config MADWIFI_DEBUG
depends on EXPERIMENTAL && PACKAGE_kmod-madwifi depends on EXPERIMENTAL && PACKAGE_kmod-madwifi
default n default n
config MADWIFI_TESTING choice
bool "Use the testing version of MadWiFi" prompt "Madwifi version"
depends on PACKAGE_kmod-madwifi depends on PACKAGE_kmod-madwifi
default n default MADWIFI_STABLE
help help
Use the testing version of MadWiFi, which is newer, but also less tested This option allows you to select the version of MadiWifi to be built.
May contain unexpected bugs :)
config MADWIFI_STABLE
bool "Use the OpenWrt stable version of madwifi"
config MADWIFI_TESTING
depends BROKEN
bool "Use the OpenWrt testing version of madwifi"
config MADWIFI_UPSTREAM
depends !LINUX_2_6_26
bool "Use the upstream release version 0.9.4"
endchoice
choice choice
prompt "Rate control algorithm selection" prompt "Rate control algorithm selection"

View File

@ -10,20 +10,34 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=madwifi PKG_NAME:=madwifi
PKG_REV:=$(if $(CONFIG_MADWIFI_TESTING),3776,3314)
PKG_VERSION:=r$(PKG_REV) ifneq ($(CONFIG_MADWIFI_UPSTREAM),)
PKG_VERSION:=0.9.4
PKG_RELEASE:=1
PKG_SOURCE:=madwifi-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://downloads.sourceforge.net/madwifi/
PKG_MD5SUM:=399d20de8d855a59f20058857c2178ad
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/madwifi-$(PKG_VERSION)
PATCH_DIR=./patches-upstream
else
# PKG_BRANCH:=madwifi-dfs # PKG_BRANCH:=madwifi-dfs
PKG_RELEASE:=1 PKG_REV:=$(if $(CONFIG_MADWIFI_TESTING),3776,3314)
PKG_VERSION:=r$(PKG_REV)
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=svn PKG_SOURCE_PROTO:=svn
PKG_SOURCE_VERSION:=$(PKG_REV) PKG_SOURCE_VERSION:=$(PKG_REV)
PKG_SOURCE_SUBDIR:=$(if $(PKG_BRANCH),$(PKG_BRANCH),madwifi-trunk)-$(PKG_VERSION) PKG_SOURCE_SUBDIR:=$(if $(PKG_BRANCH),$(PKG_BRANCH),madwifi-trunk)-$(PKG_VERSION)
PKG_SOURCE_URL:=http://svn.madwifi.org/madwifi/$(if $(PKG_BRANCH),branches/$(PKG_BRANCH),trunk) PKG_SOURCE_URL:=http://svn.madwifi.org/madwifi/$(if $(PKG_BRANCH),branches/$(PKG_BRANCH),trunk)
PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(if $(PKG_BRANCH),$(PKG_BRANCH),madwifi-trunk)-$(PKG_VERSION) PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(if $(PKG_BRANCH),$(PKG_BRANCH),madwifi-trunk)-$(PKG_VERSION)
PATCH_DIR=$(if $(CONFIG_MADWIFI_TESTING),./patches-testing,./patches) PATCH_DIR=$(if $(CONFIG_MADWIFI_TESTING),./patches-testing,./patches)
endif
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
@ -120,11 +134,13 @@ ifeq ($(findstring PCI,$(BUS)),PCI)
MADWIFI_AUTOLOAD+= ath_pci MADWIFI_AUTOLOAD+= ath_pci
endif endif
MADWIFI_APPLETS:=80211stats,athchans,athctrl,athkey,athstats,wlanconfig,$(if $(CONFIG_MADWIFI_TESTING),ath_info/)ath_info MADWIFI_APPLETS:=80211stats athchans athctrl athkey athstats wlanconfig $(if $(CONFIG_MADWIFI_TESTING),ath_info/)ath_info
ifdef CONFIG_MADWIFI_DEBUG ifdef CONFIG_MADWIFI_DEBUG
MADWIFI_APPLETS:=$(strip $(MADWIFI_APPLETS)),athdebug,80211debug MADWIFI_APPLETS += athdebug 80211debug
endif
ifndef CONFIG_MADWIFI_UPSTREAM
MADWIFI_APPLETS += madwifi_multi
endif endif
define KernelPackage/madwifi define KernelPackage/madwifi
SUBMENU:=Wireless Drivers SUBMENU:=Wireless Drivers
@ -164,15 +180,23 @@ endif
MAKE_VARS:= \ MAKE_VARS:= \
COPTS="-DCONFIG_ATHEROS_RATE_DEFAULT='\"$(RATE_CONTROL)\"' -DATH_REVERSE_ENGINEERING=1" \ COPTS="-DCONFIG_ATHEROS_RATE_DEFAULT='\"$(RATE_CONTROL)\"' -DATH_REVERSE_ENGINEERING=1" \
HALFILE:=$(lastword $(sort $(wildcard ./ath_hal-*.tgz))) ifeq ($(CONFIG_MADWIFI_UPSTREAM),)
HALFILE:=$(lastword $(sort $(wildcard ./ath_hal-*.tgz)))
endif
ifneq ($(HALFILE),) ifneq ($(HALFILE),)
define Build/Prepare define Build/Prepare/HAL
$(call Build/Prepare/Default)
rm -rf $(PKG_BUILD_DIR)/tmp rm -rf $(PKG_BUILD_DIR)/tmp
mkdir -p $(PKG_BUILD_DIR)/tmp mkdir -p $(PKG_BUILD_DIR)/tmp
tar xvzf $(HALFILE) -C $(PKG_BUILD_DIR)/tmp tar xvzf $(HALFILE) -C $(PKG_BUILD_DIR)/tmp
$(CP) $(PKG_BUILD_DIR)/tmp/ath_hal*/* $(PKG_BUILD_DIR)/hal/ $(CP) $(PKG_BUILD_DIR)/tmp/ath_hal*/* $(PKG_BUILD_DIR)/hal/
rm -rf $(PKG_BUILD_DIR)/tmp rm -rf $(PKG_BUILD_DIR)/tmp
endef
endif
define Build/Prepare
$(call Build/Prepare/Default)
$(call Build/Prepare/HAL)
# patch cflags # patch cflags
$(SED) 's, -E[LB],,' \ $(SED) 's, -E[LB],,' \
-e 's, -mips2,,' \ -e 's, -mips2,,' \
@ -180,8 +204,7 @@ ifneq ($(HALFILE),)
$(PKG_BUILD_DIR)/hal/public/*.inc $(PKG_BUILD_DIR)/hal/public/*.inc
$(SED) 's,march=armv4,march=armv5te,' \ $(SED) 's,march=armv4,march=armv5te,' \
$(PKG_BUILD_DIR)/hal/public/xscale*.inc $(PKG_BUILD_DIR)/hal/public/xscale*.inc
endef endef
endif
ifeq ($(findstring AHB,$(BUS)),AHB) ifeq ($(findstring AHB,$(BUS)),AHB)
define Build/Compile/ahb define Build/Compile/ahb
@ -216,7 +239,7 @@ endef
define KernelPackage/madwifi/install define KernelPackage/madwifi/install
$(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_DIR) $(1)/usr/sbin
$(CP) ./files/* $(1)/ $(CP) ./files/* $(1)/
$(CP) $(PKG_BUILD_DIR)/tools/{madwifi_multi,$(MADWIFI_APPLETS)} $(1)/usr/sbin/ $(CP) $(foreach applet,$(MADWIFI_APPLETS),$(PKG_BUILD_DIR)/tools/$(applet)) $(1)/usr/sbin/
endef endef
$(eval $(call KernelPackage,madwifi)) $(eval $(call KernelPackage,madwifi))

View File

@ -0,0 +1,13 @@
Index: madwifi-0.9.4/ath/if_ath.c
===================================================================
--- madwifi-0.9.4.old/ath/if_ath.c 2008-02-13 06:13:10.000000000 +0100
+++ madwifi-0.9.4/ath/if_ath.c 2008-05-06 10:25:15.000000000 +0200
@@ -404,7 +404,7 @@
struct ath_hal *ah;
HAL_STATUS status;
int error = 0, i;
- int autocreatemode = IEEE80211_M_STA;
+ int autocreatemode = -1;
u_int8_t csz;
sc->devid = devid;

View File

@ -0,0 +1,14 @@
Index: madwifi-0.9.4/ath_rate/minstrel/minstrel.c
===================================================================
--- madwifi-0.9.4.old/ath_rate/minstrel/minstrel.c 2007-12-12 05:11:07.000000000 +0100
+++ madwifi-0.9.4/ath_rate/minstrel/minstrel.c 2008-07-24 15:15:41.000000000 +0200
@@ -394,6 +394,9 @@
int rc1, rc2, rc3; /* Index into the rate table, so for example, it is 0..11 */
int rixc1, rixc2, rixc3; /* The actual bit rate used */
+ if (sn->num_rates <= 0)
+ return;
+
if (sn->is_sampling) {
sn->is_sampling = 0;
if (sn->rs_sample_rate_slower)