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
)/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
>
50 config_package
=$(if
$(CONFIG_PACKAGE_kmod-
$(1)),m
)
54 CFG80211_CERTIFICATION_ONUS \
55 MAC80211_RC_MINSTREL \
56 MAC80211_RC_MINSTREL_HT \
57 MAC80211_RC_MINSTREL_VHT \
58 MAC80211_RC_DEFAULT_MINSTREL \
62 WLAN_VENDOR_BROADCOM \
65 WLAN_VENDOR_INTERSIL \
67 WLAN_VENDOR_MEDIATEK \
75 config-
$(call config_package
,cfg80211
) += CFG80211
76 config-
$(CONFIG_PACKAGE_CFG80211_TESTMODE
) += NL80211_TESTMODE
78 config-
$(call config_package
,mac80211
) += MAC80211
79 config-
$(CONFIG_PACKAGE_MAC80211_MESH
) += MAC80211_MESH
88 PKG_CONFIG_DEPENDS
+= \
89 $(patsubst %,CONFIG_PACKAGE_kmod-
%,$(PKG_DRIVERS
))
91 define KernelPackage
/cfg80211
92 $(call KernelPackage
/mac80211
/Default
)
93 TITLE
:=cfg80211
- wireless configuration API
94 DEPENDS
+= +iw
+iwinfo
+wifi-scripts
+wireless-regdb
+USE_RFKILL
:kmod-rfkill
95 ABI_VERSION
:=$(PKG_VERSION
)-$(PKG_RELEASE
)
97 $(PKG_BUILD_DIR
)/compat
/compat.ko \
98 $(PKG_BUILD_DIR
)/net
/wireless
/cfg80211.ko
101 define KernelPackage
/cfg80211
/description
102 cfg80211 is the Linux wireless LAN
(802.11) configuration API.
105 define KernelPackage
/cfg80211
/config
106 if PACKAGE_kmod-cfg80211
108 config PACKAGE_CFG80211_TESTMODE
109 bool
"Enable testmode command support"
112 This is typically used for tests and calibration during
113 manufacturing
, or vendor specific debugging features
119 define KernelPackage
/mac80211
120 $(call KernelPackage
/mac80211
/Default
)
121 TITLE
:=Linux
802.11 Wireless Networking Stack
122 # +kmod-crypto-cmac is a runtime only dependency of net/mac80211/aes_cmac.c
123 DEPENDS
+= +kmod-cfg80211
+kmod-crypto-cmac
+kmod-crypto-ccm
+kmod-crypto-gcm
+hostapd-common
126 FILES
:= $(PKG_BUILD_DIR
)/net
/mac80211
/mac80211.ko
127 ABI_VERSION
:=$(PKG_VERSION
)-$(PKG_RELEASE
)
131 define KernelPackage
/mac80211
/config
132 if PACKAGE_kmod-mac80211
134 config PACKAGE_MAC80211_DEBUGFS
135 bool
"Export mac80211 internals in DebugFS"
136 select KERNEL_DEBUG_FS
139 Select this to see extensive information about
140 the internal state of mac80211 in debugfs.
142 config PACKAGE_MAC80211_TRACING
143 bool
"Enable tracing (mac80211 and supported drivers)"
145 select KERNEL_ENABLE_DEFAULT_TRACERS
148 Select this to enable tracing of mac80211 and
149 related wifi drivers
(using trace-cmd
).
151 config PACKAGE_MAC80211_MESH
152 bool
"Enable 802.11s mesh support"
158 define KernelPackage
/mac80211
/description
159 Generic IEEE
802.11 Networking Stack
(mac80211
)
162 define KernelPackage
/mac80211-hwsim
163 $(call KernelPackage
/mac80211
/Default
)
164 TITLE
:=mac80211 HW simulation device
165 DEPENDS
+= +kmod-mac80211
+@DRIVER_11AX_SUPPORT
+@DRIVER_11AC_SUPPORT
166 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/virtual
/mac80211_hwsim.ko
167 AUTOLOAD
:=$(call AutoProbe
,mac80211_hwsim
)
171 define KernelPackage
/mt7601u
172 $(call KernelPackage
/mac80211
/Default
)
173 TITLE
:=MT7601U-based USB dongles Wireless Driver
174 DEPENDS
+= +kmod-mac80211 @USB_SUPPORT
+kmod-usb-core
+mt7601u-firmware
175 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/mediatek
/mt7601u
/mt7601u.ko
176 AUTOLOAD
:=$(call AutoProbe
,mt7601u
)
179 define KernelPackage
/rsi91x
180 $(call KernelPackage
/mac80211
/Default
)
181 TITLE
:=Redpine Signals Inc
91x WLAN driver support
182 DEPENDS
+= +kmod-mac80211
+rs9113-firmware
183 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/rsi
/rsi_91x.ko
186 define KernelPackage
/rsi91x-usb
187 $(call KernelPackage
/mac80211
/Default
)
188 TITLE
:=Redpine Signals USB bus support
189 DEPENDS
+=@USB_SUPPORT
+kmod-usb-core
+kmod-mac80211
+kmod-rsi91x
+rs9113-firmware
190 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/rsi
/rsi_usb.ko
191 AUTOLOAD
:=$(call AutoProbe
,rsi_usb
)
194 define KernelPackage
/rsi91x-sdio
195 $(call KernelPackage
/mac80211
/Default
)
196 TITLE
:=Redpine Signals SDIO bus support
197 DEPENDS
+= +kmod-mac80211
+kmod-mmc
+kmod-rsi91x
+rs9113-firmware
198 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/rsi
/rsi_sdio.ko
199 AUTOLOAD
:=$(call AutoProbe
,rsi_sdio
)
203 define KernelPackage
/wlcore
204 $(call KernelPackage
/mac80211
/Default
)
205 TITLE
:=TI common driver part
206 DEPENDS
+= +kmod-mmc
+kmod-mac80211
208 $(PKG_BUILD_DIR
)/drivers
/net
/wireless
/ti
/wlcore
/wlcore.ko \
209 $(PKG_BUILD_DIR
)/drivers
/net
/wireless
/ti
/wlcore
/wlcore_sdio.ko
210 AUTOLOAD
:=$(call AutoProbe
,wlcore wlcore_sdio
)
213 define KernelPackage
/wlcore
/description
214 This module contains some common parts needed by TI Wireless drivers.
217 define KernelPackage
/wl12xx
218 $(call KernelPackage
/mac80211
/Default
)
219 TITLE
:=Driver for TI WL12xx
220 URL
:=https
://wireless.wiki.kernel.org
/en
/users
/drivers
/wl12xx
221 DEPENDS
+= +kmod-wlcore
+wl12xx-firmware
222 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/ti
/wl12xx
/wl12xx.ko
223 AUTOLOAD
:=$(call AutoProbe
,wl12xx
)
226 define KernelPackage
/wl12xx
/description
227 Kernel modules for TI WL12xx
230 define KernelPackage
/wl18xx
231 $(call KernelPackage
/mac80211
/Default
)
232 TITLE
:=Driver for TI WL18xx
233 URL
:=https
://wireless.wiki.kernel.org
/en
/users
/drivers
/wl18xx
234 DEPENDS
+= +kmod-wlcore
+wl18xx-firmware
235 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/ti
/wl18xx
/wl18xx.ko
236 AUTOLOAD
:=$(call AutoProbe
,wl18xx
)
239 define KernelPackage
/wl18xx
/description
240 Kernel modules for TI WL18xx
244 ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS
250 ifdef CONFIG_PACKAGE_MAC80211_TRACING
252 IWLWIFI_DEVICE_TRACING
255 config-
$(call config_package
,mac80211-hwsim
) += MAC80211_HWSIM
256 config-
$(call config_package
,mt7601u
) += MT7601U
257 config-y
+= WL_MEDIATEK
259 config-
$(call config_package
,wlcore
) += WLCORE WLCORE_SDIO
260 config-
$(call config_package
,wl12xx
) += WL12XX
261 config-
$(call config_package
,wl18xx
) += WL18XX
262 config-y
+= WL_TI WILINK_PLATFORM_DATA
263 config-
$(call config_package
,rsi91x
) += RSI_91X
264 config-
$(call config_package
,rsi91x-usb
) += RSI_USB
265 config-
$(call config_package
,rsi91x-sdio
) += RSI_SDIO
267 config-
$(CONFIG_LEDS_TRIGGERS
) += MAC80211_LEDS
271 ifeq ($(BUILD_VARIANT
),smallbuffers
)
272 C_DEFINES
+= -DCONFIG_ATH10K_SMALLBUFFERS
276 $(subst -C
$(LINUX_DIR
),-C
"$(PKG_BUILD_DIR)",$(KERNEL_MAKEOPTS
)) \
277 EXTRA_CFLAGS
="-I$(PKG_BUILD_DIR)/include $(IREMAP_CFLAGS) $(C_DEFINES)" \
278 KLIB_BUILD
="$(LINUX_DIR)" \
280 KLIB
=$(TARGET_MODULES_DIR
) \
281 KERNEL_SUBLEVEL
=$(lastword
$(subst .
, ,$(KERNEL_PATCHVER
))) \
282 KBUILD_LDFLAGS_MODULE_PREREQ
=
285 $(subst $(space
),,$(foreach opt
,$(config-
$(1)),CPTCFG_
$(opt
)=$(1)
289 define mac80211_config
290 $(call ConfigVars
,m
)$(call ConfigVars
,y
)
292 $(eval
$(call shexport
,mac80211_config
))
295 rm -rf
$(PKG_BUILD_DIR
)
296 mkdir
-p
$(PKG_BUILD_DIR
)
300 $(PKG_BUILD_DIR
)/include/linux
/ssb \
301 $(PKG_BUILD_DIR
)/include/linux
/bcma \
302 $(PKG_BUILD_DIR
)/include/net
/bluetooth
305 $(PKG_BUILD_DIR
)/include/linux
/cordic.h \
306 $(PKG_BUILD_DIR
)/include/linux
/crc8.h \
307 $(PKG_BUILD_DIR
)/include/linux
/eeprom_93cx6.h \
308 $(PKG_BUILD_DIR
)/include/linux
/wl12xx.h \
309 $(PKG_BUILD_DIR
)/include/linux
/mhi.h \
310 $(PKG_BUILD_DIR
)/include/net
/ieee80211.h \
311 $(PKG_BUILD_DIR
)/backport-include
/linux
/bcm47xx_nvram.h
313 echo
'compat-wireless-$(PKG_VERSION)-$(PKG_RELEASE)-$(REVISION)' > $(PKG_BUILD_DIR
)/compat_version
316 ifneq ($(CONFIG_PACKAGE_kmod-cfg80211
),)
317 define Build
/Compile
/kmod
318 rm -rf
$(PKG_BUILD_DIR
)/modules
319 +$(MAKE
) $(PKG_JOBS
) $(MAKE_OPTS
) modules
323 #do not Build/Configure for EXTERNAL KERNEL
324 ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE
)),"")
325 ifeq ($(strip $(CONFIG_KERNEL_GIT_CLONE_URI
)),"")
326 define Build
/Configure
327 cmp
$(PKG_BUILD_DIR
)/include/linux
/ath9k_platform.h
$(LINUX_DIR
)/include/linux
/ath9k_platform.h
328 cmp
$(PKG_BUILD_DIR
)/include/linux
/ath5k_platform.h
$(LINUX_DIR
)/include/linux
/ath5k_platform.h
329 cmp
$(PKG_BUILD_DIR
)/include/linux
/rt2x00_platform.h
$(LINUX_DIR
)/include/linux
/rt2x00_platform.h
335 $(if
$(QUILT
),rm -rf
$(PKG_BUILD_DIR
)/patches
; mkdir
-p
$(PKG_BUILD_DIR
)/patches
)
336 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/build
,build
/)
337 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/subsys
,subsys
/)
338 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath
,ath
/)
339 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath5k
,ath5k
/)
340 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath9k
,ath9k
/)
341 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath10k
,ath10k
/)
342 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath11k
,ath11k
/)
343 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/rt2x00
,rt2x00
/)
344 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/mt7601u
,mt7601u
/)
345 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/mwl
,mwl
/)
346 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/brcm
,brcm
/)
347 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/rtl
,rtl
/)
348 $(if
$(QUILT
),touch
$(PKG_BUILD_DIR
)/.quilt_used
)
351 define Quilt
/Refresh
/Package
352 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/build
,build
/)
353 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/subsys
,subsys
/)
354 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath
,ath
/)
355 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath5k
,ath5k
/)
356 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath9k
,ath9k
/)
357 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath10k
,ath10k
/)
358 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath11k
,ath11k
/)
359 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/rt2x00
,rt2x00
/)
360 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/mt7601u
,mt7601u
/)
361 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/mwl
,mwl
/)
362 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/brcm
,brcm
/)
363 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/rtl
,rtl
/)
367 $(SH_FUNC
) var2file
"$(call shvar,mac80211_config)" $(PKG_BUILD_DIR
)/.config
368 $(MAKE
) $(MAKE_OPTS
) allnoconfig
369 $(call Build
/Compile
/kmod
)
372 define Build
/InstallDev
374 $(1)/usr
/include/mac80211 \
375 $(1)/usr
/include/mac80211-backport \
376 $(1)/usr
/include/mac80211
/ath \
377 $(1)/usr
/include/net
/mac80211
378 $(CP
) $(PKG_BUILD_DIR
)/net
/mac80211
/*.h
$(PKG_BUILD_DIR
)/include/* $(1)/usr
/include/mac80211
/
379 $(CP
) $(PKG_BUILD_DIR
)/backport-include
/* $(1)/usr
/include/mac80211-backport
/
380 $(CP
) $(PKG_BUILD_DIR
)/net
/mac80211
/rate.h
$(1)/usr
/include/net
/mac80211
/
381 $(CP
) $(PKG_BUILD_DIR
)/drivers
/net
/wireless
/ath
/*.h
$(1)/usr
/include/mac80211
/ath
/
382 rm -f
$(1)/usr
/include/mac80211-backport
/linux
/module.h
386 $(eval
$(foreach drv
,$(PKG_DRIVERS
),$(call KernelPackage
,$(drv
))))
387 $(eval
$(call KernelPackage
,cfg80211
))
388 $(eval
$(call KernelPackage
,mac80211
))