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:=@KERNEL/linux/kernel/projects/backports/stable/v5.15.58/
16 PKG_SOURCE_URL
:=http
://mirror2.openwrt.org
/sources
/
17 PKG_HASH
:=5d39aca7e34c33cb9b3e366117b2e86841b7bdd37933679d6b1e61be6b150648
19 PKG_SOURCE
:=backports-
$(PKG_VERSION
).
tar.xz
20 PKG_BUILD_DIR
:=$(KERNEL_BUILD_DIR
)/backports-
$(PKG_VERSION
)
23 PKG_MAINTAINER
:=Felix Fietkau
<nbd@nbd.name
>
28 rsi91x rsi91x-usb rsi91x-sdio\
31 PKG_CONFIG_DEPENDS
:= \
32 CONFIG_PACKAGE_kmod-mac80211 \
33 CONFIG_PACKAGE_CFG80211_TESTMODE \
34 CONFIG_PACKAGE_MAC80211_DEBUGFS \
35 CONFIG_PACKAGE_MAC80211_MESH \
36 CONFIG_PACKAGE_MAC80211_TRACING \
37 CONFIG_PACKAGE_IWLWIFI_DEBUG \
38 CONFIG_PACKAGE_IWLWIFI_DEBUGFS \
39 CONFIG_PACKAGE_RTLWIFI_DEBUG \
41 include $(INCLUDE_DIR
)/package.mk
43 WMENU
:=Wireless Drivers
45 define KernelPackage
/mac80211
/Default
47 URL
:=https
://wireless.wiki.kernel.org
/
48 MAINTAINER
:=Felix Fietkau
<nbd@nbd.name
>
51 config_package
=$(if
$(CONFIG_PACKAGE_kmod-
$(1)),m
)
55 CFG80211_CERTIFICATION_ONUS \
57 MAC80211_RC_MINSTREL \
58 MAC80211_RC_MINSTREL_HT \
59 MAC80211_RC_MINSTREL_VHT \
60 MAC80211_RC_DEFAULT_MINSTREL \
61 MAC80211_VERBOSE_DEBUG \
65 WLAN_VENDOR_BROADCOM \
68 WLAN_VENDOR_INTERSIL \
70 WLAN_VENDOR_MEDIATEK \
78 config-
$(call config_package
,cfg80211
) += CFG80211
79 config-
$(CONFIG_PACKAGE_CFG80211_TESTMODE
) += NL80211_TESTMODE
81 config-
$(call config_package
,mac80211
) += MAC80211
82 config-
$(CONFIG_PACKAGE_MAC80211_MESH
) += MAC80211_MESH
91 PKG_CONFIG_DEPENDS
+= \
92 $(patsubst %,CONFIG_PACKAGE_kmod-
%,$(PKG_DRIVERS
))
94 define KernelPackage
/cfg80211
95 $(call KernelPackage
/mac80211
/Default
)
96 TITLE
:=cfg80211
- wireless configuration API
97 DEPENDS
+= +iw
+iwinfo
+wireless-regdb
+USE_RFKILL
:kmod-rfkill
98 ABI_VERSION
:=$(PKG_VERSION
)-$(PKG_RELEASE
)
100 $(PKG_BUILD_DIR
)/compat
/compat.ko \
101 $(PKG_BUILD_DIR
)/net
/wireless
/cfg80211.ko
104 define KernelPackage
/cfg80211
/description
105 cfg80211 is the Linux wireless LAN
(802.11) configuration API.
108 define KernelPackage
/cfg80211
/config
109 if PACKAGE_kmod-cfg80211
111 config PACKAGE_CFG80211_TESTMODE
112 bool
"Enable testmode command support"
115 This is typically used for tests and calibration during
116 manufacturing
, or vendor specific debugging features
122 define KernelPackage
/mac80211
123 $(call KernelPackage
/mac80211
/Default
)
124 TITLE
:=Linux
802.11 Wireless Networking Stack
125 # +kmod-crypto-cmac is a runtime only dependency of net/mac80211/aes_cmac.c
126 DEPENDS
+= +kmod-cfg80211
+kmod-crypto-cmac
+kmod-crypto-ccm
+kmod-crypto-gcm
+hostapd-common
129 FILES
:= $(PKG_BUILD_DIR
)/net
/mac80211
/mac80211.ko
130 ABI_VERSION
:=$(PKG_VERSION
)-$(PKG_RELEASE
)
134 define KernelPackage
/mac80211
/config
135 if PACKAGE_kmod-mac80211
137 config PACKAGE_MAC80211_DEBUGFS
138 bool
"Export mac80211 internals in DebugFS"
139 select KERNEL_DEBUG_FS
142 Select this to see extensive information about
143 the internal state of mac80211 in debugfs.
145 config PACKAGE_MAC80211_TRACING
146 bool
"Enable tracing (mac80211 and supported drivers)"
148 select KERNEL_ENABLE_DEFAULT_TRACERS
151 Select this to enable tracing of mac80211 and
152 related wifi drivers
(using trace-cmd
).
154 config PACKAGE_MAC80211_MESH
155 bool
"Enable 802.11s mesh support"
161 define KernelPackage
/mac80211
/description
162 Generic IEEE
802.11 Networking Stack
(mac80211
)
165 define KernelPackage
/mac80211-hwsim
166 $(call KernelPackage
/mac80211
/Default
)
167 TITLE
:=mac80211 HW simulation device
168 DEPENDS
+= +kmod-mac80211
+@DRIVER_11AX_SUPPORT
+@DRIVER_11AC_SUPPORT
169 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/mac80211_hwsim.ko
170 AUTOLOAD
:=$(call AutoProbe
,mac80211_hwsim
)
174 define KernelPackage
/mt7601u
175 $(call KernelPackage
/mac80211
/Default
)
176 TITLE
:=MT7601U-based USB dongles Wireless Driver
177 DEPENDS
+= +kmod-mac80211 @USB_SUPPORT
+kmod-usb-core
+mt7601u-firmware
178 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/mediatek
/mt7601u
/mt7601u.ko
179 AUTOLOAD
:=$(call AutoProbe
,mt7601u
)
182 define KernelPackage
/rsi91x
183 $(call KernelPackage
/mac80211
/Default
)
184 TITLE
:=Redpine Signals Inc
91x WLAN driver support
185 DEPENDS
+= +kmod-mac80211
+rs9113-firmware
186 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/rsi
/rsi_91x.ko
189 define KernelPackage
/rsi91x-usb
190 $(call KernelPackage
/mac80211
/Default
)
191 TITLE
:=Redpine Signals USB bus support
192 DEPENDS
+=@USB_SUPPORT
+kmod-usb-core
+kmod-mac80211
+kmod-rsi91x
+rs9113-firmware
193 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/rsi
/rsi_usb.ko
194 AUTOLOAD
:=$(call AutoProbe
,rsi_usb
)
197 define KernelPackage
/rsi91x-sdio
198 $(call KernelPackage
/mac80211
/Default
)
199 TITLE
:=Redpine Signals SDIO bus support
200 DEPENDS
+= +kmod-mac80211
+kmod-mmc
+kmod-rsi91x
+rs9113-firmware
201 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/rsi
/rsi_sdio.ko
202 AUTOLOAD
:=$(call AutoProbe
,rsi_sdio
)
206 define KernelPackage
/wlcore
207 $(call KernelPackage
/mac80211
/Default
)
208 TITLE
:=TI common driver part
209 DEPENDS
+= +kmod-mmc
+kmod-mac80211
211 $(PKG_BUILD_DIR
)/drivers
/net
/wireless
/ti
/wlcore
/wlcore.ko \
212 $(PKG_BUILD_DIR
)/drivers
/net
/wireless
/ti
/wlcore
/wlcore_sdio.ko
213 AUTOLOAD
:=$(call AutoProbe
,wlcore wlcore_sdio
)
216 define KernelPackage
/wlcore
/description
217 This module contains some common parts needed by TI Wireless drivers.
220 define KernelPackage
/wl12xx
221 $(call KernelPackage
/mac80211
/Default
)
222 TITLE
:=Driver for TI WL12xx
223 URL
:=https
://wireless.wiki.kernel.org
/en
/users
/drivers
/wl12xx
224 DEPENDS
+= +kmod-wlcore
+wl12xx-firmware
225 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/ti
/wl12xx
/wl12xx.ko
226 AUTOLOAD
:=$(call AutoProbe
,wl12xx
)
229 define KernelPackage
/wl12xx
/description
230 Kernel modules for TI WL12xx
233 define KernelPackage
/wl18xx
234 $(call KernelPackage
/mac80211
/Default
)
235 TITLE
:=Driver for TI WL18xx
236 URL
:=https
://wireless.wiki.kernel.org
/en
/users
/drivers
/wl18xx
237 DEPENDS
+= +kmod-wlcore
+wl18xx-firmware
238 FILES
:=$(PKG_BUILD_DIR
)/drivers
/net
/wireless
/ti
/wl18xx
/wl18xx.ko
239 AUTOLOAD
:=$(call AutoProbe
,wl18xx
)
242 define KernelPackage
/wl18xx
/description
243 Kernel modules for TI WL18xx
247 ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS
253 ifdef CONFIG_PACKAGE_MAC80211_TRACING
255 IWLWIFI_DEVICE_TRACING
258 config-
$(call config_package
,mac80211-hwsim
) += MAC80211_HWSIM
259 config-
$(call config_package
,mt7601u
) += MT7601U
260 config-y
+= WL_MEDIATEK
262 config-
$(call config_package
,wlcore
) += WLCORE WLCORE_SDIO
263 config-
$(call config_package
,wl12xx
) += WL12XX
264 config-
$(call config_package
,wl18xx
) += WL18XX
265 config-y
+= WL_TI WILINK_PLATFORM_DATA
266 config-
$(call config_package
,rsi91x
) += RSI_91X
267 config-
$(call config_package
,rsi91x-usb
) += RSI_USB
268 config-
$(call config_package
,rsi91x-sdio
) += RSI_SDIO
270 config-
$(CONFIG_LEDS_TRIGGERS
) += MAC80211_LEDS
274 ifeq ($(BUILD_VARIANT
),smallbuffers
)
275 C_DEFINES
+= -DCONFIG_ATH10K_SMALLBUFFERS
279 $(subst -C
$(LINUX_DIR
),-C
"$(PKG_BUILD_DIR)",$(KERNEL_MAKEOPTS
)) \
280 EXTRA_CFLAGS
="-I$(PKG_BUILD_DIR)/include $(IREMAP_CFLAGS) $(C_DEFINES)" \
281 KLIB_BUILD
="$(LINUX_DIR)" \
283 KLIB
=$(TARGET_MODULES_DIR
) \
284 KERNEL_SUBLEVEL
=$(lastword
$(subst .
, ,$(KERNEL_PATCHVER
))) \
285 KBUILD_LDFLAGS_MODULE_PREREQ
=
288 $(subst $(space
),,$(foreach opt
,$(config-
$(1)),CPTCFG_
$(opt
)=$(1)
292 define mac80211_config
293 $(call ConfigVars
,m
)$(call ConfigVars
,y
)
295 $(eval
$(call shexport
,mac80211_config
))
298 rm -rf
$(PKG_BUILD_DIR
)
299 mkdir
-p
$(PKG_BUILD_DIR
)
303 $(PKG_BUILD_DIR
)/include/linux
/ssb \
304 $(PKG_BUILD_DIR
)/include/linux
/bcma \
305 $(PKG_BUILD_DIR
)/include/net
/bluetooth
308 $(PKG_BUILD_DIR
)/include/linux
/cordic.h \
309 $(PKG_BUILD_DIR
)/include/linux
/crc8.h \
310 $(PKG_BUILD_DIR
)/include/linux
/eeprom_93cx6.h \
311 $(PKG_BUILD_DIR
)/include/linux
/wl12xx.h \
312 $(PKG_BUILD_DIR
)/include/linux
/mhi.h \
313 $(PKG_BUILD_DIR
)/include/net
/ieee80211.h \
314 $(PKG_BUILD_DIR
)/backport-include
/linux
/bcm47xx_nvram.h
316 echo
'compat-wireless-$(PKG_VERSION)-$(PKG_RELEASE)-$(REVISION)' > $(PKG_BUILD_DIR
)/compat_version
319 ifneq ($(CONFIG_PACKAGE_kmod-cfg80211
),)
320 define Build
/Compile
/kmod
321 rm -rf
$(PKG_BUILD_DIR
)/modules
322 +$(MAKE
) $(PKG_JOBS
) $(MAKE_OPTS
) modules
326 #do not Build/Configure for EXTERNAL KERNEL
327 ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE
)),"")
328 ifeq ($(strip $(CONFIG_KERNEL_GIT_CLONE_URI
)),"")
329 define Build
/Configure
330 cmp
$(PKG_BUILD_DIR
)/include/linux
/ath9k_platform.h
$(LINUX_DIR
)/include/linux
/ath9k_platform.h
331 cmp
$(PKG_BUILD_DIR
)/include/linux
/ath5k_platform.h
$(LINUX_DIR
)/include/linux
/ath5k_platform.h
332 cmp
$(PKG_BUILD_DIR
)/include/linux
/rt2x00_platform.h
$(LINUX_DIR
)/include/linux
/rt2x00_platform.h
338 $(if
$(QUILT
),rm -rf
$(PKG_BUILD_DIR
)/patches
; mkdir
-p
$(PKG_BUILD_DIR
)/patches
)
339 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/build
,build
/)
340 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/subsys
,subsys
/)
341 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath
,ath
/)
342 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath5k
,ath5k
/)
343 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath9k
,ath9k
/)
344 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath10k
,ath10k
/)
345 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath11k
,ath11k
/)
346 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/rt2x00
,rt2x00
/)
347 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/mt7601u
,mt7601u
/)
348 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/mwl
,mwl
/)
349 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/brcm
,brcm
/)
350 $(call PatchDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/rtl
,rtl
/)
351 $(if
$(QUILT
),touch
$(PKG_BUILD_DIR
)/.quilt_used
)
354 define Quilt
/Refresh
/Package
355 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/build
,build
/)
356 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/subsys
,subsys
/)
357 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath
,ath
/)
358 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath5k
,ath5k
/)
359 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath9k
,ath9k
/)
360 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath10k
,ath10k
/)
361 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/ath11k
,ath11k
/)
362 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/rt2x00
,rt2x00
/)
363 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/mt7601u
,mt7601u
/)
364 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/mwl
,mwl
/)
365 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/brcm
,brcm
/)
366 $(call Quilt
/RefreshDir
,$(PKG_BUILD_DIR
),$(PATCH_DIR
)/rtl
,rtl
/)
370 $(SH_FUNC
) var2file
"$(call shvar,mac80211_config)" $(PKG_BUILD_DIR
)/.config
371 $(MAKE
) $(MAKE_OPTS
) allnoconfig
372 $(call Build
/Compile
/kmod
)
375 define Build
/InstallDev
377 $(1)/usr
/include/mac80211 \
378 $(1)/usr
/include/mac80211-backport \
379 $(1)/usr
/include/mac80211
/ath \
380 $(1)/usr
/include/net
/mac80211
381 $(CP
) $(PKG_BUILD_DIR
)/net
/mac80211
/*.h
$(PKG_BUILD_DIR
)/include/* $(1)/usr
/include/mac80211
/
382 $(CP
) $(PKG_BUILD_DIR
)/backport-include
/* $(1)/usr
/include/mac80211-backport
/
383 $(CP
) $(PKG_BUILD_DIR
)/net
/mac80211
/rate.h
$(1)/usr
/include/net
/mac80211
/
384 $(CP
) $(PKG_BUILD_DIR
)/drivers
/net
/wireless
/ath
/*.h
$(1)/usr
/include/mac80211
/ath
/
385 rm -f
$(1)/usr
/include/mac80211-backport
/linux
/module.h
389 define KernelPackage
/cfg80211
/install
390 $(INSTALL_DIR
) $(1)/lib
/wifi
$(1)/lib
/netifd
/wireless
391 $(INSTALL_DATA
) .
/files
/lib
/wifi
/mac80211.sh
$(1)/lib
/wifi
392 $(INSTALL_BIN
) .
/files
/lib
/netifd
/wireless
/mac80211.sh
$(1)/lib
/netifd
/wireless
393 $(INSTALL_DIR
) $(1)/etc
/hotplug.d
/ieee80211
394 $(INSTALL_DATA
) .
/files
/mac80211.hotplug
$(1)/etc
/hotplug.d
/ieee80211
/10-wifi-detect
397 $(eval
$(foreach drv
,$(PKG_DRIVERS
),$(call KernelPackage
,$(drv
))))
398 $(eval
$(call KernelPackage
,cfg80211
))
399 $(eval
$(call KernelPackage
,mac80211
))