make kernel module packaging code reusable and use it in madwifi
SVN-Revision: 5189
This commit is contained in:
		| @@ -59,6 +59,69 @@ else | |||||||
|   LINUX_KERNEL:=$(KERNEL_BUILD_DIR)/vmlinux |   LINUX_KERNEL:=$(KERNEL_BUILD_DIR)/vmlinux | ||||||
| endif | 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 | # FIXME: remove this crap | ||||||
| define KMOD_template | define KMOD_template | ||||||
| ifeq ($$(strip $(4)),) | ifeq ($$(strip $(4)),) | ||||||
|   | |||||||
| @@ -26,68 +26,11 @@ define Build/Prepare | |||||||
| 	mkdir -p $(PKG_BUILD_DIR) | 	mkdir -p $(PKG_BUILD_DIR) | ||||||
| endef | endef | ||||||
|  |  | ||||||
|  | define Build/Configure | ||||||
|  | endef | ||||||
|  |  | ||||||
| define Build/Compile | define Build/Compile | ||||||
| endef | 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 |  | ||||||
| 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)"; |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| include $(TOPDIR)/target/linux/*/modules.mk | include $(TOPDIR)/target/linux/*/modules.mk | ||||||
| include ./modules/*.mk | include ./modules/*.mk | ||||||
|   | |||||||
| @@ -22,17 +22,6 @@ PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) | |||||||
|  |  | ||||||
| include $(INCLUDE_DIR)/package.mk | 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 | RATE_CONTROL:=sample | ||||||
|  |  | ||||||
| ifeq ($(ARCH),mips) | ifeq ($(ARCH),mips) | ||||||
| @@ -67,6 +56,41 @@ ifeq ($(findstring PCI,$(BUS)),PCI) | |||||||
|   BUS_MODULES+=$(PKG_BUILD_DIR)/ath/ath_pci.$(LINUX_KMOD_SUFFIX) |   BUS_MODULES+=$(PKG_BUILD_DIR)/ath/ath_pci.$(LINUX_KMOD_SUFFIX) | ||||||
| endif | 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) \ | MADWIFI_MAKEOPTS= -C $(PKG_BUILD_DIR) \ | ||||||
| 		PATH="$(TARGET_PATH)" \ | 		PATH="$(TARGET_PATH)" \ | ||||||
| 		ARCH="$(LINUX_KARCH)" \ | 		ARCH="$(LINUX_KARCH)" \ | ||||||
| @@ -107,27 +131,12 @@ define Build/UninstallDev | |||||||
| 	rm -rf	$(STAGING_DIR)/usr/include/madwifi | 	rm -rf	$(STAGING_DIR)/usr/include/madwifi | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define Package/kmod-madwifi/install | define KernelPackage/madwifi/install | ||||||
| 	mkdir -p $(1)/etc/modules.d |  | ||||||
| 	mkdir -p $(1)/etc/init.d | 	mkdir -p $(1)/etc/init.d | ||||||
| 	mkdir -p $(1)/lib/modules/$(LINUX_VERSION) | 	mkdir -p $(1)/lib/modules/$(LINUX_VERSION) | ||||||
| 	mkdir -p $(1)/usr/sbin | 	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 | 	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/ | 	$(CP) $(PKG_BUILD_DIR)/tools/{madwifi_multi,80211debug,80211stats,athchans,athctrl,athdebug,athkey,athstats,wlanconfig} $(1)/usr/sbin/ | ||||||
| endef | endef | ||||||
|  |  | ||||||
| $(eval $(call BuildPackage,kmod-madwifi)) | $(eval $(call KernelPackage,madwifi)) | ||||||
|   | |||||||
| @@ -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 |  | ||||||
| @@ -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; |  	HAL_STATUS status; | ||||||
|  	int error = 0, i; |  	int error = 0, i; | ||||||
| -	int autocreatemode = IEEE80211_M_STA;
 | -	int autocreatemode = IEEE80211_M_STA;
 | ||||||
| +	int autocreatemode = IEEE80211_M_HOSTAP;
 | +	int autocreatemode = -1;
 | ||||||
|  	u_int8_t csz; |  	u_int8_t csz; | ||||||
|   |   | ||||||
|  	sc->devid = devid; |  	sc->devid = devid; | ||||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau