summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-10-17 16:13:10 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-10-17 16:13:10 +0000
commitb7b4cc7ec32a51be920d1d224ba5914ec236c58f (patch)
tree3c4d928b9af8a53056dea57a2fbceab1b4c8a4d4
parent105637591137a75d2a50b908e8554a977f4c4a17 (diff)
make kernel module packaging code reusable and use it in madwifi
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@5189 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--include/kernel.mk63
-rw-r--r--package/kernel/Makefile61
-rw-r--r--package/madwifi/Makefile65
-rw-r--r--package/madwifi/files/madwifi.modules10
-rw-r--r--package/madwifi/patches/104-autocreate_none.patch (renamed from package/madwifi/patches/104-apmode_by_default.patch)2
5 files changed, 103 insertions, 98 deletions
diff --git a/include/kernel.mk b/include/kernel.mk
index 580e3951d1..9273817250 100644
--- a/include/kernel.mk
+++ b/include/kernel.mk
@@ -59,6 +59,69 @@ else
LINUX_KERNEL:=$(KERNEL_BUILD_DIR)/vmlinux
endif
+
+define KernelPackage/Defaults
+ FILES:=
+ KCONFIG:=m
+ AUTOLOAD:=
+endef
+
+define ModuleAutoLoad
+ export modules=; \
+ add_module() { \
+ mkdir -p $(2)/etc/modules.d; \
+ echo "$$$$$$$$2" > $(2)/etc/modules.d/$$$$$$$$1-$(1); \
+ modules="$$$$$$$${modules:+$$$$$$$$modules }$$$$$$$$1-$(1)"; \
+ }; \
+ $(3) \
+ if [ -n "$$$$$$$$modules" ]; then \
+ mkdir -p $(2)/etc/modules.d; \
+ echo "#!/bin/sh" > $(2)/CONTROL/postinst; \
+ echo "[ -z \"\$$$$$$$$IPKG_INSTROOT\" ] || exit 0" >> $(2)/CONTROL/postinst; \
+ echo ". /etc/functions.sh" >> $(2)/CONTROL/postinst; \
+ echo "load_modules $$$$$$$$modules" >> $(2)/CONTROL/postinst; \
+ chmod 0755 $(2)/CONTROL/postinst; \
+ fi
+endef
+
+
+define KernelPackage
+ NAME:=$(1)
+ $(eval $(call KernelPackage/Defaults))
+ $(eval $(call KernelPackage/$(1)))
+ $(eval $(call KernelPackage/$(1)/$(KERNEL)))
+ $(eval $(call KernelPackage/$(1)/$(BOARD)-$(KERNEL)))
+
+ define Package/kmod-$(1)
+ TITLE:=$(TITLE)
+ SECTION:=kernel
+ CATEGORY:=Kernel modules
+ DEFAULT:=m
+ DESCRIPTION:=$(DESCRIPTION)
+ EXTRA_DEPENDS:='kernel (=$(PKG_VERSION)-$(PKG_RELEASE))'
+ $(call KernelPackage/$(1))
+ $(call KernelPackage/$(1)/$(KERNEL))
+ $(call KernelPackage/$(1)/$(BOARD)-$(KERNEL))
+ endef
+
+ ifeq ($(findstring m,$(KCONFIG)),m)
+ ifneq ($(strip $(FILES)),)
+ define Package/kmod-$(1)/install
+ mkdir -p $$(1)/lib/modules/$(LINUX_VERSION)
+ $(CP) $$(FILES) $$(1)/lib/modules/$(LINUX_VERSION)/
+ $(call ModuleAutoLoad,$(1),$$(1),$(AUTOLOAD))
+ $(call KernelPackage/$(1)/install,$$(1))
+ endef
+ endif
+ endif
+ $$(eval $$(call BuildPackage,kmod-$(1)))
+endef
+
+define AutoLoad
+ add_module $(1) "$(2)";
+endef
+
+
# FIXME: remove this crap
define KMOD_template
ifeq ($$(strip $(4)),)
diff --git a/package/kernel/Makefile b/package/kernel/Makefile
index f755bed96f..37cb13e167 100644
--- a/package/kernel/Makefile
+++ b/package/kernel/Makefile
@@ -26,67 +26,10 @@ define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
endef
-define Build/Compile
-endef
-
-define KernelPackage/Defaults
- FILES:=
- KCONFIG:=m
- AUTOLOAD:=
-endef
-
-define ModuleAutoLoad
- export modules=; \
- add_module() { \
- mkdir -p $(2)/etc/modules.d; \
- echo "$$$$$$$$2" > $(2)/etc/modules.d/$$$$$$$$1-$(1); \
- modules="$$$$$$$${modules:+$$$$$$$$modules }$$$$$$$$1-$(1)"; \
- }; \
- $(3) \
- if [ -n "$$$$$$$$modules" ]; then \
- mkdir -p $(2)/etc/modules.d; \
- echo "#!/bin/sh" > $(2)/CONTROL/postinst; \
- echo "[ -z \"\$$$$$$$$IPKG_INSTROOT\" ] || exit 0" >> $(2)/CONTROL/postinst; \
- echo ". /etc/functions.sh" >> $(2)/CONTROL/postinst; \
- echo "load_modules $$$$$$$$modules" >> $(2)/CONTROL/postinst; \
- chmod 0755 $(2)/CONTROL/postinst; \
- fi
+define Build/Configure
endef
-
-define KernelPackage
- NAME:=$(1)
- $(eval $(call KernelPackage/Defaults))
- $(eval $(call KernelPackage/$(1)))
- $(eval $(call KernelPackage/$(1)/$(KERNEL)))
- $(eval $(call KernelPackage/$(1)/$(BOARD)-$(KERNEL)))
-
- define Package/kmod-$(1)
- TITLE:=$(TITLE)
- SECTION:=kernel
- CATEGORY:=Kernel modules
- DEFAULT:=m
- DESCRIPTION:=$(DESCRIPTION)
- EXTRA_DEPENDS:='kernel (=$(PKG_VERSION)-$(PKG_RELEASE))'
- $(call KernelPackage/$(1))
- $(call KernelPackage/$(1)/$(KERNEL))
- $(call KernelPackage/$(1)/$(BOARD)-$(KERNEL))
- endef
-
- ifeq ($(findstring m,$(KCONFIG)),m)
- ifneq ($(strip $(FILES)),)
- define Package/kmod-$(1)/install
- mkdir -p $$(1)/lib/modules/$(LINUX_VERSION)
- $(CP) $$(FILES) $$(1)/lib/modules/$(LINUX_VERSION)/
- $(call ModuleAutoLoad,$(1),$$(1),$(AUTOLOAD))
- endef
- endif
- endif
- $$(eval $$(call BuildPackage,kmod-$(1)))
-endef
-
-define AutoLoad
- add_module $(1) "$(2)";
+define Build/Compile
endef
include $(TOPDIR)/target/linux/*/modules.mk
diff --git a/package/madwifi/Makefile b/package/madwifi/Makefile
index a91126d862..ca81ee37d1 100644
--- a/package/madwifi/Makefile
+++ b/package/madwifi/Makefile
@@ -22,17 +22,6 @@ PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk
-define Package/kmod-madwifi
- SECTION:=kernel
- CATEGORY:=Kernel drivers
- DEFAULT:=y if LINUX_2_6_BRCM || LINUX_2_6_ARUBA || LINUX_2_4_AR531X || LINUX_2_6_XSCALE, m if ALL
- TITLE:=Driver for Atheros wireless chipsets
- DESCRIPTION:=\
- This package contains a driver for Atheros 802.11a/b/g chipsets.
- URL:=http://madwifi.org/
- VERSION:=$(LINUX_VERSION)+$(PKG_VERSION)-$(BOARD)-$(PKG_RELEASE)
-endef
-
RATE_CONTROL:=sample
ifeq ($(ARCH),mips)
@@ -67,6 +56,41 @@ ifeq ($(findstring PCI,$(BUS)),PCI)
BUS_MODULES+=$(PKG_BUILD_DIR)/ath/ath_pci.$(LINUX_KMOD_SUFFIX)
endif
+MADWIFI_AUTOLOAD:= \
+ wlan \
+ wlan_scan_ap \
+ wlan_scan_sta \
+ ath_hal \
+ ath_rate_$(RATE_CONTROL) \
+ wlan_acl \
+ wlan_ccmp \
+ wlan_tkip \
+ wlan_wep \
+ wlan_xauth
+
+ifeq ($(findstring AHB,$(BUS)),AHB)
+ MADWIFI_AUTOLOAD += ath_ahb
+endif
+ifeq ($(findstring PCI,$(BUS)),PCI)
+ MADWIFI_AUTOLOAD += ath_pci
+endif
+
+define KernelPackage/madwifi
+ SUBMENU:=Network Devices
+ DEFAULT:=y if LINUX_2_6_BRCM || LINUX_2_6_ARUBA || LINUX_2_4_AR531X || LINUX_2_6_XSCALE, m if ALL
+ TITLE:=Driver for Atheros wireless chipsets
+ DESCRIPTION:=\
+ This package contains a driver for Atheros 802.11a/b/g chipsets.
+ URL:=http://madwifi.org/
+ VERSION:=$(LINUX_VERSION)+$(PKG_VERSION)-$(BOARD)-$(PKG_RELEASE)
+ FILES:= \
+ $(PKG_BUILD_DIR)/ath/ath_hal.$(LINUX_KMOD_SUFFIX) \
+ $(BUS_MODULES) \
+ $(PKG_BUILD_DIR)/ath_rate/$(RATE_CONTROL)/ath_rate_$(RATE_CONTROL).$(LINUX_KMOD_SUFFIX) \
+ $(PKG_BUILD_DIR)/net80211/wlan*.$(LINUX_KMOD_SUFFIX)
+ AUTOLOAD:=$(call AutoLoad,50,$(MADWIFI_AUTOLOAD))
+endef
+
MADWIFI_MAKEOPTS= -C $(PKG_BUILD_DIR) \
PATH="$(TARGET_PATH)" \
ARCH="$(LINUX_KARCH)" \
@@ -107,27 +131,12 @@ define Build/UninstallDev
rm -rf $(STAGING_DIR)/usr/include/madwifi
endef
-define Package/kmod-madwifi/install
- mkdir -p $(1)/etc/modules.d
+define KernelPackage/madwifi/install
mkdir -p $(1)/etc/init.d
mkdir -p $(1)/lib/modules/$(LINUX_VERSION)
mkdir -p $(1)/usr/sbin
- install -m0644 ./files/madwifi.modules $(1)/etc/modules.d/20-madwifi
- echo ath_rate_$(RATE_CONTROL) >> $(1)/etc/modules.d/20-madwifi
-ifeq ($(findstring AHB,$(BUS)),AHB)
- echo ath_ahb >> $(1)/etc/modules.d/20-madwifi
-endif
-ifeq ($(findstring PCI,$(BUS)),PCI)
- echo "ath_pci autocreate=none" >> $(1)/etc/modules.d/20-madwifi
-endif
install -m0755 ./files/madwifi.init $(1)/etc/init.d/madwifi
- $(CP) \
- $(PKG_BUILD_DIR)/ath/ath_hal.$(LINUX_KMOD_SUFFIX) \
- $(BUS_MODULES) \
- $(PKG_BUILD_DIR)/ath_rate/$(RATE_CONTROL)/ath_rate_$(RATE_CONTROL).$(LINUX_KMOD_SUFFIX) \
- $(PKG_BUILD_DIR)/net80211/wlan*.$(LINUX_KMOD_SUFFIX) \
- $(1)/lib/modules/$(LINUX_VERSION)/
$(CP) $(PKG_BUILD_DIR)/tools/{madwifi_multi,80211debug,80211stats,athchans,athctrl,athdebug,athkey,athstats,wlanconfig} $(1)/usr/sbin/
endef
-$(eval $(call BuildPackage,kmod-madwifi))
+$(eval $(call KernelPackage,madwifi))
diff --git a/package/madwifi/files/madwifi.modules b/package/madwifi/files/madwifi.modules
deleted file mode 100644
index 515c1e9aa1..0000000000
--- a/package/madwifi/files/madwifi.modules
+++ /dev/null
@@ -1,10 +0,0 @@
-wlan
-wlan_scan_ap
-wlan_scan_sta
-ath_hal
-ath_rate_sample
-wlan_acl
-wlan_ccmp
-wlan_tkip
-wlan_wep
-wlan_xauth
diff --git a/package/madwifi/patches/104-apmode_by_default.patch b/package/madwifi/patches/104-autocreate_none.patch
index fc5cb978b0..d520b133c1 100644
--- a/package/madwifi/patches/104-apmode_by_default.patch
+++ b/package/madwifi/patches/104-autocreate_none.patch
@@ -6,7 +6,7 @@ diff -urN madwifi-0.9.2.old/ath/if_ath.c madwifi-0.9.2.dev/ath/if_ath.c
HAL_STATUS status;
int error = 0, i;
- int autocreatemode = IEEE80211_M_STA;
-+ int autocreatemode = IEEE80211_M_HOSTAP;
++ int autocreatemode = -1;
u_int8_t csz;
sc->devid = devid;