blob: e85ca1a632ad82006a4ca615e61f389f652edbb2 [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001#
2# Copyright (C) 2018 OpenWrt.org
3#
4# This is free software, licensed under the GNU General Public License v2.
5# See /LICENSE for more information.
6#
7
8include $(TOPDIR)/rules.mk
9include $(INCLUDE_DIR)/kernel.mk
10
11PKG_NAME:=realtek-wlan
12PKG_VERSION:=2018
13PKG_RELEASE:=1
14PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
15
16include $(INCLUDE_DIR)/package.mk
17
18define Package/realtek-wl/Default
19 SECTION:=kernel
20 CATEGORY:=Kernel modules
21 SUBMENU:=Realtek WiFi driver
22 SUBMENUDEP:=TARGET_mmp
23endef
24
25define KernelPackage/realtek-wl
26 $(call Package/realtek-wl/Default)
27 SECTION:=kernel
28 DEPENDS:=@TARGET_mmp +@DRIVER_11N_SUPPORT \
29 +(RTL8192_SDIO_USE_NL80211||RTL8822BS_SDIO_USE_NL80211):kmod-mac80211 \
30 +(RTL8192_SDIO_USE_NL80211||RTL8822BS_SDIO_USE_NL80211):kmod-cfg80211
31 TITLE:=Kernel driver for Realtek chipsets
32
33ifneq ($(CONFIG_RTL8192_SDIO_USE_NL80211)$(CONFIG_RTL8192_SDIO_USE_WEXT),)
34ifeq ($(CONFIG_RTL8192FS_SDIO),y)
35 FILES:=$(PKG_BUILD_DIR)/driver_rtl8192fs/rtl8192fs.ko
36 AUTOLOAD:=$(call AutoLoad,50,rtl8192fs, 1)
37else
38 FILES:=$(PKG_BUILD_DIR)/driver_rtl8192es/rtl8192es.ko
39 AUTOLOAD:=$(call AutoLoad,50,rtl8192es, 1)
40endif
41endif
42ifneq ($(CONFIG_RTL8822BS_SDIO_USE_NL80211)$(CONFIG_RTL8822BS_SDIO_USE_WEXT),)
43 FILES:=$(PKG_BUILD_DIR)/driver_rtl8822bs/rtl8822bs.ko
44 AUTOLOAD:=$(call AutoLoad,50,rtl8822bs, 1)
45endif
46ifneq ($(CONFIG_RTL8192FR_PCIE_USE_WEXT),)
47 FILES+= $(PKG_BUILD_DIR)/driver_rtl8192cd/rtl8192cd.ko
48 AUTOLOAD+=$(call AutoLoad,50,rtl8192cd, 1)
49endif
50ifneq ($(CONFIG_RTL8812FR_PCIE_USE_WEXT),)
51 FILES+= $(PKG_BUILD_DIR)/driver_rtl8192cd/rtl8192cd.ko
52 AUTOLOAD+=$(call AutoLoad,50,rtl8192cd, 1)
53endif
54endef
55
56define KernelPackage/realtek-wl/description
57 This package contains the proprietary wireless driver for the Realtek
58 819x chipset.
59endef
60
61define KernelPackage/realtek-wl/config
62 if PACKAGE_kmod-realtek-wl
63 menuconfig RTL_SDIO_WIFI
64 bool "SDIO WiFi"
65 default n
66 select RTL8192_RTL8192FR_APP
67 help
68 Select sdio wifi, 8192es or 8192fs.
69
70 if RTL_SDIO_WIFI
71 config RTL8192XX_SDIO
72 bool "Enabe realtek SDIO wifi RTL8192"
73 default n
74 help
75 Select sdio wifi RTL8192, IEEE 802.11a/b/g/n compatible
76 WLAN, single band(2.4G only).
77 if RTL8192XX_SDIO
78 config RTL8192FS_SDIO
79 bool "Enabe realtek SDIO RTL8192FS, if not select, use 8192ES"
80 default n
81 help
82 Enable 8192FS
83 choice
84 prompt "RTL8192 use WEXT or NL80211"
85 default RTL8192_SDIO_USE_NL80211
86 help
87 Select WEXT or NL80211.
88 config RTL8192_SDIO_USE_WEXT
89 bool "WEXT"
90 select PACKAGE_realtek-app
91 select RTL8192_RTL8192FR_APP
92 help
93 Use Wext For WiFi Mangement.
94
95 config RTL8192_SDIO_USE_NL80211
96 bool "NL80211"
97 select PACKAGE_realtek-app
98 help
99 Default use NL80211 For RTL WiFi Management.
100 endchoice
101 endif
102
103 config RTL8822BS_SDIO
104 bool "Enabe realtek SDIO wifi RTL8822BS"
105 default n
106 help
107 Select sdio wifi RTL8822BS, IEEE 802.11a/b/g/n/ac compatible
108 WLAN, dual band(2.4G and 5G).
109 if RTL8822BS_SDIO
110 choice
111 prompt "RTL8822BS use WEXT or NL80211"
112 default RTL8822BS_SDIO_USE_NL80211
113 help
114 Select WEXT or NL80211 for 8822BS.
115 config RTL8822BS_SDIO_USE_WEXT
116 bool "WEXT"
117 select PACKAGE_realtek-app
118 select RTL8192_RTL8192FR_APP
119 help
120 Use Wext For WiFi Mangement.
121
122 config RTL8822BS_SDIO_USE_NL80211
123 bool "NL80211"
124 select PACKAGE_realtek-app
125 help
126 Default use NL80211 For RTL WiFi Management.
127 endchoice
128 endif
129 endif
130
131 menuconfig RTL_PCIE_WIFI
132 bool "PCIE WiFi"
133 default n
134 select RTL8192_RTL8192FR_APP
135 help
136 Select sdio wifi, 8192fr or 8812fr.
137
138 if RTL_PCIE_WIFI
139 config RTL8192FR_PCIE
140 bool "Enable realtek PCIe RTL8192FR driver"
141 default n
142 help
143 Select pcie wifi RTL8192FR, IEEE 802.11a/b/g/n compatible
144 WLAN, single band(2.4G only).
145 if RTL8192FR_PCIE
146 choice
147 prompt "RTL8192FR use WEXT"
148 default RTL8192FR_PCIE_USE_WEXT
149 help
150 Select WEXT for RTL8192FR.
151 config RTL8192FR_PCIE_USE_WEXT
152 bool "WEXT"
153 select PACKAGE_realtek-app
154 select RTL8192_RTL8192FR_APP
155 help
156 Support RTL8192FR PCIe Wifi.
157
158 endchoice
159 endif
160
161 config RTL8812FR_PCIE
162 bool "Enable realtek PCIe RTL8812FR driver"
163 default n
164 help
165 Select pcie wifi RTL8812FR, IEEE 802.11a/b/g/n/ac compatible
166 WLAN, single band(5G only).
167 if RTL8812FR_PCIE
168 choice
169 prompt "RTL8812FR use WEXT"
170 default RTL8812FR_PCIE_USE_WEXT
171 help
172 Select WEXT for RTL8812FR.
173 config RTL8812FR_PCIE_USE_WEXT
174 bool "WEXT"
175 select PACKAGE_realtek-app
176 select RTL8192_RTL8192FR_APP
177 help
178 Support RTL8812FR PCIe Wifi.
179 endchoice
180 endif
181 endif
182
183 endif
184endef
185
186define KernelPackage/realtek-wl/install
187 $(INSTALL_DIR) $(1)/etc/config
188 $(CP) ./files/etc/* $(1)/etc
189 $(RM) -rf $(1)/etc/config/wireless
190
191ifeq ($(CONFIG_RTL8192_SDIO_USE_NL80211),y)
192 $(CAT) ./files/wireless_mac80211 >> $(1)/etc/config/wireless
193endif
194ifeq ($(CONFIG_RTL8192_SDIO_USE_WEXT),y)
195 $(CAT) ./files/wireless_wext >> $(1)/etc/config/wireless
196endif
197
198ifeq ($(CONFIG_RTL8822BS_SDIO_USE_NL80211),y)
199 $(CAT) ./files/wireless_mac80211_rtl8822bs >> $(1)/etc/config/wireless
200endif
201ifeq ($(CONFIG_RTL8822BS_SDIO_USE_WEXT),y)
202 $(CAT) ./files/wireless_wext_rtl8822bs >> $(1)/etc/config/wireless
203endif
204
205ifneq ($(CONFIG_RTL8812FR_PCIE_USE_WEXT),y)
206ifeq ($(CONFIG_RTL8192FR_PCIE_USE_WEXT),y)
207 $(CAT) ./files/wireless_wext_rtl8192fr >> $(1)/etc/config/wireless
208endif
209endif
210
211ifeq ($(CONFIG_RTL8812FR_PCIE_USE_WEXT),y)
212ifeq ($(CONFIG_RTL8192FR_PCIE_USE_WEXT),y)
213 $(CAT) ./files/wireless_wext_wlan0_rtl8192fr >> $(1)/etc/config/wireless
214endif
215endif
216
217ifeq ($(CONFIG_RTL8812FR_PCIE_USE_WEXT),y)
218 $(CAT) ./files/wireless_wext_rtl8812fr >> $(1)/etc/config/wireless
219endif
220
221ifeq ($(CONFIG_RTL8192_RTL8192FR_APP),y)
222 $(INSTALL_DIR) $(1)/lib/wifi
223 $(INSTALL_DIR) $(1)/root/wifi/script
224 $(CP) ./files/lib/wifi/realtek.sh $(1)/lib/wifi/
225 $(INSTALL_DATA) ./files/lib/wifi/rtk_flash.txt $(1)/lib/wifi/
226 $(CP) ./files/script/* $(1)/root/wifi/script/
227ifneq ($(CONFIG_RTL8812FR_PCIE_USE_WEXT),)
228 $(INSTALL_DATA) ./files/lib/wifi/rtk_flash_ac.txt $(1)/lib/wifi/
229endif
230endif
231
232ifeq ($(CONFIG_FALCON_DKB_SHARE_PINS),y)
233 $(CP) ./files/lib/mwlan-1803dkb $(1)/etc/init.d/mwlan
234endif
235
236ifeq ($(CONFIG_RTL8812FR_PCIE_USE_WEXT),y)
237ifeq ($(CONFIG_RTL8192FR_PCIE_USE_WEXT),y)
238 $(CP) ./files/lib/mwlan-1826sp801 $(1)/etc/init.d/mwlan
239endif
240endif
241
242endef
243
244define Package/realtek-app
245$(call Package/realtek-wl/Default)
246 DEPENDS+= +librt
247 TITLE:=Realtek proprietary wireless application utility
248endef
249
250define Package/realtek-app/description
251 This package contains an utility for the proprietary Realtek wireless driver.
252endef
253
254define Package/realtek-app/config
255 if PACKAGE_realtek-app
256 config RTL8192_RTL8192FR_APP
257 bool "Enabe realtek RTL8192 and RTL8192FR App"
258 default y
259 help
260 Realtek RTL8192 SDIO WiFi App, Realtek RTL8192FR PCIe WiFi App.
261 endif
262endef
263
264
265MAKE_OPTS:= \
266 ARCH="$(LINUX_KARCH)" \
267 CROSS_COMPILE="$(TARGET_CROSS)" \
268 M="$(PKG_BUILD_DIR)"
269
270MAKE_KMOD := $(MAKE) -C "$(LINUX_DIR)" \
271 CROSS_COMPILE="$(TARGET_CROSS)" \
272 ARCH="$(LINUX_KARCH)" \
273 PATH="$(TARGET_PATH)" \
274 M="$(PKG_BUILD_DIR)/kmod" \
275
276define Build/Prepare
277 rm -rf $(PKG_BUILD_DIR)
278 mkdir -p $(PKG_BUILD_DIR)
279 $(PKG_UNPACK)
280 $(Build/Patch)
281ifneq ($(CONFIG_RTL8192FR_PCIE_USE_WEXT)$(CONFIG_RTL8812FR_PCIE_USE_WEXT),)
282 $(CP) ./src/Driver/rtl8192cd_92fr $(PKG_BUILD_DIR)/driver_rtl8192cd
283endif
284ifneq ($(CONFIG_RTL8192_SDIO_USE_NL80211)$(CONFIG_RTL8192_SDIO_USE_WEXT),)
285ifeq ($(CONFIG_RTL8192FS_SDIO),y)
286 $(CP) ./src/Driver/rtl8192cd_92fs $(PKG_BUILD_DIR)/driver_rtl8192fs
287else
288 $(CP) ./src/Driver/rtl8192cd_92es $(PKG_BUILD_DIR)/driver_rtl8192es
289endif
290endif
291ifneq ($(CONFIG_RTL8822BS_SDIO_USE_NL80211)$(CONFIG_RTL8822BS_SDIO_USE_WEXT),)
292 $(CP) ./src/Driver/rtl8822bs $(PKG_BUILD_DIR)/driver_rtl8822bs
293endif
294ifeq ($(CONFIG_RTL8192_RTL8192FR_APP),y)
295 $(CP) ./src/Users $(PKG_BUILD_DIR)/app_rtl8192cd
296endif
297endef
298
299define Build/Compile
300 # Compile the kernel part
301ifeq ($(CONFIG_RTL8192_SDIO_USE_NL80211),y)
302ifeq ($(CONFIG_RTL8192FS_SDIO),y)
303 $(CP) ./files/config_92fs_mac80211.mk $(PKG_BUILD_DIR)/driver_rtl8192fs/config.mk
304 $(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" $(KERNEL_MAKE_FLAGS) \
305 M="$(PKG_BUILD_DIR)/driver_rtl8192fs" \
306 RTK_WIFI_8192CD_SRC="$(PKG_BUILD_DIR)/driver_rtl8192fs" \
307 NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
308 CONFIG_PLATFORM=_ARM_ASR_ \
309 modules
310else
311 $(CP) ./files/config_mac80211.mk $(PKG_BUILD_DIR)/driver_rtl8192es/config.mk
312 $(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" $(KERNEL_MAKE_FLAGS) \
313 M="$(PKG_BUILD_DIR)/driver_rtl8192es" \
314 NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
315 RTK_WIFI_8192CD_SRC="$(PKG_BUILD_DIR)/driver_rtl8192es" \
316 CONFIG_PLATFORM=_ARM_ASR_ \
317 modules
318endif
319endif
320ifeq ($(CONFIG_RTL8192_SDIO_USE_WEXT),y)
321ifeq ($(CONFIG_RTL8192FS_SDIO),y)
322 $(CP) ./files/config_92fs_wext.mk $(PKG_BUILD_DIR)/driver_rtl8192fs/config.mk
323 $(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" $(KERNEL_MAKE_FLAGS) \
324 M="$(PKG_BUILD_DIR)/driver_rtl8192fs" \
325 RTK_WIFI_8192CD_SRC="$(PKG_BUILD_DIR)/driver_rtl8192fs" \
326 CONFIG_PLATFORM=_ARM_ASR_ \
327 modules
328else
329 $(CP) ./files/config_wext.mk $(PKG_BUILD_DIR)/driver_rtl8192es/config.mk
330 $(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" $(KERNEL_MAKE_FLAGS) \
331 M="$(PKG_BUILD_DIR)/driver_rtl8192es" \
332 RTK_WIFI_8192CD_SRC="$(PKG_BUILD_DIR)/driver_rtl8192es" \
333 CONFIG_PLATFORM=_ARM_ASR_ \
334 modules
335endif
336endif
337ifeq ($(CONFIG_RTL8822BS_SDIO_USE_NL80211),y)
338 $(CP) ./files/config_mac80211_rtl8822bs.mk $(PKG_BUILD_DIR)/driver_rtl8822bs/config.mk
339 $(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" $(KERNEL_MAKE_FLAGS) \
340 M="$(PKG_BUILD_DIR)/driver_rtl8822bs" \
341 RTK_WIFI_8192CD_SRC="$(PKG_BUILD_DIR)/driver_rtl8822bs" \
342 CONFIG_PLATFORM=_ARM_ASR_ \
343 modules
344endif
345ifeq ($(CONFIG_RTL8822BS_SDIO_USE_WEXT),y)
346 $(CP) ./files/config_wext_rtl8822bs.mk $(PKG_BUILD_DIR)/driver_rtl8822bs/config.mk
347 $(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" $(KERNEL_MAKE_FLAGS) \
348 M="$(PKG_BUILD_DIR)/driver_rtl8822bs" \
349 RTK_WIFI_8192CD_SRC="$(PKG_BUILD_DIR)/driver_rtl8822bs" \
350 CONFIG_PLATFORM=_ARM_ASR_ \
351 modules
352endif
353
354ifneq ($(CONFIG_RTL8812FR_PCIE_USE_WEXT),y)
355ifeq ($(CONFIG_RTL8192FR_PCIE_USE_WEXT),y)
356 $(CP) ./files/config_wext_rtl8192fr.mk $(PKG_BUILD_DIR)/driver_rtl8192cd/config.mk
357 $(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" $(KERNEL_MAKE_FLAGS) \
358 M="$(PKG_BUILD_DIR)/driver_rtl8192cd" \
359 RTK_WIFI_8192CD_SRC="$(PKG_BUILD_DIR)/driver_rtl8192cd" \
360 CONFIG_PLATFORM=_ARM_ASR_ \
361 modules
362endif
363endif
364
365ifneq ($(CONFIG_RTL8192FR_PCIE_USE_WEXT),y)
366ifeq ($(CONFIG_RTL8812FR_PCIE_USE_WEXT),y)
367 $(CP) ./files/config_wext_rtl8812fr.mk $(PKG_BUILD_DIR)/driver_rtl8192cd/config.mk
368 $(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" $(KERNEL_MAKE_FLAGS) \
369 M="$(PKG_BUILD_DIR)/driver_rtl8192cd" \
370 RTK_WIFI_8192CD_SRC="$(PKG_BUILD_DIR)/driver_rtl8192cd" \
371 CONFIG_PLATFORM=_ARM_ASR_ \
372 modules
373endif
374endif
375
376ifeq ($(CONFIG_RTL8192FR_PCIE_USE_WEXT),y)
377ifeq ($(CONFIG_RTL8812FR_PCIE_USE_WEXT),y)
378 $(CP) ./files/config_wext_rtl8192fr_rtl8812fr.mk $(PKG_BUILD_DIR)/driver_rtl8192cd/config.mk
379 $(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" $(KERNEL_MAKE_FLAGS) \
380 M="$(PKG_BUILD_DIR)/driver_rtl8192cd" \
381 RTK_WIFI_8192CD_SRC="$(PKG_BUILD_DIR)/driver_rtl8192cd" \
382 CONFIG_PLATFORM=_ARM_ASR_ \
383 modules
384endif
385endif
386ifeq ($(CONFIG_RTL8192_RTL8192FR_APP),y)
387 $(MAKE) -C $(PKG_BUILD_DIR)/app_rtl8192cd \
388 CROSS_COMPILE="$(TARGET_CROSS)" $(TARGET_CONFIGURE_OPTS) \
389 CONFIG_PLATFORM=_ARM_ASR_
390endif
391endef
392
393define Build/InstallDev
394 $(INSTALL_DIR) $(1)/usr/lib
395endef
396
397define Package/realtek-app/install
398 $(INSTALL_DIR) $(1)/bin
399 $(INSTALL_DIR) $(1)/sbin
400 $(INSTALL_DIR) $(1)/etc
401ifeq ($(CONFIG_RTL8192_RTL8192FR_APP),y)
402 $(INSTALL_BIN) $(PKG_BUILD_DIR)/app_rtl8192cd/bin/auth $(1)/bin
403 $(INSTALL_BIN) $(PKG_BUILD_DIR)/app_rtl8192cd/bin/iwcontrol $(1)/bin
404 $(INSTALL_BIN) $(PKG_BUILD_DIR)/app_rtl8192cd/bin/UDPserver $(1)/bin
405 #$(INSTALL_BIN) $(PKG_BUILD_DIR)/app_rtl8192cd/bin/iwpriv $(1)/bin
406 $(INSTALL_BIN) $(PKG_BUILD_DIR)/app_rtl8192cd/bin/wscd $(1)/bin
407 $(INSTALL_BIN) $(PKG_BUILD_DIR)/app_rtl8192cd/bin/flash $(1)/bin
408 $(INSTALL_BIN) $(PKG_BUILD_DIR)/app_rtl8192cd/bin/webs $(1)/bin
409 $(INSTALL_BIN) $(PKG_BUILD_DIR)/app_rtl8192cd/bin/ftd $(1)/bin
410 $(INSTALL_BIN) $(PKG_BUILD_DIR)/app_rtl8192cd/wsc/src/wscd.conf $(1)/etc/wscd.conf
411 $(INSTALL_BIN) $(PKG_BUILD_DIR)/app_rtl8192cd/wsc/src/simplecfgservice.xml $(1)/etc
412endif
413endef
414
415$(eval $(call KernelPackage,realtek-wl))
416$(eval $(call BuildPackage,realtek-app))