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:=2017-01-31
15 PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
16 PKG_BACKPORT_VERSION:=
17 PKG_HASH:=75e6d39e34cf156212a2509172a4a62b673b69eb4a1d9aaa565f7fa719fa2317
19 PKG_SOURCE:=compat-wireless-$(PKG_VERSION)$(PKG_BACKPORT_VERSION).tar.xz
20 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/compat-wireless-$(PKG_VERSION)
23 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
26 ath ath5k ath9k ath9k-common ath9k-htc \
31 rt2800-lib rt2800-mmio rt2800-soc \
33 PKG_CONFIG_DEPENDS:= \
34 CONFIG_PACKAGE_kmod-mac80211 \
35 $(patsubst %,CONFIG_PACKAGE_kmod-%,$(PKG_DRIVERS)) \
36 CONFIG_PACKAGE_MAC80211_DEBUGFS \
37 CONFIG_PACKAGE_MAC80211_MESH \
38 CONFIG_PACKAGE_MAC80211_TRACING \
39 CONFIG_PACKAGE_ATH_DEBUG \
40 CONFIG_PACKAGE_ATH_DFS \
41 CONFIG_ATH_USER_REGD \
43 include $(INCLUDE_DIR)/package.mk
45 WMENU:=Wireless Drivers
47 define KernelPackage/mac80211/Default
49 URL:=https://wireless.wiki.kernel.org/
50 MAINTAINER:=Felix Fietkau <nbd@nbd.name>
53 define KernelPackage/cfg80211
54 $(call KernelPackage/mac80211/Default)
55 TITLE:=cfg80211 - wireless configuration API
58 $(PKG_BUILD_DIR)/compat/compat.ko \
59 $(PKG_BUILD_DIR)/net/wireless/cfg80211.ko
62 define KernelPackage/cfg80211/description
63 cfg80211 is the Linux wireless LAN (802.11) configuration API.
66 define KernelPackage/mac80211
67 $(call KernelPackage/mac80211/Default)
68 TITLE:=Linux 802.11 Wireless Networking Stack
69 DEPENDS+= +kmod-cfg80211 +hostapd-common
72 FILES:= $(PKG_BUILD_DIR)/net/mac80211/mac80211.ko
76 define KernelPackage/mac80211/config
77 if PACKAGE_kmod-mac80211
79 config PACKAGE_MAC80211_DEBUGFS
80 bool "Export mac80211 internals in DebugFS"
81 select KERNEL_DEBUG_FS
84 Select this to see extensive information about
85 the internal state of mac80211 in debugfs.
87 config PACKAGE_MAC80211_TRACING
88 bool "Enable tracing (mac80211 and supported drivers)"
90 select KERNEL_ENABLE_DEFAULT_TRACERS
93 Select this to enable tracing of mac80211 and
94 related wifi drivers (using trace-cmd).
96 config PACKAGE_MAC80211_MESH
97 bool "Enable 802.11s mesh support"
103 define KernelPackage/mac80211/description
104 Generic IEEE 802.11 Networking Stack (mac80211)
107 define KernelPackage/adm8211
108 $(call KernelPackage/mac80211/Default)
109 TITLE:=ADMTek 8211 support
110 DEPENDS+=@PCI_SUPPORT +kmod-mac80211 +kmod-eeprom-93cx6
111 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/admtek/adm8211.ko
112 AUTOLOAD:=$(call AutoProbe,adm8211)
115 define KernelPackage/airo
116 $(call KernelPackage/mac80211/Default)
117 TITLE:=Cisco Aironet driver
118 DEPENDS+=@PCI_SUPPORT +@DRIVER_WEXT_SUPPORT +kmod-cfg80211 @TARGET_x86
119 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/cisco/airo.ko
120 AUTOLOAD:=$(call AutoProbe,airo)
123 define KernelPackage/airo/description
124 Kernel support for Cisco Aironet cards
127 define KernelPackage/ath/config
130 bool "Force Atheros drivers to respect the user's regdomain settings"
133 Atheros' idea of regulatory handling is that the EEPROM of the card defines
134 the regulatory limits and the user is only allowed to restrict the settings
135 even further, even if the country allows frequencies or power levels that
136 are forbidden by the EEPROM settings.
138 Select this option if you want the driver to respect the user's decision about
141 config PACKAGE_ATH_DEBUG
142 bool "Atheros wireless debugging"
144 Say Y, if you want to debug atheros wireless drivers.
145 Only ath9k makes use of this.
147 config PACKAGE_ATH_DFS
148 bool "Enable DFS support"
151 Dynamic frequency selection (DFS) is required for most of the 5 GHz band
152 channels in Europe, US, and Japan.
154 Select this option if you want to use such channels.
159 define KernelPackage/ath
160 $(call KernelPackage/mac80211/Default)
161 TITLE:=Atheros common driver part
162 DEPENDS+= @PCI_SUPPORT||USB_SUPPORT||TARGET_ar71xx||TARGET_ath25 +kmod-mac80211
163 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath.ko
167 define KernelPackage/ath/description
168 This module contains some common parts needed by Atheros Wireless drivers.
171 define KernelPackage/ath5k
172 $(call KernelPackage/mac80211/Default)
173 TITLE:=Atheros 5xxx wireless cards support
174 URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath5k
175 DEPENDS+= @PCI_SUPPORT||@TARGET_ath25 +kmod-ath +@DRIVER_11W_SUPPORT
176 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath5k/ath5k.ko
177 AUTOLOAD:=$(call AutoProbe,ath5k)
180 define KernelPackage/ath5k/description
181 This module adds support for wireless adapters based on
182 Atheros 5xxx chipset.
185 define KernelPackage/ath9k-common
186 $(call KernelPackage/mac80211/Default)
187 TITLE:=Atheros 802.11n wireless devices (common code for ath9k and ath9k_htc)
188 URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath9k
190 DEPENDS+= @PCI_SUPPORT||USB_SUPPORT||TARGET_ar71xx +kmod-ath +@DRIVER_11N_SUPPORT +@DRIVER_11W_SUPPORT +@KERNEL_RELAY
192 $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_common.ko \
193 $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_hw.ko
196 define KernelPackage/ath9k
197 $(call KernelPackage/mac80211/Default)
198 TITLE:=Atheros 802.11n PCI wireless cards support
199 URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath9k
200 DEPENDS+= @PCI_SUPPORT||TARGET_ar71xx +kmod-ath9k-common
202 $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k.ko
203 AUTOLOAD:=$(call AutoProbe,ath9k)
206 define KernelPackage/ath9k/description
207 This module adds support for wireless adapters based on
208 Atheros IEEE 802.11n AR5008 and AR9001 family of chipsets.
211 define KernelPackage/ath9k/config
213 config ATH9K_SUPPORT_PCOEM
214 bool "Support chips used in PC OEM cards"
215 depends on PACKAGE_kmod-ath9k
218 bool "Enable TX99 support"
219 depends on PACKAGE_kmod-ath9k
222 bool "Support for Ubiquiti UniFi Outdoor+ access point"
223 depends on PACKAGE_kmod-ath9k && TARGET_ar71xx_generic
228 define KernelPackage/ath9k-htc
229 $(call KernelPackage/mac80211/Default)
230 TITLE:=Atheros 802.11n USB device support
231 URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath9k
232 DEPENDS+= @USB_SUPPORT +kmod-ath9k-common +kmod-usb-core +ath9k-htc-firmware
234 $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_htc.ko
235 AUTOLOAD:=$(call AutoProbe,ath9k_htc)
238 define KernelPackage/ath9k-htc/description
239 This module adds support for wireless adapters based on
240 Atheros USB AR9271 and AR7010 family of chipsets.
243 define KernelPackage/carl9170
244 $(call KernelPackage/mac80211/Default)
245 TITLE:=Driver for Atheros AR9170 USB sticks
246 DEPENDS:=@USB_SUPPORT +kmod-mac80211 +kmod-ath +kmod-usb-core +kmod-input-core +@DRIVER_11N_SUPPORT +carl9170-firmware
247 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/carl9170/carl9170.ko
248 AUTOLOAD:=$(call AutoProbe,carl9170)
252 define KernelPackage/lib80211
253 $(call KernelPackage/mac80211/Default)
254 TITLE:=802.11 Networking stack
255 DEPENDS:=+kmod-cfg80211 +kmod-crypto-hash
257 $(PKG_BUILD_DIR)/net/wireless/lib80211.ko \
258 $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_wep.ko \
259 $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_ccmp.ko \
260 $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_tkip.ko
261 AUTOLOAD:=$(call AutoProbe, \
264 lib80211_crypt_ccmp \
265 lib80211_crypt_tkip \
269 define KernelPackage/lib80211/description
270 Kernel modules for 802.11 Networking stack
274 - lib80211_crypt_tkip
275 - lib80211_crytp_ccmp
278 define KernelPackage/mac80211-hwsim
279 $(call KernelPackage/mac80211/Default)
280 TITLE:=mac80211 HW simulation device
281 DEPENDS+= +kmod-mac80211 +@DRIVER_11N_SUPPORT
282 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mac80211_hwsim.ko
283 AUTOLOAD:=$(call AutoProbe,mac80211_hwsim)
285 define KernelPackage/rt2x00-lib
286 $(call KernelPackage/rt2x00/Default)
287 DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT||TARGET_ramips) +kmod-mac80211 +kmod-lib-crc-itu-t
289 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2x00lib.ko
293 define KernelPackage/rt2x00-lib/config
294 if PACKAGE_kmod-rt2x00-lib
296 config PACKAGE_RT2X00_LIB_DEBUGFS
297 bool "Enable rt2x00 debugfs support"
298 depends on PACKAGE_MAC80211_DEBUGFS
300 Enable creation of debugfs files for the rt2x00 drivers.
301 These debugfs files support both reading and writing of the
302 most important register types of the rt2x00 hardware.
304 config PACKAGE_RT2X00_DEBUG
305 bool "Enable rt2x00 debug output"
307 Enable debugging output for all rt2x00 modules
312 define KernelPackage/rt2800-lib
313 $(call KernelPackage/rt2x00/Default)
314 DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT||TARGET_ramips) +kmod-rt2x00-lib +kmod-lib-crc-ccitt +@DRIVER_11N_SUPPORT
317 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2800lib.ko
320 define KernelPackage/rt2x00-mmio
321 $(call KernelPackage/rt2x00/Default)
322 DEPENDS+= @(PCI_SUPPORT||TARGET_ramips) +kmod-rt2x00-lib +kmod-eeprom-93cx6
325 FILES:= $(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2x00mmio.ko
328 define KernelPackage/rt2800-mmio
329 $(call KernelPackage/rt2x00/Default)
330 TITLE += (RT28xx/RT3xxx MMIO)
331 DEPENDS += +kmod-rt2800-lib +kmod-rt2x00-mmio
333 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2800mmio.ko
336 define KernelPackage/rt2800-soc
337 $(call KernelPackage/rt2x00/Default)
338 DEPENDS += @(TARGET_ramips_rt288x||TARGET_ramips_rt305x||TARGET_ramips_rt3883||TARGET_ramips_mt7620) +kmod-rt2800-mmio +kmod-rt2800-lib
339 TITLE += (RT28xx/RT3xxx SoC)
341 $(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2x00soc.ko \
342 $(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2800soc.ko
343 AUTOLOAD:=$(call AutoProbe,rt2800soc)
346 config_package=$(if $(CONFIG_PACKAGE_kmod-$(1)),m)
352 CFG80211_INTERNAL_REGDB \
353 CFG80211_CERTIFICATION_ONUS \
354 MAC80211_RC_MINSTREL \
355 MAC80211_RC_MINSTREL_HT \
356 MAC80211_RC_MINSTREL_VHT \
357 MAC80211_RC_DEFAULT_MINSTREL \
362 WLAN_VENDOR_INTERSIL \
363 WLAN_VENDOR_MARVELL \
364 WLAN_VENDOR_MEDIATEK \
366 WLAN_VENDOR_REALTEK \
372 config-$(call config_package,cfg80211) += CFG80211
374 config-$(call config_package,mac80211) += MAC80211
375 config-$(CONFIG_PACKAGE_MAC80211_MESH) += MAC80211_MESH
376 ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS
386 ifdef CONFIG_PACKAGE_MAC80211_TRACING
392 IWLWIFI_DEVICE_TRACING
395 config-$(call config_package,lib80211) += LIB80211 LIB80211_CRYPT_WEP LIB80211_CRYPT_CCMP LIB80211_CRYPT_TKIP
397 config-$(call config_package,airo) += AIRO
399 config-$(call config_package,ath) += ATH_CARDS ATH_COMMON
400 config-$(CONFIG_PACKAGE_ATH_DEBUG) += ATH_DEBUG ATH9K_STATION_STATISTICS
401 config-$(CONFIG_PACKAGE_ATH_DFS) += ATH9K_DFS_CERTIFIED
403 config-$(call config_package,ath9k) += ATH9K
404 config-$(call config_package,ath9k-common) += ATH9K_COMMON
405 config-$(CONFIG_TARGET_ar71xx) += ATH9K_AHB
406 config-$(CONFIG_PCI) += ATH9K_PCI
407 config-$(CONFIG_ATH_USER_REGD) += ATH_USER_REGD
408 config-$(CONFIG_ATH9K_SUPPORT_PCOEM) += ATH9K_PCOEM
409 config-$(CONFIG_ATH9K_TX99) += ATH9K_TX99
410 config-$(CONFIG_ATH9K_UBNTHSR) += ATH9K_UBNTHSR
412 config-$(call config_package,ath9k-htc) += ATH9K_HTC
414 config-$(call config_package,ath5k) += ATH5K
415 ifdef CONFIG_TARGET_ath25
416 config-y += ATH5K_AHB
418 config-y += ATH5K_PCI
421 config-$(call config_package,carl9170) += CARL9170
423 config-$(call config_package,mac80211-hwsim) += MAC80211_HWSIM
425 config-$(call config_package,rt2x00-lib) += RT2X00 RT2X00_LIB
427 config-$(call config_package,rt2x00-mmio) += RT2X00_LIB_MMIO
429 config-$(call config_package,rt2800-lib) += RT2800_LIB
431 config-$(call config_package,rt2800-soc) += RT2800SOC
433 config-$(CONFIG_LEDS_TRIGGERS) += MAC80211_LEDS
435 MAKE_OPTS:= -C "$(PKG_BUILD_DIR)" \
436 CROSS_COMPILE="$(KERNEL_CROSS)" \
437 ARCH="$(LINUX_KARCH)" \
438 EXTRA_CFLAGS="-I$(PKG_BUILD_DIR)/include $(IREMAP_CFLAGS)" \
439 KLIB_BUILD="$(LINUX_DIR)" \
441 KLIB=$(TARGET_MODULES_DIR) \
442 KERNEL_SUBLEVEL=$(lastword $(subst ., ,$(KERNEL_PATCHVER))) \
443 KBUILD_LDFLAGS_MODULE_PREREQ=
445 ifneq ($(findstring c,$(OPENWRT_VERBOSE)),)
450 $(subst $(space),,$(foreach opt,$(config-$(1)),CPTCFG_$(opt)=$(1)
454 define mac80211_config
455 $(call ConfigVars,m)$(call ConfigVars,y)
457 $(eval $(call shexport,mac80211_config))
460 rm -rf $(PKG_BUILD_DIR)
461 mkdir -p $(PKG_BUILD_DIR)
465 $(PKG_BUILD_DIR)/include/linux/ssb \
466 $(PKG_BUILD_DIR)/include/linux/bcma \
467 $(PKG_BUILD_DIR)/include/net/bluetooth
470 $(PKG_BUILD_DIR)/include/linux/cordic.h \
471 $(PKG_BUILD_DIR)/include/linux/crc8.h \
472 $(PKG_BUILD_DIR)/include/linux/eeprom_93cx6.h \
473 $(PKG_BUILD_DIR)/include/linux/wl12xx.h \
474 $(PKG_BUILD_DIR)/include/linux/spi/libertas_spi.h \
475 $(PKG_BUILD_DIR)/include/net/ieee80211.h \
476 $(PKG_BUILD_DIR)/backport-include/linux/bcm47xx_nvram.h
478 echo 'compat-wireless-$(PKG_VERSION)-$(PKG_RELEASE)-$(REVISION)' > $(PKG_BUILD_DIR)/compat_version
479 $(CP) ./files/regdb.txt $(PKG_BUILD_DIR)/net/wireless/db.txt
482 ifneq ($(CONFIG_PACKAGE_kmod-cfg80211)$(CONFIG_PACKAGE_kmod-lib80211),)
483 define Build/Compile/kmod
484 rm -rf $(PKG_BUILD_DIR)/modules
485 +$(MAKE) $(PKG_JOBS) $(MAKE_OPTS) modules
489 define Build/Configure
490 cmp $(PKG_BUILD_DIR)/include/linux/ath9k_platform.h $(LINUX_DIR)/include/linux/ath9k_platform.h
491 cmp $(PKG_BUILD_DIR)/include/linux/ath5k_platform.h $(LINUX_DIR)/include/linux/ath5k_platform.h
495 $(SH_FUNC) var2file "$(call shvar,mac80211_config)" $(PKG_BUILD_DIR)/.config
496 $(MAKE) $(MAKE_OPTS) allnoconfig
497 $(call Build/Compile/kmod)
500 define Build/InstallDev
502 $(1)/usr/include/mac80211 \
503 $(1)/usr/include/mac80211-backport \
504 $(1)/usr/include/mac80211/ath \
505 $(1)/usr/include/net/mac80211
506 $(CP) $(PKG_BUILD_DIR)/net/mac80211/*.h $(PKG_BUILD_DIR)/include/* $(1)/usr/include/mac80211/
507 $(CP) $(PKG_BUILD_DIR)/backport-include/* $(1)/usr/include/mac80211-backport/
508 $(CP) $(PKG_BUILD_DIR)/net/mac80211/rate.h $(1)/usr/include/net/mac80211/
509 $(CP) $(PKG_BUILD_DIR)/drivers/net/wireless/ath/*.h $(1)/usr/include/mac80211/ath/
510 rm -f $(1)/usr/include/mac80211-backport/linux/module.h
514 define KernelPackage/cfg80211/install
515 $(INSTALL_DIR) $(1)/lib/wifi $(1)/lib/netifd/wireless
516 $(INSTALL_DATA) ./files/lib/wifi/mac80211.sh $(1)/lib/wifi
517 $(INSTALL_BIN) ./files/lib/netifd/wireless/mac80211.sh $(1)/lib/netifd/wireless
518 $(INSTALL_DIR) $(1)/etc/hotplug.d/ieee80211
519 $(INSTALL_DATA) ./files/mac80211.hotplug $(1)/etc/hotplug.d/ieee80211/00-wifi-detect
523 $(eval $(call KernelPackage,ath))
524 $(eval $(call KernelPackage,ath5k))
525 $(eval $(call KernelPackage,ath9k))
526 $(eval $(call KernelPackage,ath9k-common))
527 $(eval $(call KernelPackage,ath9k-htc))
528 $(eval $(call KernelPackage,carl9170))
529 $(eval $(call KernelPackage,cfg80211))
530 $(eval $(call KernelPackage,lib80211))
531 $(eval $(call KernelPackage,mac80211))
532 $(eval $(call KernelPackage,mac80211-hwsim))
533 $(eval $(call KernelPackage,rt2x00-lib))
534 $(eval $(call KernelPackage,rt2x00-mmio))
535 $(eval $(call KernelPackage,rt2800-lib))
536 $(eval $(call KernelPackage,rt2800-mmio))
537 $(eval $(call KernelPackage,rt2800-soc))