2 # Copyright (C) 2007-2015 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 include $(TOPDIR)/rules.mk
9 include $(INCLUDE_DIR)/kernel.mk
13 PKG_VERSION:=4.19.66-1
15 PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v4.19.66/
16 PKG_HASH:=1f3c6a58cb45b247f6e473d1b52236bfbb41cb3e11e38a74526727e911b51a02
18 PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz
19 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION)
22 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
30 PKG_CONFIG_DEPENDS:= \
31 CONFIG_PACKAGE_kmod-mac80211 \
32 CONFIG_PACKAGE_MAC80211_DEBUGFS \
33 CONFIG_PACKAGE_MAC80211_MESH \
34 CONFIG_PACKAGE_MAC80211_TRACING \
35 CONFIG_PACKAGE_IWLWIFI_DEBUG \
36 CONFIG_PACKAGE_IWLWIFI_DEBUGFS \
37 CONFIG_PACKAGE_RTLWIFI_DEBUG \
39 include $(INCLUDE_DIR)/package.mk
41 WMENU:=Wireless Drivers
43 define KernelPackage/mac80211/Default
45 URL:=https://wireless.wiki.kernel.org/
46 MAINTAINER:=Felix Fietkau <nbd@nbd.name>
49 config_package=$(if $(CONFIG_PACKAGE_kmod-$(1)),m)
55 CFG80211_CERTIFICATION_ONUS \
56 MAC80211_RC_MINSTREL \
57 MAC80211_RC_MINSTREL_HT \
58 MAC80211_RC_MINSTREL_VHT \
59 MAC80211_RC_DEFAULT_MINSTREL \
63 WLAN_VENDOR_BROADCOM \
66 WLAN_VENDOR_INTERSIL \
68 WLAN_VENDOR_MEDIATEK \
76 config-$(call config_package,cfg80211) += CFG80211
78 config-$(call config_package,mac80211) += MAC80211
79 config-$(CONFIG_PACKAGE_MAC80211_MESH) += MAC80211_MESH
83 PKG_CONFIG_DEPENDS += \
84 $(patsubst %,CONFIG_PACKAGE_kmod-%,$(PKG_DRIVERS))
86 define KernelPackage/cfg80211
87 $(call KernelPackage/mac80211/Default)
88 TITLE:=cfg80211 - wireless configuration API
89 DEPENDS+= +iw +wireless-regdb
90 ABI_VERSION:=$(PKG_VERSION)-$(PKG_RELEASE)
92 $(PKG_BUILD_DIR)/compat/compat.ko \
93 $(PKG_BUILD_DIR)/net/wireless/cfg80211.ko
96 define KernelPackage/cfg80211/description
97 cfg80211 is the Linux wireless LAN (802.11) configuration API.
100 define KernelPackage/mac80211
101 $(call KernelPackage/mac80211/Default)
102 TITLE:=Linux 802.11 Wireless Networking Stack
103 # +kmod-crypto-cmac is a runtime only dependency of net/mac80211/aes_cmac.c
104 DEPENDS+= +kmod-cfg80211 +hostapd-common
107 FILES:= $(PKG_BUILD_DIR)/net/mac80211/mac80211.ko
108 ABI_VERSION:=$(PKG_VERSION)-$(PKG_RELEASE)
112 define KernelPackage/mac80211/config
113 if PACKAGE_kmod-mac80211
115 config PACKAGE_MAC80211_DEBUGFS
116 bool "Export mac80211 internals in DebugFS"
117 select KERNEL_DEBUG_FS
120 Select this to see extensive information about
121 the internal state of mac80211 in debugfs.
123 config PACKAGE_MAC80211_TRACING
124 bool "Enable tracing (mac80211 and supported drivers)"
126 select KERNEL_ENABLE_DEFAULT_TRACERS
129 Select this to enable tracing of mac80211 and
130 related wifi drivers (using trace-cmd).
132 config PACKAGE_MAC80211_MESH
133 bool "Enable 802.11s mesh support"
139 define KernelPackage/mac80211/description
140 Generic IEEE 802.11 Networking Stack (mac80211)
143 define KernelPackage/adm8211
144 $(call KernelPackage/mac80211/Default)
145 TITLE:=ADMTek 8211 support
146 DEPENDS+=@PCI_SUPPORT +kmod-mac80211 +kmod-eeprom-93cx6
147 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/admtek/adm8211.ko
148 AUTOLOAD:=$(call AutoProbe,adm8211)
162 define KernelPackage/lib80211
163 $(call KernelPackage/mac80211/Default)
164 TITLE:=802.11 Networking stack
165 DEPENDS:=+kmod-cfg80211 +kmod-crypto-hash
167 $(PKG_BUILD_DIR)/net/wireless/lib80211.ko \
168 $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_wep.ko \
169 $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_ccmp.ko \
170 $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_tkip.ko
171 AUTOLOAD:=$(call AutoProbe, \
174 lib80211_crypt_ccmp \
175 lib80211_crypt_tkip \
179 define KernelPackage/lib80211/description
180 Kernel modules for 802.11 Networking stack
184 - lib80211_crypt_tkip
185 - lib80211_crytp_ccmp
189 define KernelPackage/mac80211-hwsim
190 $(call KernelPackage/mac80211/Default)
191 TITLE:=mac80211 HW simulation device
192 DEPENDS+= +kmod-mac80211 +@DRIVER_11AC_SUPPORT +@DRIVER_11N_SUPPORT +@DRIVER_11W_SUPPORT
193 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mac80211_hwsim.ko
194 AUTOLOAD:=$(call AutoProbe,mac80211_hwsim)
217 ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS
223 ifdef CONFIG_PACKAGE_MAC80211_TRACING
225 IWLWIFI_DEVICE_TRACING
228 config-$(call config_package,lib80211) += LIB80211 LIB80211_CRYPT_WEP LIB80211_CRYPT_CCMP LIB80211_CRYPT_TKIP
231 config-$(call config_package,mac80211-hwsim) += MAC80211_HWSIM
235 config-$(call config_package,adm8211) += ADM8211
236 config-$(call config_package,rsi91x) += RSI_91X
237 config-$(call config_package,rsi91x-usb) += RSI_USB
238 config-$(call config_package,rsi91x-sdio) += RSI_SDIO
240 config-$(CONFIG_LEDS_TRIGGERS) += MAC80211_LEDS
242 MAKE_OPTS:= -C "$(PKG_BUILD_DIR)" \
243 $(KERNEL_MAKE_FLAGS) \
244 EXTRA_CFLAGS="-I$(PKG_BUILD_DIR)/include $(IREMAP_CFLAGS)" \
245 KLIB_BUILD="$(LINUX_DIR)" \
247 KLIB=$(TARGET_MODULES_DIR) \
248 KERNEL_SUBLEVEL=$(lastword $(subst ., ,$(KERNEL_PATCHVER))) \
249 KBUILD_LDFLAGS_MODULE_PREREQ=
252 $(subst $(space),,$(foreach opt,$(config-$(1)),CPTCFG_$(opt)=$(1)
256 define mac80211_config
257 $(call ConfigVars,m)$(call ConfigVars,y)
259 $(eval $(call shexport,mac80211_config))
262 rm -rf $(PKG_BUILD_DIR)
263 mkdir -p $(PKG_BUILD_DIR)
267 $(PKG_BUILD_DIR)/include/linux/ssb \
268 $(PKG_BUILD_DIR)/include/linux/bcma \
269 $(PKG_BUILD_DIR)/include/net/bluetooth
272 $(PKG_BUILD_DIR)/include/linux/cordic.h \
273 $(PKG_BUILD_DIR)/include/linux/crc8.h \
274 $(PKG_BUILD_DIR)/include/linux/eeprom_93cx6.h \
275 $(PKG_BUILD_DIR)/include/linux/wl12xx.h \
276 $(PKG_BUILD_DIR)/include/linux/spi/libertas_spi.h \
277 $(PKG_BUILD_DIR)/include/net/ieee80211.h \
278 $(PKG_BUILD_DIR)/backport-include/linux/bcm47xx_nvram.h
280 echo 'compat-wireless-$(PKG_VERSION)-$(PKG_RELEASE)-$(REVISION)' > $(PKG_BUILD_DIR)/compat_version
283 ifneq ($(CONFIG_PACKAGE_kmod-cfg80211)$(CONFIG_PACKAGE_kmod-lib80211),)
284 define Build/Compile/kmod
285 rm -rf $(PKG_BUILD_DIR)/modules
286 +$(MAKE) $(PKG_JOBS) $(MAKE_OPTS) modules
290 #do not Build/Configure for EXTERNAL KERNEL
291 ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE)),"")
292 ifeq ($(strip $(CONFIG_KERNEL_GIT_CLONE_URI)),"")
293 define Build/Configure
294 cmp $(PKG_BUILD_DIR)/include/linux/ath9k_platform.h $(LINUX_DIR)/include/linux/ath9k_platform.h
295 cmp $(PKG_BUILD_DIR)/include/linux/ath5k_platform.h $(LINUX_DIR)/include/linux/ath5k_platform.h
296 cmp $(PKG_BUILD_DIR)/include/linux/rt2x00_platform.h $(LINUX_DIR)/include/linux/rt2x00_platform.h
302 $(if $(QUILT),rm -rf $(PKG_BUILD_DIR)/patches; mkdir -p $(PKG_BUILD_DIR)/patches)
303 $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/build,build/)
304 $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/subsys,subsys/)
305 $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath,ath/)
306 $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/)
307 $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
308 $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/)
309 $(if $(QUILT),touch $(PKG_BUILD_DIR)/.quilt_used)
312 define Quilt/Refresh/Package
313 $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/build,build/)
314 $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/subsys,subsys/)
315 $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath,ath/)
316 $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/)
317 $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
318 $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/)
322 $(SH_FUNC) var2file "$(call shvar,mac80211_config)" $(PKG_BUILD_DIR)/.config
323 $(MAKE) $(MAKE_OPTS) allnoconfig
324 $(call Build/Compile/kmod)
327 define Build/InstallDev
329 $(1)/usr/include/mac80211 \
330 $(1)/usr/include/mac80211-backport \
331 $(1)/usr/include/mac80211/ath \
332 $(1)/usr/include/net/mac80211
333 $(CP) $(PKG_BUILD_DIR)/net/mac80211/*.h $(PKG_BUILD_DIR)/include/* $(1)/usr/include/mac80211/
334 $(CP) $(PKG_BUILD_DIR)/backport-include/* $(1)/usr/include/mac80211-backport/
335 $(CP) $(PKG_BUILD_DIR)/net/mac80211/rate.h $(1)/usr/include/net/mac80211/
336 $(CP) $(PKG_BUILD_DIR)/drivers/net/wireless/ath/*.h $(1)/usr/include/mac80211/ath/
337 rm -f $(1)/usr/include/mac80211-backport/linux/module.h
342 define KernelPackage/cfg80211/install
343 $(INSTALL_DIR) $(1)/lib/wifi $(1)/lib/netifd/wireless
344 $(INSTALL_DATA) ./files/lib/wifi/mac80211.sh $(1)/lib/wifi
345 $(INSTALL_BIN) ./files/lib/netifd/wireless/mac80211.sh $(1)/lib/netifd/wireless
346 $(INSTALL_DIR) $(1)/etc/hotplug.d/ieee80211
347 $(INSTALL_DATA) ./files/mac80211.hotplug $(1)/etc/hotplug.d/ieee80211/10-wifi-detect
351 $(eval $(foreach drv,$(PKG_DRIVERS),$(call KernelPackage,$(drv))))
352 $(eval $(call KernelPackage,cfg80211))
353 $(eval $(call KernelPackage,mac80211))