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
15 PKG_SOURCE_URL
:=http
://mirror2.openwrt.org
/sources
/
16 PKG_HASH
:=3bbc461121134fda9089c084a5eed577d05e7837a157edf9a3797937172a3ece
18 PKG_SOURCE
:=backports-
$(PKG_VERSION
).
tar.xz
19 PKG_BUILD_DIR
:=$(KERNEL_BUILD_DIR
)/$(if
$(BUILD_VARIANT
),$(PKG_NAME
)-$(BUILD_VARIANT
)/)backports-
$(PKG_VERSION
)
22 PKG_MAINTAINER
:=Felix Fietkau
<nbd@nbd.name
>
27 rsi91x rsi91x-usb rsi91x-sdio\
30 PKG_CONFIG_DEPENDS
:= \
31 CONFIG_PACKAGE_kmod-mac80211 \
32 CONFIG_PACKAGE_CFG80211_TESTMODE \
33 CONFIG_PACKAGE_MAC80211_DEBUGFS \
34 CONFIG_PACKAGE_MAC80211_MESH \
35 CONFIG_PACKAGE_MAC80211_TRACING \
36 CONFIG_PACKAGE_IWLWIFI_DEBUG \
37 CONFIG_PACKAGE_IWLWIFI_DEBUGFS \
38 CONFIG_PACKAGE_RTLWIFI_DEBUG \
40 include $(INCLUDE_DIR
)/package.mk
42 WMENU
:=Wireless Drivers
44 define KernelPackage
/mac80211
/Default
46 URL
:=https
://wireless.wiki.kernel.org
/
47 MAINTAINER
:=Felix Fietkau
<nbd@nbd.name
>
51 # 1 = OpenWrt KernelPackage name
52 # 2 = Optional list of variants for which the module may be selected:
53 # If empty, the module is only selected with the first variant
54 # Use $(ALL_VARIANTS) to allow module selection in all variants
55 config_package
=$(if
$(and
$(CONFIG_PACKAGE_kmod-
$(1)),$(call mac80211_variant_check
,$(2))),m
)
56 mac80211_variant_check
=$(if
$(ALL_VARIANTS
),$(filter $(BUILD_VARIANT
),$(if
$(1),$(1),$(firstword $(ALL_VARIANTS
)))),y
)
60 CFG80211_CERTIFICATION_ONUS \
61 MAC80211_RC_MINSTREL \
62 MAC80211_RC_MINSTREL_HT \
63 MAC80211_RC_MINSTREL_VHT \
64 MAC80211_RC_DEFAULT_MINSTREL \
68 WLAN_VENDOR_BROADCOM \
71 WLAN_VENDOR_INTERSIL \
73 WLAN_VENDOR_MEDIATEK \
81 config-
$(call config_package
,cfg80211
,$(ALL_VARIANTS
)) += CFG80211
82 config-
$(CONFIG_PACKAGE_CFG80211_TESTMODE
) += NL80211_TESTMODE
84 config-
$(call config_package
,mac80211
,$(ALL_VARIANTS
)) += MAC80211
85 config-
$(CONFIG_PACKAGE_MAC80211_MESH
) += MAC80211_MESH
94 PKG_CONFIG_DEPENDS
+= \
95 $(patsubst %,CONFIG_PACKAGE_kmod-
%,$(PKG_DRIVERS
))
97 define KernelPackage
/cfg80211
98 $(call KernelPackage
/mac80211
/Default
)
99 TITLE
:=cfg80211
- wireless configuration API
100 DEPENDS
+= +iw
+iwinfo
+wifi-scripts
+wireless-regdb
+USE_RFKILL
:kmod-rfkill
101 ABI_VERSION
:=$(PKG_VERSION
)-$(PKG_RELEASE
)
103 $(PKG_BUILD_DIR
)/compat
/compat.ko \
104 $(PKG_BUILD_DIR
)/net
/wireless
/cfg80211.ko
107 define KernelPackage
/cfg80211
/description
108 cfg80211 is the Linux wireless LAN
(802.11) configuration API.
111 define KernelPackage
/cfg80211
/config
112 if PACKAGE_kmod-cfg80211
114 config PACKAGE_CFG80211_TESTMODE
115 bool
"Enable testmode command support"
118 This is typically used for tests and calibration during
119 manufacturing
, or vendor specific debugging features
125 define KernelPackage
/mac80211
126 $(call KernelPackage
/mac80211
/Default
)
127 TITLE
:=Linux
802.11 Wireless Networking Stack
128 # +kmod-crypto-cmac is a runtime only dependency of net/mac80211/aes_cmac.c
129 DEPENDS
+= +kmod-cfg80211
+kmod-crypto-cmac
+kmod-crypto-ccm
+kmod-crypto-gcm
+hostapd-common
132 FILES
:= $(PKG_BUILD_DIR
)/net
/mac80211
/mac80211.ko
133 ABI_VERSION
:=$(PKG_VERSION
)-$(PKG_RELEASE
)
137 define KernelPackage
/mac80211
/config
138 if PACKAGE_kmod-mac80211
140 config PACKAGE_MAC80211_DEBUGFS
141 bool
"Export mac80211 internals in DebugFS"
142 select KERNEL_DEBUG_FS
145 Select this to see extensive information about
146 the internal state of mac80211 in debugfs.
148 config PACKAGE_MAC80211_TRACING
149 bool
"Enable tracing (mac80211 and supported drivers)"
151 select KERNEL_ENABLE_DEFAULT_TRACERS
154 Select this to enable tracing of mac80211 and
155 related wifi drivers
(using trace-cmd
).
157 config PACKAGE_MAC80211_MESH
158 bool
"Enable 802.11s mesh support"
164 define KernelPackage
/mac80211
/description
165 Generic IEEE
802.11 Networking Stack
(mac80211
)
168 define KernelPackage
/mac80211-hwsim
169 $(call KernelPackage
/mac80211
/Default
)
170 TITLE
:=mac80211 HW simulation device
171 DEPENDS
+= +kmod-mac80211
+@DRIVER_11AX_SUPPORT
+@DRIVER_11AC_SUPPORT
172 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/virtual
/mac80211_hwsim.ko
173 AUTOLOAD
:=$(call AutoProbe
,mac80211_hwsim
)
177 define KernelPackage
/mt7601u
178 $(call KernelPackage
/mac80211
/Default
)
179 TITLE
:=MT7601U-based USB dongles Wireless Driver
180 DEPENDS
+= +kmod-mac80211 @USB_SUPPORT
+kmod-usb-core
+mt7601u-firmware
181 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/mediatek
/mt7601u
/mt7601u.ko
182 AUTOLOAD
:=$(call AutoProbe
,mt7601u
)
185 define KernelPackage
/rsi91x
186 $(call KernelPackage
/mac80211
/Default
)
187 TITLE
:=Redpine Signals Inc
91x WLAN driver support
188 DEPENDS
+= +kmod-mac80211
+rs9113-firmware
189 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/rsi
/rsi_91x.ko
192 define KernelPackage
/rsi91x-usb
193 $(call KernelPackage
/mac80211
/Default
)
194 TITLE
:=Redpine Signals USB bus support
195 DEPENDS
+=@USB_SUPPORT
+kmod-usb-core
+kmod-mac80211
+kmod-rsi91x
+rs9113-firmware
196 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/rsi
/rsi_usb.ko
197 AUTOLOAD
:=$(call AutoProbe
,rsi_usb
)
200 define KernelPackage
/rsi91x-sdio
201 $(call KernelPackage
/mac80211
/Default
)
202 TITLE
:=Redpine Signals SDIO bus support
203 DEPENDS
+= +kmod-mac80211
+kmod-mmc
+kmod-rsi91x
+rs9113-firmware
204 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/rsi
/rsi_sdio.ko
205 AUTOLOAD
:=$(call AutoProbe
,rsi_sdio
)
209 define KernelPackage
/wlcore
210 $(call KernelPackage
/mac80211
/Default
)
211 TITLE
:=TI common driver part
212 DEPENDS
+= +kmod-mmc
+kmod-mac80211
214 $(PKG_BUILD_DIR
)/drivers
/net
/wireless
/ti
/wlcore
/wlcore.ko \
215 $(PKG_BUILD_DIR
)/drivers
/net
/wireless
/ti
/wlcore
/wlcore_sdio.ko
216 AUTOLOAD
:=$(call AutoProbe
,wlcore wlcore_sdio
)
219 define KernelPackage
/wlcore
/description
220 This module contains some common parts needed by TI Wireless drivers.
223 define KernelPackage
/wl12xx
224 $(call KernelPackage
/mac80211
/Default
)
225 TITLE
:=Driver for TI WL12xx
226 URL
:=https
://wireless.wiki.kernel.org
/en
/users
/drivers
/wl12xx
227 DEPENDS
+= +kmod-wlcore
+wl12xx-firmware
228 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/ti
/wl12xx
/wl12xx.ko
229 AUTOLOAD
:=$(call AutoProbe
,wl12xx
)
232 define KernelPackage
/wl12xx
/description
233 Kernel modules for TI WL12xx
236 define KernelPackage
/wl18xx
237 $(call KernelPackage
/mac80211
/Default
)
238 TITLE
:=Driver for TI WL18xx
239 URL
:=https
://wireless.wiki.kernel.org
/en
/users
/drivers
/wl18xx
240 DEPENDS
+= +kmod-wlcore
+wl18xx-firmware
241 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/ti
/wl18xx
/wl18xx.ko
242 AUTOLOAD
:=$(call AutoProbe
,wl18xx
)
245 define KernelPackage
/wl18xx
/description
246 Kernel modules for TI WL18xx
250 ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS
256 ifdef CONFIG_PACKAGE_MAC80211_TRACING
258 IWLWIFI_DEVICE_TRACING
261 config-
$(call config_package
,mac80211-hwsim
) += MAC80211_HWSIM
262 config-
$(call config_package
,mt7601u
) += MT7601U
263 config-y
+= WL_MEDIATEK
265 config-
$(call config_package
,wlcore
) += WLCORE WLCORE_SDIO
266 config-
$(call config_package
,wl12xx
) += WL12XX
267 config-
$(call config_package
,wl18xx
) += WL18XX
268 config-y
+= WL_TI WILINK_PLATFORM_DATA
269 config-
$(call config_package
,rsi91x
) += RSI_91X
270 config-
$(call config_package
,rsi91x-usb
) += RSI_USB
271 config-
$(call config_package
,rsi91x-sdio
) += RSI_SDIO
273 config-
$(CONFIG_LEDS_TRIGGERS
) += MAC80211_LEDS
277 ifeq ($(BUILD_VARIANT
),smallbuffers
)
278 C_DEFINES
+= -DCONFIG_ATH10K_SMALLBUFFERS
282 $(subst -C
$(LINUX_DIR
),-C
"$(PKG_BUILD_DIR)",$(KERNEL_MAKEOPTS
)) \
283 EXTRA_CFLAGS
="-I$(PKG_BUILD_DIR)/include $(IREMAP_CFLAGS) $(C_DEFINES)" \
284 KLIB_BUILD
="$(LINUX_DIR)" \
286 KLIB
=$(TARGET_MODULES_DIR
) \
287 KERNEL_SUBLEVEL
=$(lastword
$(subst .
, ,$(KERNEL_PATCHVER
))) \
288 KBUILD_LDFLAGS_MODULE_PREREQ
=
291 $(subst $(space
),,$(foreach opt
,$(config-
$(1)),CPTCFG_
$(opt
)=$(1)
295 define mac80211_config
296 $(call ConfigVars
,m
)$(call ConfigVars
,y
)
298 $(eval
$(call shexport
,mac80211_config
))
301 rm -rf
$(PKG_BUILD_DIR
)
302 mkdir
-p
$(PKG_BUILD_DIR
)
306 $(PKG_BUILD_DIR
)/include/linux
/ssb \
307 $(PKG_BUILD_DIR
)/include/linux
/bcma \
308 $(PKG_BUILD_DIR
)/include/net
/bluetooth
311 $(PKG_BUILD_DIR
)/include/linux
/cordic.h \
312 $(PKG_BUILD_DIR
)/include/linux
/crc8.h \
313 $(PKG_BUILD_DIR
)/include/linux
/eeprom_93cx6.h \
314 $(PKG_BUILD_DIR
)/include/linux
/wl12xx.h \
315 $(PKG_BUILD_DIR
)/include/linux
/mhi.h \
316 $(PKG_BUILD_DIR
)/include/net
/ieee80211.h \
317 $(PKG_BUILD_DIR
)/backport-include
/linux
/bcm47xx_nvram.h
319 echo
'compat-wireless-$(PKG_VERSION)-$(PKG_RELEASE)-$(REVISION)' > $(PKG_BUILD_DIR
)/compat_version
322 ifneq ($(CONFIG_PACKAGE_kmod-cfg80211
),)
323 define Build
/Compile
/kmod
324 rm -rf
$(PKG_BUILD_DIR
)/modules
325 +$(MAKE
) $(PKG_JOBS
) $(MAKE_OPTS
) modules
329 #do not Build/Configure for EXTERNAL KERNEL
330 ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE
)),"")
331 ifeq ($(strip $(CONFIG_KERNEL_GIT_CLONE_URI
)),"")
332 define Build
/Configure
333 cmp
$(PKG_BUILD_DIR
)/include/linux
/ath9k_platform.h
$(LINUX_DIR
)/include/linux
/ath9k_platform.h
334 cmp
$(PKG_BUILD_DIR
)/include/linux
/ath5k_platform.h
$(LINUX_DIR
)/include/linux
/ath5k_platform.h
335 cmp
$(PKG_BUILD_DIR
)/include/linux
/rt2x00_platform.h
$(LINUX_DIR
)/include/linux
/rt2x00_platform.h
341 $(if
$(QUILT
),rm -rf
$(PKG_BUILD_DIR
)/patches
; mkdir
-p
$(PKG_BUILD_DIR
)/patches
)
342 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/build
,build
/)
343 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/subsys
,subsys
/)
344 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath
,ath
/)
345 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath5k
,ath5k
/)
346 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath9k
,ath9k
/)
347 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath10k
,ath10k
/)
348 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath11k
,ath11k
/)
349 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/rt2x00
,rt2x00
/)
350 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/mt7601u
,mt7601u
/)
351 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/mwl
,mwl
/)
352 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/brcm
,brcm
/)
353 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/rtl
,rtl
/)
354 $(if
$(QUILT
),touch
$(PKG_BUILD_DIR
)/.quilt_used
)
357 define Quilt
/Refresh
/Package
358 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/build
,build
/)
359 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/subsys
,subsys
/)
360 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath
,ath
/)
361 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath5k
,ath5k
/)
362 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath9k
,ath9k
/)
363 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath10k
,ath10k
/)
364 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath11k
,ath11k
/)
365 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/rt2x00
,rt2x00
/)
366 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/mt7601u
,mt7601u
/)
367 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/mwl
,mwl
/)
368 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/brcm
,brcm
/)
369 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/rtl
,rtl
/)
373 $(SH_FUNC
) var2file
"$(call shvar,mac80211_config)" $(PKG_BUILD_DIR
)/.config
374 $(MAKE
) $(MAKE_OPTS
) allnoconfig
375 $(call Build
/Compile
/kmod
)
378 define Build
/InstallDev
380 $(1)/usr
/include/mac80211 \
381 $(1)/usr
/include/mac80211-backport \
382 $(1)/usr
/include/mac80211
/ath \
383 $(1)/usr
/include/net
/mac80211
384 $(CP
) $(PKG_BUILD_DIR
)/net
/mac80211
/*.h
$(PKG_BUILD_DIR
)/include/* $(1)/usr
/include/mac80211
/
385 $(CP
) $(PKG_BUILD_DIR
)/backport-include
/* $(1)/usr
/include/mac80211-backport
/
386 $(CP
) $(PKG_BUILD_DIR
)/net
/mac80211
/rate.h
$(1)/usr
/include/net
/mac80211
/
387 $(CP
) $(PKG_BUILD_DIR
)/drivers
/net
/wireless
/ath
/*.h
$(1)/usr
/include/mac80211
/ath
/
388 rm -f
$(1)/usr
/include/mac80211-backport
/linux
/module.h
392 $(eval
$(foreach drv
,$(PKG_DRIVERS
),$(call KernelPackage
,$(drv
))))
393 $(eval
$(call KernelPackage
,cfg80211
))
394 $(eval
$(call KernelPackage
,mac80211
))