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,68 +26,11 @@ define Build/Prepare mkdir -p $(PKG_BUILD_DIR) endef +define Build/Configure +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 -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 ./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 similarity index 89% rename from package/madwifi/patches/104-apmode_by_default.patch rename to 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;