ASR_BASE
Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/package/kernel/realtek-wl/files/How_to_enable_multiple_AP.txt b/package/kernel/realtek-wl/files/How_to_enable_multiple_AP.txt
new file mode 100644
index 0000000..186ae6a
--- /dev/null
+++ b/package/kernel/realtek-wl/files/How_to_enable_multiple_AP.txt
@@ -0,0 +1,11 @@
+Multiple SSID For Realtek WiFi
+
+Take 8192ES for example:
+
+1. Enable Virtual AP
+In config_mac80211.mk, change RTL8192CD_NUM_VWLAN
+e.g. RTL8192CD_NUM_VWLAN := 1
+
+2. add AP1/AP2 interface to config file wrieless
+Refer to wireless_mac80211_multiple_ap in this dir.
+
diff --git a/package/kernel/realtek-wl/files/config_92fs_mac80211.mk b/package/kernel/realtek-wl/files/config_92fs_mac80211.mk
new file mode 100644
index 0000000..8259342
--- /dev/null
+++ b/package/kernel/realtek-wl/files/config_92fs_mac80211.mk
@@ -0,0 +1,512 @@
+#
+# RTL WLan AP Driver All In One Configure
+#
+
+#
+# Wireless LAN
+#
+
+# Driver Module/Build In Driver ==> :=m/:=y
+CONFIG_RTL8192CD :=m
+
+# RTK Platform ?
+RTK_BSP :=n
+
+# Select Support WLan Chip
+CONFIG_RTL_92C_SUPPORT :=n
+CONFIG_RTL_92D_SUPPORT :=n
+CONFIG_RTL_88E_SUPPORT :=n
+CONFIG_RTL_92E_SUPPORT :=n
+CONFIG_RTL_92F_SUPPORT :=y
+CONFIG_RTL_8812_SUPPORT :=n
+CONFIG_RTL_8814_SUPPORT :=n
+CONFIG_RTL_8822_SUPPORT :=n
+CONFIG_RTL_8822C_SUPPORT :=n
+CONFIG_RTL_8821_SUPPORT :=n
+CONFIG_RTL_8814B_SUPPORT :=n
+CONFIG_RTL_8812F_SUPPORT :=n
+
+CONCURRENT_MODE :=n
+
+# Bus Interface Type, PCIE / USB / SDIO
+CONFIG_PCI_HCI :=n
+CONFIG_USB_HCI :=n
+CONFIG_SDIO_HCI :=y
+
+# RTL Platform Support
+CONFIG_RTL_819X :=n
+CONFIG_RTL_819XD :=n
+
+# Driver Configuration
+CONFIG_RTL8190_PRIV_SKB :=n
+CONFIG_PREALLOC_MODULE :=n
+
+CONFIG_RTL_WAPI_SUPPORT :=n
+
+# If Use External PA, LNA ?
+CONFIG_EXT_PA :=n
+CONFIG_EXT_LNA :=n
+# 0:22dB LNA gain; 1:18dB LNA gain; 2:16dB LNA gain; 3:14dB LNA gain
+CONFIG_EXT_LNA_TYPE := 3
+# 0:22dB LNA gain; 1:18dB LNA gain; 2:16dB LNA gain; 3:14dB LNA gain
+CONFIG_EXT_PA_LNA_TYPE :=3
+
+# If Support Dynamic Freqence Selection ?
+CONFIG_RTL_DFS_SUPPORT :=n
+
+# Number of Virtual AP ?
+ifeq ($(RTL8192CD_NUM_VWLAN),)
+RTL8192CD_NUM_VWLAN := 0
+endif
+
+# If Support Client Mode ?
+CONFIG_RTL_CLIENT_MODE_SUPPORT :=y
+CONFIG_RTL_REPEATER_MODE_SUPPORT :=y
+CONFIG_RTL_SUPPORT_MULTI_PROFILE :=n
+CONFIG_RTL_MULTI_CLONE_SUPPORT :=n
+
+# If Support Wireless Distribution System ?
+CONFIG_RTL_WDS_SUPPORT :=n
+
+# If Enable On-Chip EFuse ?
+CONFIG_ENABLE_EFUSE :=y
+
+# If support non-HAL Chip ? (92C, 92D, 88E, 8812)
+CONFIG_RTL_WLAN_HAL_NOT_EXIST :=n
+
+CONFIG_RTL_COMAPI_CFGFILE :=n
+CONFIG_RTL_COMAPI_WLTOOLS :=n
+CONFIG_MP_PSD_SUPPORT :=n
+CONFIG_RTL_P2P_SUPPORT :=n
+CONFIG_RTL_MESH_SUPPORT :=n
+CONFIG_RTL_WLAN_DOS_FILTER :=n
+CONFIG_TXPWR_LMT :=n
+CONFIG_TX_BEAMFORMING :=n
+CONFIG_RTL_WPS2_SUPPORT :=y
+CONFIG_POWER_SAVE :=y
+CONFIG_DPK :=n
+
+# [WPA Supplicant] 0:None; 1:wext; 2:nl80211
+CONFIG_WPAS_CLI :=2
+CONFIG_NL80211_AP :=y
+
+# Select WLan PHY Clock Source, 40MHz/25MHz. For WLan module, we use 40MHz usually
+CONFIG_PHY_EAT_40MHZ :=y
+CONFIG_PHY_WLAN_EAT_40MHZ :=y
+
+CONFIG_IGMP_SNOOPING_SUPPORT:=y
+CONFIG_MLD_SNOOPING_SUPPORT:=y
+
+# 802.11w support
+CONFIG_RTL_11W_SUPPORT:=y
+CONFIG_RTL_11W_CLI_SUPPORT:=n
+
+# 802.11r support
+CONFIG_RTL_11R_SUPPORT:=n
+
+#802.11k support
+CONFIG_RTL_DOT11K_SUPPORT:=n
+
+#802.11v support
+CONFIG_RTL_11V_SUPPORT:=n
+
+# Thermal Control
+CONFIG_THERMAL_CONTROL:=n
+CONFIG_THERMAL_CONTROL_DAEMON:=n
+
+CONFIG_BEAMFORMING_SUPPORT:=n
+
+CONFIG_RTK_SMART_ROAMING:=n
+
+CONFIG_SMP_LOAD_BALANCE_SUPPORT:=n
+
+CONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT=n
+
+# Airtime Fairness support
+CONFIG_RTL_ATM_SUPPORT:=n
+
+# WPA3 support
+CONFIG_RTL_WPA3_SUPPORT:=y
+
+# Band Steering support
+CONFIG_RTL_STA_CONTROL_SUPPORT:=n
+
+######## Don't Modify Following Code ########
+
+EXTRA_CFLAGS += -DCONFIG_RTL8192CD
+
+ifeq ($(RTK_BSP),n)
+ EXTRA_CFLAGS += -DNOT_RTK_BSP
+ EXTRA_CFLAGS += -DCONFIG_WIRELESS_LAN_MODULE
+endif
+
+ifeq ($(CONFIG_RTL_ATM_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_ATM_SUPPORT
+endif
+
+ifeq ($(CONFIG_DPK),y)
+ EXTRA_CFLAGS += -DCONFIG_RF_DPK_SETTING_SUPPORT
+endif
+
+ifeq ($(CONFIG_PCI_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_PCI_HCI
+endif
+
+ifeq ($(CONFIG_USB_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_USB_HCI
+endif
+
+ifeq ($(CONFIG_SDIO_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_SDIO_HCI
+ # 0: No AP power saving 1: RF off 2: beacon offload
+ CONFIG_AP_PS := 0
+endif
+
+ifeq ($(CONFIG_RTL_92C_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_92C_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_92D_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_92D_SUPPORT
+ #EXTRA_CFLAGS += -DCONFIG_RTL_92D_DMDP
+endif
+
+ifeq ($(CONFIG_RTL_88E_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_88E_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_8812_SUPPORT),y)
+# CONFIG_RTL_DFS_SUPPORT :=n
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_8812_SUPPORT
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_8814_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8814AE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814AE
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_92E_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8192EE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192EE
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_92F_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8192FE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192FE
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_8822_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8822BE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ CONFIG_WLAN_MACHAL_API_V0 :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8822BE
+# ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+# EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+# endif
+endif
+
+ifeq ($(CONFIG_RTL_8822C_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8822CE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ CONFIG_WLAN_MACHAL_API_V0 :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8822CE
+# ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+# EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+# endif
+endif
+
+ifeq ($(CONFIG_RTL_8821_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8821CE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ CONFIG_WLAN_MACHAL_API_V0 :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8821CE
+
+ ifeq ($(CONFIG_WLAN_HAL_8821CE), y)
+# EXTRA_CFLAGS += -DCONFIG_PCIE_POWER_SAVING
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_8814B_SUPPORT),y)
+ CONFIG_RTL_OFFLOAD_DRIVER :=y
+ CONFIG_ENABLE_EFUSE :=n
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8814BE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ CONFIG_WLAN_MACHAL_API_V1 :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814BE
+endif
+
+ifeq ($(CONFIG_RTL_8812F_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8812FE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ CONFIG_WLAN_MACHAL_API_V0 :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8812FE
+# ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+# EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+# endif
+endif
+
+ifeq ($(CONFIG_WLAN_HAL),y)
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL
+
+ ifeq ($(CONFIG_WLAN_HAL_88XX),y)
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_88XX
+ endif
+
+ ifeq ($(CONFIG_WLAN_HAL_8881A),y)
+ RTL_WLAN_DATA_DIR := WlanHAL/Data/8881A
+ endif
+else
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST
+endif
+
+ifeq ($(CONFIG_WLAN_MACHAL_API),y)
+ EXTRA_CFLAGS += -DCONFIG_WLAN_MACHAL_API
+endif
+
+ifeq ($(CONFIG_RTL_WLAN_HAL_NOT_EXIST),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST
+endif
+
+ifeq ($(CONFIG_RTL_ODM_WLAN_DRIVER),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_ODM_WLAN_DRIVER
+endif
+
+# TODO: We need to assign which NIC is using external PA and LNA
+ifeq ($(CONFIG_EXT_PA),y)
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_PA
+ EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_PA
+endif
+
+ifeq ($(CONFIG_EXT_LNA),y)
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_LNA
+ EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_LNA
+ ifeq ($(CONFIG_EXT_PA),y)
+ EXTRA_CFLAGS += -DEXT_LNA_TYPE=$(CONFIG_EXT_PA_LNA_TYPE)
+ else
+ EXTRA_CFLAGS += -DEXT_LNA_TYPE=$(CONFIG_EXT_LNA_TYPE)
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_DFS_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_DFS_SUPPORT
+endif
+
+ifneq ($(RTL8192CD_NUM_VWLAN),0)
+ EXTRA_CFLAGS += -DCONFIG_RTL_VAP_SUPPORT
+endif
+EXTRA_CFLAGS += -DRTL8192CD_NUM_VWLAN=$(RTL8192CD_NUM_VWLAN)
+
+ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_CLIENT_MODE_SUPPORT
+else
+ CONFIG_WPAS_CLI :=0
+endif
+
+ifeq ($(CONFIG_RTL_REPEATER_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_REPEATER_MODE_SUPPORT -DMAC_2_PORT
+endif
+
+ifeq ($(CONFIG_RTL_SUPPORT_MULTI_PROFILE),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_SUPPORT_MULTI_PROFILE
+endif
+
+ifeq ($(CONFIG_RTL_MULTI_CLONE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_MULTI_CLONE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_WDS_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WDS_SUPPORT
+endif
+
+ifeq ($(CONFIG_ENABLE_EFUSE),y)
+ EXTRA_CFLAGS += -DCONFIG_ENABLE_EFUSE
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_ENABLE_EFUSE
+endif
+
+ifeq ($(CONFIG_RTL_COMAPI_CFGFILE),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_CFGFILE
+endif
+
+ifeq ($(CONFIG_RTL_COMAPI_WLTOOLS),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS
+endif
+
+ifeq ($(CONFIG_WPAS_CLI),1) # wext
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS -DWIFI_WPAS_CLI
+ ifeq ($(CONFIG_NL80211_AP),y)
+ EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE -DNON_NL80211_WPAS
+ endif
+else
+ifeq ($(CONFIG_WPAS_CLI),2) # nl80211
+ EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE
+ ifeq ($(CONFIG_NL80211_AP),n)
+ EXTRA_CFLAGS += -DNON_NL80211_AP
+ endif
+else
+ ifeq ($(CONFIG_NL80211_AP),y)
+ EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE
+ ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DNON_NL80211_WPAS
+ endif
+ endif
+endif
+endif
+
+ifeq ($(CONFIG_MP_PSD_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_MP_PSD_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_P2P_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_P2P_SUPPORT
+endif
+
+ifeq ($(CONFIG_TXPWR_LMT),y)
+ EXTRA_CFLAGS += -DCONFIG_TXPWR_LMT
+endif
+
+ifeq ($(CONFIG_RTL_MESH_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_MESH_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_WLAN_DOS_FILTER),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_DOS_FILTER
+endif
+
+ifeq ($(CONCURRENT_MODE),y)
+ EXTRA_CFLAGS += -DCONCURRENT_MODE
+endif
+
+ifeq ($(CONFIG_RTL8190_PRIV_SKB),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL8190_PRIV_SKB
+endif
+
+ifeq ($(CONFIG_RTL_WPS2_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WPS2_SUPPORT
+endif
+
+ifeq ($(CONFIG_TX_BEAMFORMING),y)
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_TX_BEAMFORMING
+endif
+
+ifeq ($(CONFIG_PHY_EAT_40MHZ),y)
+ EXTRA_CFLAGS += -DCONFIG_PHY_EAT_40MHZ
+endif
+ifeq ($(CONFIG_PHY_WLAN_EAT_40MHZ),y)
+ EXTRA_CFLAGS += -DCONFIG_PHY_WLAN_EAT_40MHZ
+endif
+
+ifeq ($(CONFIG_RTL_WAPI_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WAPI_SUPPORT
+endif
+
+ifeq ($(CONFIG_IGMP_SNOOPING_SUPPORT),y)
+ EXTRA_CFLAGS += -D_FULLY_WIFI_IGMP_SNOOPING_SUPPORT_
+endif
+
+ifeq ($(CONFIG_MLD_SNOOPING_SUPPORT),y)
+ EXTRA_CFLAGS += -D_FULLY_WIFI_MLD_SNOOPING_SUPPORT_
+endif
+
+ifeq ($(CONFIG_POWER_SAVE),y)
+ EXTRA_CFLAGS += -DSDIO_AP_OFFLOAD -DCONFIG_POWER_SAVE
+endif
+
+ifeq ($(CONFIG_RTL_11W_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_11W_CLI_SUPPORT),y)
+ ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_11R_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11R_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_11V_SUPPORT),y)
+ #Enable 11k if 11v is enabled
+ EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT
+ EXTRA_CFLAGS += -DCONFIG_RTL_11V_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_DOT11K_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTK_SMART_ROAMING),y)
+ EXTRA_CFLAGS += -DCONFIG_RTK_SMART_ROAMING
+endif
+
+ifeq ($(CONFIG_SMP_LOAD_BALANCE_SUPPORT),y)
+ EXTRA_CFLAGS += -DSMP_LOAD_BALANCE_SUPPORT
+endif
+
+ifeq ($(CONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_OFFLOAD_DRIVER),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_OFFLOAD_DRIVER
+endif
+
+ifeq ($(CONFIG_RTL_WPA3_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WPA3_SUPPORT
+ ifeq ($(CONFIG_RTL_11W_SUPPORT),n)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT
+ endif
+ ifeq ($(CONFIG_RTL_11W_CLI_SUPPORT),n)
+ ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ ifneq ($(CONFIG_WPAS_CLI),1)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT
+ endif
+ endif
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_STA_CONTROL_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_STA_CONTROL_SUPPORT
+endif
diff --git a/package/kernel/realtek-wl/files/config_92fs_wext.mk b/package/kernel/realtek-wl/files/config_92fs_wext.mk
new file mode 100644
index 0000000..6d44aa0
--- /dev/null
+++ b/package/kernel/realtek-wl/files/config_92fs_wext.mk
@@ -0,0 +1,512 @@
+#
+# RTL WLan AP Driver All In One Configure
+#
+
+#
+# Wireless LAN
+#
+
+# Driver Module/Build In Driver ==> :=m/:=y
+CONFIG_RTL8192CD :=m
+
+# RTK Platform ?
+RTK_BSP :=n
+
+# Select Support WLan Chip
+CONFIG_RTL_92C_SUPPORT :=n
+CONFIG_RTL_92D_SUPPORT :=n
+CONFIG_RTL_88E_SUPPORT :=n
+CONFIG_RTL_92E_SUPPORT :=n
+CONFIG_RTL_92F_SUPPORT :=y
+CONFIG_RTL_8812_SUPPORT :=n
+CONFIG_RTL_8814_SUPPORT :=n
+CONFIG_RTL_8822_SUPPORT :=n
+CONFIG_RTL_8822C_SUPPORT :=n
+CONFIG_RTL_8821_SUPPORT :=n
+CONFIG_RTL_8814B_SUPPORT :=n
+CONFIG_RTL_8812F_SUPPORT :=n
+
+CONCURRENT_MODE :=n
+
+# Bus Interface Type, PCIE / USB / SDIO
+CONFIG_PCI_HCI :=n
+CONFIG_USB_HCI :=n
+CONFIG_SDIO_HCI :=y
+
+# RTL Platform Support
+CONFIG_RTL_819X :=n
+CONFIG_RTL_819XD :=n
+
+# Driver Configuration
+CONFIG_RTL8190_PRIV_SKB :=n
+CONFIG_PREALLOC_MODULE :=n
+
+CONFIG_RTL_WAPI_SUPPORT :=n
+
+# If Use External PA, LNA ?
+CONFIG_EXT_PA :=n
+CONFIG_EXT_LNA :=n
+# 0:22dB LNA gain; 1:18dB LNA gain; 2:16dB LNA gain; 3:14dB LNA gain
+CONFIG_EXT_LNA_TYPE := 3
+# 0:22dB LNA gain; 1:18dB LNA gain; 2:16dB LNA gain; 3:14dB LNA gain
+CONFIG_EXT_PA_LNA_TYPE :=3
+
+# If Support Dynamic Freqence Selection ?
+CONFIG_RTL_DFS_SUPPORT :=n
+
+# Number of Virtual AP ?
+ifeq ($(RTL8192CD_NUM_VWLAN),)
+RTL8192CD_NUM_VWLAN := 0
+endif
+
+# If Support Client Mode ?
+CONFIG_RTL_CLIENT_MODE_SUPPORT :=y
+CONFIG_RTL_REPEATER_MODE_SUPPORT :=y
+CONFIG_RTL_SUPPORT_MULTI_PROFILE :=n
+CONFIG_RTL_MULTI_CLONE_SUPPORT :=n
+
+# If Support Wireless Distribution System ?
+CONFIG_RTL_WDS_SUPPORT :=n
+
+# If Enable On-Chip EFuse ?
+CONFIG_ENABLE_EFUSE :=y
+
+# If support non-HAL Chip ? (92C, 92D, 88E, 8812)
+CONFIG_RTL_WLAN_HAL_NOT_EXIST :=n
+
+CONFIG_RTL_COMAPI_CFGFILE :=n
+CONFIG_RTL_COMAPI_WLTOOLS :=n
+CONFIG_MP_PSD_SUPPORT :=n
+CONFIG_RTL_P2P_SUPPORT :=n
+CONFIG_RTL_MESH_SUPPORT :=n
+CONFIG_RTL_WLAN_DOS_FILTER :=n
+CONFIG_TXPWR_LMT :=n
+CONFIG_TX_BEAMFORMING :=n
+CONFIG_RTL_WPS2_SUPPORT :=y
+CONFIG_POWER_SAVE :=y
+CONFIG_DPK :=n
+
+# [WPA Supplicant] 0:None; 1:wext; 2:nl80211
+CONFIG_WPAS_CLI :=0
+CONFIG_NL80211_AP :=n
+
+# Select WLan PHY Clock Source, 40MHz/25MHz. For WLan module, we use 40MHz usually
+CONFIG_PHY_EAT_40MHZ :=y
+CONFIG_PHY_WLAN_EAT_40MHZ :=y
+
+CONFIG_IGMP_SNOOPING_SUPPORT:=y
+CONFIG_MLD_SNOOPING_SUPPORT:=y
+
+# 802.11w support
+CONFIG_RTL_11W_SUPPORT:=y
+CONFIG_RTL_11W_CLI_SUPPORT:=n
+
+# 802.11r support
+CONFIG_RTL_11R_SUPPORT:=n
+
+#802.11k support
+CONFIG_RTL_DOT11K_SUPPORT:=n
+
+#802.11v support
+CONFIG_RTL_11V_SUPPORT:=n
+
+# Thermal Control
+CONFIG_THERMAL_CONTROL:=n
+CONFIG_THERMAL_CONTROL_DAEMON:=n
+
+CONFIG_BEAMFORMING_SUPPORT:=n
+
+CONFIG_RTK_SMART_ROAMING:=n
+
+CONFIG_SMP_LOAD_BALANCE_SUPPORT:=n
+
+CONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT=n
+
+# Airtime Fairness support
+CONFIG_RTL_ATM_SUPPORT:=n
+
+# WPA3 support
+CONFIG_RTL_WPA3_SUPPORT:=y
+
+# Band Steering support
+CONFIG_RTL_STA_CONTROL_SUPPORT:=n
+
+######## Don't Modify Following Code ########
+
+EXTRA_CFLAGS += -DCONFIG_RTL8192CD
+
+ifeq ($(RTK_BSP),n)
+ EXTRA_CFLAGS += -DNOT_RTK_BSP
+ EXTRA_CFLAGS += -DCONFIG_WIRELESS_LAN_MODULE
+endif
+
+ifeq ($(CONFIG_RTL_ATM_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_ATM_SUPPORT
+endif
+
+ifeq ($(CONFIG_DPK),y)
+ EXTRA_CFLAGS += -DCONFIG_RF_DPK_SETTING_SUPPORT
+endif
+
+ifeq ($(CONFIG_PCI_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_PCI_HCI
+endif
+
+ifeq ($(CONFIG_USB_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_USB_HCI
+endif
+
+ifeq ($(CONFIG_SDIO_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_SDIO_HCI
+ # 0: No AP power saving 1: RF off 2: beacon offload
+ CONFIG_AP_PS := 0
+endif
+
+ifeq ($(CONFIG_RTL_92C_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_92C_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_92D_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_92D_SUPPORT
+ #EXTRA_CFLAGS += -DCONFIG_RTL_92D_DMDP
+endif
+
+ifeq ($(CONFIG_RTL_88E_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_88E_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_8812_SUPPORT),y)
+# CONFIG_RTL_DFS_SUPPORT :=n
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_8812_SUPPORT
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_8814_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8814AE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814AE
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_92E_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8192EE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192EE
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_92F_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8192FE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192FE
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_8822_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8822BE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ CONFIG_WLAN_MACHAL_API_V0 :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8822BE
+# ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+# EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+# endif
+endif
+
+ifeq ($(CONFIG_RTL_8822C_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8822CE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ CONFIG_WLAN_MACHAL_API_V0 :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8822CE
+# ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+# EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+# endif
+endif
+
+ifeq ($(CONFIG_RTL_8821_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8821CE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ CONFIG_WLAN_MACHAL_API_V0 :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8821CE
+
+ ifeq ($(CONFIG_WLAN_HAL_8821CE), y)
+# EXTRA_CFLAGS += -DCONFIG_PCIE_POWER_SAVING
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_8814B_SUPPORT),y)
+ CONFIG_RTL_OFFLOAD_DRIVER :=y
+ CONFIG_ENABLE_EFUSE :=n
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8814BE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ CONFIG_WLAN_MACHAL_API_V1 :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814BE
+endif
+
+ifeq ($(CONFIG_RTL_8812F_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8812FE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ CONFIG_WLAN_MACHAL_API_V0 :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8812FE
+# ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+# EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+# endif
+endif
+
+ifeq ($(CONFIG_WLAN_HAL),y)
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL
+
+ ifeq ($(CONFIG_WLAN_HAL_88XX),y)
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_88XX
+ endif
+
+ ifeq ($(CONFIG_WLAN_HAL_8881A),y)
+ RTL_WLAN_DATA_DIR := WlanHAL/Data/8881A
+ endif
+else
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST
+endif
+
+ifeq ($(CONFIG_WLAN_MACHAL_API),y)
+ EXTRA_CFLAGS += -DCONFIG_WLAN_MACHAL_API
+endif
+
+ifeq ($(CONFIG_RTL_WLAN_HAL_NOT_EXIST),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST
+endif
+
+ifeq ($(CONFIG_RTL_ODM_WLAN_DRIVER),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_ODM_WLAN_DRIVER
+endif
+
+# TODO: We need to assign which NIC is using external PA and LNA
+ifeq ($(CONFIG_EXT_PA),y)
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_PA
+ EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_PA
+endif
+
+ifeq ($(CONFIG_EXT_LNA),y)
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_LNA
+ EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_LNA
+ ifeq ($(CONFIG_EXT_PA),y)
+ EXTRA_CFLAGS += -DEXT_LNA_TYPE=$(CONFIG_EXT_PA_LNA_TYPE)
+ else
+ EXTRA_CFLAGS += -DEXT_LNA_TYPE=$(CONFIG_EXT_LNA_TYPE)
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_DFS_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_DFS_SUPPORT
+endif
+
+ifneq ($(RTL8192CD_NUM_VWLAN),0)
+ EXTRA_CFLAGS += -DCONFIG_RTL_VAP_SUPPORT
+endif
+EXTRA_CFLAGS += -DRTL8192CD_NUM_VWLAN=$(RTL8192CD_NUM_VWLAN)
+
+ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_CLIENT_MODE_SUPPORT
+else
+ CONFIG_WPAS_CLI :=0
+endif
+
+ifeq ($(CONFIG_RTL_REPEATER_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_REPEATER_MODE_SUPPORT -DMAC_2_PORT
+endif
+
+ifeq ($(CONFIG_RTL_SUPPORT_MULTI_PROFILE),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_SUPPORT_MULTI_PROFILE
+endif
+
+ifeq ($(CONFIG_RTL_MULTI_CLONE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_MULTI_CLONE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_WDS_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WDS_SUPPORT
+endif
+
+ifeq ($(CONFIG_ENABLE_EFUSE),y)
+ EXTRA_CFLAGS += -DCONFIG_ENABLE_EFUSE
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_ENABLE_EFUSE
+endif
+
+ifeq ($(CONFIG_RTL_COMAPI_CFGFILE),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_CFGFILE
+endif
+
+ifeq ($(CONFIG_RTL_COMAPI_WLTOOLS),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS
+endif
+
+ifeq ($(CONFIG_WPAS_CLI),1) # wext
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS -DWIFI_WPAS_CLI
+ ifeq ($(CONFIG_NL80211_AP),y)
+ EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE -DNON_NL80211_WPAS
+ endif
+else
+ifeq ($(CONFIG_WPAS_CLI),2) # nl80211
+ EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE
+ ifeq ($(CONFIG_NL80211_AP),n)
+ EXTRA_CFLAGS += -DNON_NL80211_AP
+ endif
+else
+ ifeq ($(CONFIG_NL80211_AP),y)
+ EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE
+ ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DNON_NL80211_WPAS
+ endif
+ endif
+endif
+endif
+
+ifeq ($(CONFIG_MP_PSD_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_MP_PSD_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_P2P_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_P2P_SUPPORT
+endif
+
+ifeq ($(CONFIG_TXPWR_LMT),y)
+ EXTRA_CFLAGS += -DCONFIG_TXPWR_LMT
+endif
+
+ifeq ($(CONFIG_RTL_MESH_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_MESH_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_WLAN_DOS_FILTER),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_DOS_FILTER
+endif
+
+ifeq ($(CONCURRENT_MODE),y)
+ EXTRA_CFLAGS += -DCONCURRENT_MODE
+endif
+
+ifeq ($(CONFIG_RTL8190_PRIV_SKB),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL8190_PRIV_SKB
+endif
+
+ifeq ($(CONFIG_RTL_WPS2_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WPS2_SUPPORT
+endif
+
+ifeq ($(CONFIG_TX_BEAMFORMING),y)
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_TX_BEAMFORMING
+endif
+
+ifeq ($(CONFIG_PHY_EAT_40MHZ),y)
+ EXTRA_CFLAGS += -DCONFIG_PHY_EAT_40MHZ
+endif
+ifeq ($(CONFIG_PHY_WLAN_EAT_40MHZ),y)
+ EXTRA_CFLAGS += -DCONFIG_PHY_WLAN_EAT_40MHZ
+endif
+
+ifeq ($(CONFIG_RTL_WAPI_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WAPI_SUPPORT
+endif
+
+ifeq ($(CONFIG_IGMP_SNOOPING_SUPPORT),y)
+ EXTRA_CFLAGS += -D_FULLY_WIFI_IGMP_SNOOPING_SUPPORT_
+endif
+
+ifeq ($(CONFIG_MLD_SNOOPING_SUPPORT),y)
+ EXTRA_CFLAGS += -D_FULLY_WIFI_MLD_SNOOPING_SUPPORT_
+endif
+
+ifeq ($(CONFIG_POWER_SAVE),y)
+ EXTRA_CFLAGS += -DSDIO_AP_OFFLOAD -DCONFIG_POWER_SAVE
+endif
+
+ifeq ($(CONFIG_RTL_11W_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_11W_CLI_SUPPORT),y)
+ ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_11R_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11R_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_11V_SUPPORT),y)
+ #Enable 11k if 11v is enabled
+ EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT
+ EXTRA_CFLAGS += -DCONFIG_RTL_11V_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_DOT11K_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTK_SMART_ROAMING),y)
+ EXTRA_CFLAGS += -DCONFIG_RTK_SMART_ROAMING
+endif
+
+ifeq ($(CONFIG_SMP_LOAD_BALANCE_SUPPORT),y)
+ EXTRA_CFLAGS += -DSMP_LOAD_BALANCE_SUPPORT
+endif
+
+ifeq ($(CONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_OFFLOAD_DRIVER),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_OFFLOAD_DRIVER
+endif
+
+ifeq ($(CONFIG_RTL_WPA3_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WPA3_SUPPORT
+ ifeq ($(CONFIG_RTL_11W_SUPPORT),n)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT
+ endif
+ ifeq ($(CONFIG_RTL_11W_CLI_SUPPORT),n)
+ ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ ifneq ($(CONFIG_WPAS_CLI),1)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT
+ endif
+ endif
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_STA_CONTROL_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_STA_CONTROL_SUPPORT
+endif
diff --git a/package/kernel/realtek-wl/files/config_mac80211.mk b/package/kernel/realtek-wl/files/config_mac80211.mk
new file mode 100644
index 0000000..79b6114
--- /dev/null
+++ b/package/kernel/realtek-wl/files/config_mac80211.mk
@@ -0,0 +1,375 @@
+#
+# RTL WLan AP Driver All In One Configure
+#
+
+#
+# Wireless LAN
+#
+
+# Driver Module/Build In Driver ==> :=m/:=y
+CONFIG_RTL8192CD :=m
+
+# RTK Platform ?
+RTK_BSP :=n
+
+# Select Support WLan Chip
+CONFIG_RTL_92C_SUPPORT :=n
+CONFIG_RTL_92D_SUPPORT :=n
+CONFIG_RTL_88E_SUPPORT :=n
+CONFIG_RTL_92E_SUPPORT :=y
+CONFIG_RTL_8812_SUPPORT :=n
+CONFIG_RTL_8814_SUPPORT :=n
+
+CONCURRENT_MODE :=n
+
+# Bus Interface Type, PCIE / USB / SDIO
+CONFIG_PCI_HCI :=n
+CONFIG_USB_HCI :=n
+CONFIG_SDIO_HCI :=y
+
+# RTL Platform Support
+CONFIG_RTL_819X :=n
+CONFIG_RTL_819XD :=n
+
+# Driver Configuration
+CONFIG_RTL8190_PRIV_SKB :=n
+CONFIG_PREALLOC_MODULE :=n
+
+CONFIG_RTL_WAPI_SUPPORT :=n
+
+# If Use External PA, LNA ?
+CONFIG_EXT_PA :=n
+CONFIG_EXT_LNA :=n
+# 0:22dB LNA gain; 1:18dB LNA gain; 2:16dB LNA gain; 3:14dB LNA gain
+CONFIG_EXT_LNA_TYPE := 3
+# 0:22dB LNA gain; 1:18dB LNA gain; 2:16dB LNA gain; 3:14dB LNA gain
+CONFIG_EXT_PA_LNA_TYPE :=3
+
+# If Support Dynamic Freqence Selection ?
+CONFIG_RTL_DFS_SUPPORT :=n
+
+# Number of Virtual AP ?
+ifeq ($(RTL8192CD_NUM_VWLAN),)
+RTL8192CD_NUM_VWLAN := 0
+endif
+
+# If Support Client Mode ?
+CONFIG_RTL_CLIENT_MODE_SUPPORT :=y
+CONFIG_RTL_REPEATER_MODE_SUPPORT :=y
+CONFIG_RTL_SUPPORT_MULTI_PROFILE :=n
+CONFIG_RTL_MULTI_CLONE_SUPPORT :=n
+
+# If Support Wireless Distribution System ?
+CONFIG_RTL_WDS_SUPPORT :=n
+
+# If Enable On-Chip EFuse ?
+CONFIG_ENABLE_EFUSE :=y
+
+# If support non-HAL Chip ? (92C, 92D, 88E, 8812)
+CONFIG_RTL_WLAN_HAL_NOT_EXIST :=n
+
+CONFIG_MP_PSD_SUPPORT :=n
+CONFIG_RTL_P2P_SUPPORT :=n
+CONFIG_RTL_MESH_SUPPORT :=n
+CONFIG_RTL_WLAN_DOS_FILTER :=n
+CONFIG_TXPWR_LMT :=n
+CONFIG_RTL_WPS2_SUPPORT :=y
+CONFIG_POWER_SAVE :=y
+
+CONFIG_RTL_COMAPI_CFGFILE :=n
+CONFIG_RTL_COMAPI_WLTOOLS :=n
+# [WPA Supplicant] 0:None; 1:wext; 2:nl80211
+CONFIG_WPAS_CLI :=2
+CONFIG_NL80211_AP :=y
+
+# Select WLan PHY Clock Source, 40MHz/25MHz. For WLan module, we use 40MHz usually
+CONFIG_PHY_EAT_40MHZ :=y
+CONFIG_PHY_WLAN_EAT_40MHZ :=y
+
+CONFIG_IGMP_SNOOPING_SUPPORT:=y
+CONFIG_MLD_SNOOPING_SUPPORT:=y
+
+# 802.11w support
+CONFIG_RTL_11W_SUPPORT:=n
+
+# 802.11k support
+CONFIG_RTL_DOT11K_SUPPORT:=n
+
+# 802.11v support
+CONFIG_RTL_11V_SUPPORT:=n
+
+# 802.11r support
+CONFIG_RTL_11R_SUPPORT:=n
+
+# VLAN tag support
+CONFIG_RTL_VLAN_SUPPORT:=n
+
+# WPA3 support
+CONFIG_RTL_WPA3_SUPPORT :=y
+
+######## Don't Modify Following Code ########
+
+EXTRA_CFLAGS += -DCONFIG_RTL8192CD
+
+ifeq ($(RTK_BSP),n)
+ EXTRA_CFLAGS += -DNOT_RTK_BSP
+ EXTRA_CFLAGS += -DCONFIG_WIRELESS_LAN_MODULE
+endif
+
+ifeq ($(CONFIG_PCI_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_PCI_HCI
+endif
+
+ifeq ($(CONFIG_USB_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_USB_HCI
+endif
+
+ifeq ($(CONFIG_SDIO_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_SDIO_HCI
+ # 0: No AP power saving 1: RF off 2: beacon offload
+ CONFIG_AP_PS := 0
+endif
+
+ifeq ($(CONFIG_RTL_92C_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_92C_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_92D_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_92D_SUPPORT
+ #EXTRA_CFLAGS += -DCONFIG_RTL_92D_DMDP
+endif
+
+ifeq ($(CONFIG_RTL_88E_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_88E_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_8812_SUPPORT),y)
+# CONFIG_RTL_DFS_SUPPORT :=n
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_8812_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_8814_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8814AE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814AE
+endif
+
+ifeq ($(CONFIG_RTL_92E_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8192EE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192EE
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_WLAN_HAL),y)
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL
+
+ ifeq ($(CONFIG_WLAN_HAL_88XX),y)
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_88XX
+ endif
+
+ ifeq ($(CONFIG_WLAN_HAL_8881A),y)
+ RTL_WLAN_DATA_DIR := WlanHAL/Data/8881A
+ endif
+else
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST
+endif
+
+ifeq ($(CONFIG_RTL_WLAN_HAL_NOT_EXIST),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST
+endif
+
+ifeq ($(CONFIG_RTL_ODM_WLAN_DRIVER),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_ODM_WLAN_DRIVER
+endif
+
+# TODO: We need to assign which NIC is using external PA and LNA
+ifeq ($(CONFIG_EXT_PA),y)
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_PA
+ EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_PA
+endif
+
+ifeq ($(CONFIG_EXT_LNA),y)
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_LNA
+ EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_LNA
+ ifeq ($(CONFIG_EXT_PA),y)
+ EXTRA_CFLAGS += -DEXT_LNA_TYPE=$(CONFIG_EXT_PA_LNA_TYPE)
+ else
+ EXTRA_CFLAGS += -DEXT_LNA_TYPE=$(CONFIG_EXT_LNA_TYPE)
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_DFS_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_DFS_SUPPORT
+endif
+
+ifneq ($(RTL8192CD_NUM_VWLAN),0)
+ EXTRA_CFLAGS += -DCONFIG_RTL_VAP_SUPPORT
+endif
+EXTRA_CFLAGS += -DRTL8192CD_NUM_VWLAN=$(RTL8192CD_NUM_VWLAN)
+
+ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_CLIENT_MODE_SUPPORT
+else
+ CONFIG_WPAS_CLI :=0
+endif
+
+ifeq ($(CONFIG_RTL_REPEATER_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_REPEATER_MODE_SUPPORT -DSDIO_2_PORT
+endif
+
+ifeq ($(CONFIG_RTL_SUPPORT_MULTI_PROFILE),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_SUPPORT_MULTI_PROFILE
+endif
+
+ifeq ($(CONFIG_RTL_MULTI_CLONE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_MULTI_CLONE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_WDS_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WDS_SUPPORT
+endif
+
+ifeq ($(CONFIG_ENABLE_EFUSE),y)
+ EXTRA_CFLAGS += -DCONFIG_ENABLE_EFUSE
+endif
+
+ifeq ($(CONFIG_RTL_COMAPI_CFGFILE),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_CFGFILE
+endif
+
+ifeq ($(CONFIG_RTL_COMAPI_WLTOOLS),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS
+endif
+
+ifeq ($(CONFIG_WPAS_CLI),1) # wext
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS -DWIFI_WPAS_CLI
+ ifeq ($(CONFIG_NL80211_AP),y)
+ EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE -DNON_NL80211_WPAS
+ endif
+else
+ifeq ($(CONFIG_WPAS_CLI),2) # nl80211
+ EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE
+ ifeq ($(CONFIG_NL80211_AP),n)
+ EXTRA_CFLAGS += -DNON_NL80211_AP
+ endif
+else
+ ifeq ($(CONFIG_NL80211_AP),y)
+ EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE
+ ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DNON_NL80211_WPAS
+ endif
+ endif
+endif
+endif
+
+ifeq ($(CONFIG_MP_PSD_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_MP_PSD_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_P2P_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_P2P_SUPPORT
+endif
+
+ifeq ($(CONFIG_TXPWR_LMT),y)
+ EXTRA_CFLAGS += -DCONFIG_TXPWR_LMT
+endif
+
+ifeq ($(CONFIG_RTL_MESH_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_MESH_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_WLAN_DOS_FILTER),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_DOS_FILTER
+endif
+
+ifeq ($(CONCURRENT_MODE),y)
+ EXTRA_CFLAGS += -DCONCURRENT_MODE
+endif
+
+ifeq ($(CONFIG_RTL8190_PRIV_SKB),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL8190_PRIV_SKB
+endif
+
+ifeq ($(CONFIG_RTL_WPS2_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WPS2_SUPPORT
+endif
+
+ifeq ($(CONFIG_PHY_EAT_40MHZ),y)
+ EXTRA_CFLAGS += -DCONFIG_PHY_EAT_40MHZ
+endif
+ifeq ($(CONFIG_PHY_WLAN_EAT_40MHZ),y)
+ EXTRA_CFLAGS += -DCONFIG_PHY_WLAN_EAT_40MHZ
+endif
+
+ifeq ($(CONFIG_RTL_WAPI_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WAPI_SUPPORT
+endif
+
+ifeq ($(CONFIG_IGMP_SNOOPING_SUPPORT),y)
+ EXTRA_CFLAGS += -D_FULLY_WIFI_IGMP_SNOOPING_SUPPORT_
+endif
+
+ifeq ($(CONFIG_MLD_SNOOPING_SUPPORT),y)
+ EXTRA_CFLAGS += -D_FULLY_WIFI_MLD_SNOOPING_SUPPORT_
+endif
+
+ifeq ($(CONFIG_POWER_SAVE),y)
+ EXTRA_CFLAGS += -DSDIO_AP_OFFLOAD -DCONFIG_POWER_SAVE
+endif
+
+ifeq ($(CONFIG_PREALLOC_MODULE),y)
+ EXTRA_CFLAGS += -DUSE_PREALLOC_MODULE
+endif
+
+ifeq ($(CONFIG_RTL_11W_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT
+ ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_DOT11K_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_11V_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11V_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_11R_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11R_SUPPORT
+endif
+
+ifeq ($(CONFIG_WIFI_SNIFFER),y)
+ EXTRA_CFLAGS += -DWIFI_SNIFFER
+endif
+
+ifeq ($(CONFIG_RTL_VLAN_SUPPORT),y)
+ EXTRA_CFLAGS += -DNOT_RTK_BSP_VLAN
+endif
+
+ifeq ($(CONFIG_RTL_WPA3_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WPA3_SUPPORT
+ ifeq ($(CONFIG_RTL_11W_SUPPORT),n)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT
+ ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ ifneq ($(CONFIG_WPAS_CLI),1)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT
+ endif
+ endif
+ endif
+endif
+
diff --git a/package/kernel/realtek-wl/files/config_mac80211_rtl8822bs.mk b/package/kernel/realtek-wl/files/config_mac80211_rtl8822bs.mk
new file mode 100644
index 0000000..31d46d3
--- /dev/null
+++ b/package/kernel/realtek-wl/files/config_mac80211_rtl8822bs.mk
@@ -0,0 +1,398 @@
+#
+# RTL WLan AP Driver All In One Configure
+#
+
+#
+# Wireless LAN
+#
+
+# Driver Module/Build In Driver ==> :=m/:=y
+CONFIG_RTL8192CD :=m
+
+# RTK Platform ?
+RTK_BSP :=n
+
+# Select Support WLan Chip
+CONFIG_RTL_92C_SUPPORT :=n
+CONFIG_RTL_92D_SUPPORT :=n
+CONFIG_RTL_88E_SUPPORT :=n
+CONFIG_RTL_92E_SUPPORT :=n
+CONFIG_RTL_8812_SUPPORT :=n
+CONFIG_RTL_8814_SUPPORT :=n
+CONFIG_RTL_8822_SUPPORT :=y
+CONFIG_RTL_8821_SUPPORT :=n
+
+CONCURRENT_MODE :=n
+
+# Bus Interface Type, PCIE / USB / SDIO
+CONFIG_PCI_HCI :=n
+CONFIG_USB_HCI :=n
+CONFIG_SDIO_HCI :=y
+
+# RTL Platform Support
+CONFIG_RTL_819X :=n
+CONFIG_RTL_819XD :=n
+
+# Driver Configuration
+CONFIG_RTL8190_PRIV_SKB :=n
+CONFIG_PREALLOC_MODULE :=n
+
+CONFIG_RTL_WAPI_SUPPORT :=n
+
+# If Use External PA, LNA ?
+CONFIG_EXT_PA :=n
+CONFIG_EXT_LNA :=n
+
+# If Support Dynamic Freqence Selection ?
+CONFIG_RTL_DFS_SUPPORT :=n
+
+# Number of Virtual AP ?
+ifeq ($(RTL8192CD_NUM_VWLAN),)
+RTL8192CD_NUM_VWLAN := 0
+endif
+
+# If Support Client Mode ?
+CONFIG_RTL_CLIENT_MODE_SUPPORT :=y
+CONFIG_RTL_REPEATER_MODE_SUPPORT :=y
+CONFIG_RTL_SUPPORT_MULTI_PROFILE :=n
+CONFIG_RTL_MULTI_CLONE_SUPPORT :=n
+
+CONFIG_RTL_SUPPORT_NL80211 :=n
+CONFIG_OPENWRT_SDK :=n
+# If Support Wireless Distribution System ?
+CONFIG_RTL_WDS_SUPPORT :=n
+
+# If Enable On-Chip EFuse ?
+CONFIG_ENABLE_EFUSE :=y
+
+# If support non-HAL Chip ? (92C, 92D, 88E, 8812)
+CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+
+
+CONFIG_RTL_COMAPI_CFGFILE :=n
+CONFIG_RTL_COMAPI_WLTOOLS :=n
+CONFIG_MP_PSD_SUPPORT :=n
+CONFIG_RTL_P2P_SUPPORT :=n
+CONFIG_RTL_MESH_SUPPORT :=n
+CONFIG_RTL_WLAN_DOS_FILTER :=n
+CONFIG_TXPWR_LMT :=n
+CONFIG_RTL_WPS2_SUPPORT :=y
+CONFIG_POWER_SAVE :=y
+
+# [WPA Supplicant] 0:None; 1:wext; 2:nl80211
+CONFIG_WPAS_CLI :=2
+CONFIG_NL80211_AP :=y
+
+# Select WLan PHY Clock Source, 40MHz/25MHz. For WLan module, we use 40MHz usually
+CONFIG_PHY_EAT_40MHZ :=y
+CONFIG_PHY_WLAN_EAT_40MHZ :=y
+
+CONFIG_IGMP_SNOOPING_SUPPORT:=y
+CONFIG_MLD_SNOOPING_SUPPORT:=y
+
+# 802.11w support
+CONFIG_RTL_11W_SUPPORT:=n
+
+# 802.11k support
+CONFIG_RTL_DOT11K_SUPPORT:=n
+
+# 802.11v support
+CONFIG_RTL_11V_SUPPORT:=n
+
+# 802.11r support
+CONFIG_RTL_11R_SUPPORT:=n
+
+CONFIG_BEAMFORMING_SUPPORT:=n
+
+CONFIG_RTK_SMART_ROAMING:=n
+
+# WPA3 support
+CONFIG_RTL_WPA3_SUPPORT:=n
+
+######## Don't Modify Following Code ########
+
+EXTRA_CFLAGS += -DCONFIG_RTL8192CD
+
+ifeq ($(RTK_BSP),n)
+ EXTRA_CFLAGS += -DNOT_RTK_BSP
+ EXTRA_CFLAGS += -DCONFIG_WIRELESS_LAN_MODULE
+endif
+
+ifeq ($(CONFIG_PCI_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_PCI_HCI
+endif
+
+ifeq ($(CONFIG_USB_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_USB_HCI
+endif
+
+ifeq ($(CONFIG_SDIO_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_SDIO_HCI
+ # 0: No AP power saving 1: RF off 2: beacon offload
+ CONFIG_AP_PS := 0
+endif
+
+ifeq ($(CONFIG_RTL_92C_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_92C_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_92D_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_92D_SUPPORT
+ #EXTRA_CFLAGS += -DCONFIG_RTL_92D_DMDP
+endif
+
+ifeq ($(CONFIG_RTL_88E_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_88E_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_8812_SUPPORT),y)
+# CONFIG_RTL_DFS_SUPPORT :=n
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_8812_SUPPORT
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_8814_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8814AE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814AE
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_92E_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8192EE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192EE
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_8822_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8822BE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8822BE -DCONFIG_WLAN_MACHAL_API
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_8821_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8821CE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8821CE -DCONFIG_WLAN_MACHAL_API
+
+ ifeq ($(CONFIG_WLAN_HAL_8821CE), y)
+# EXTRA_CFLAGS += -DCONFIG_PCIE_POWER_SAVING
+ endif
+endif
+
+ifeq ($(CONFIG_WLAN_HAL),y)
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL
+
+ ifeq ($(CONFIG_WLAN_HAL_88XX),y)
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_88XX
+ endif
+
+ ifeq ($(CONFIG_WLAN_HAL_8881A),y)
+ RTL_WLAN_DATA_DIR := WlanHAL/Data/8881A
+ endif
+else
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST
+endif
+
+ifeq ($(CONFIG_RTL_WLAN_HAL_NOT_EXIST),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST
+endif
+
+ifeq ($(CONFIG_RTL_ODM_WLAN_DRIVER),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_ODM_WLAN_DRIVER
+endif
+
+# TODO: We need to assign which NIC is using external PA and LNA
+ifeq ($(CONFIG_EXT_PA),y)
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_PA
+ EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_PA
+endif
+
+ifeq ($(CONFIG_EXT_LNA),y)
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_LNA
+ EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_LNA
+endif
+
+ifeq ($(CONFIG_RTL_DFS_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_DFS_SUPPORT
+endif
+
+ifneq ($(RTL8192CD_NUM_VWLAN),0)
+ EXTRA_CFLAGS += -DCONFIG_RTL_VAP_SUPPORT
+endif
+EXTRA_CFLAGS += -DRTL8192CD_NUM_VWLAN=$(RTL8192CD_NUM_VWLAN)
+
+ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_CLIENT_MODE_SUPPORT
+else
+ CONFIG_WPAS_CLI :=0
+endif
+
+ifeq ($(CONFIG_RTL_SUPPORT_NL80211),y)
+ EXTRA_CFLAGS += -DCONFIG_OPENWRT_SDK
+ EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE
+ EXTRA_CFLAGS += -DRTK_NRS_NL80211
+endif
+
+ifeq ($(CONFIG_RTL_REPEATER_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_REPEATER_MODE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_SUPPORT_MULTI_PROFILE),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_SUPPORT_MULTI_PROFILE
+endif
+
+ifeq ($(CONFIG_RTL_MULTI_CLONE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_MULTI_CLONE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_WDS_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WDS_SUPPORT
+endif
+
+ifeq ($(CONFIG_ENABLE_EFUSE),y)
+ EXTRA_CFLAGS += -DCONFIG_ENABLE_EFUSE
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_ENABLE_EFUSE
+endif
+
+ifeq ($(CONFIG_RTL_COMAPI_CFGFILE),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_CFGFILE
+endif
+
+ifeq ($(CONFIG_RTL_COMAPI_WLTOOLS),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS
+endif
+
+ifeq ($(CONFIG_WPAS_CLI),1) # wext
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS -DWIFI_WPAS_CLI
+ ifeq ($(CONFIG_NL80211_AP),y)
+ EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE -DNON_NL80211_WPAS
+ endif
+else
+ifeq ($(CONFIG_WPAS_CLI),2) # nl80211
+ EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE
+ ifeq ($(CONFIG_NL80211_AP),n)
+ EXTRA_CFLAGS += -DNON_NL80211_AP
+ endif
+else
+ ifeq ($(CONFIG_NL80211_AP),y)
+ EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE -DNON_NL80211_WPAS
+ endif
+endif
+endif
+
+ifeq ($(CONFIG_MP_PSD_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_MP_PSD_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_P2P_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_P2P_SUPPORT
+endif
+
+ifeq ($(CONFIG_TXPWR_LMT),y)
+ EXTRA_CFLAGS += -DCONFIG_TXPWR_LMT
+endif
+
+ifeq ($(CONFIG_RTL_MESH_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_MESH_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_WLAN_DOS_FILTER),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_DOS_FILTER
+endif
+
+ifeq ($(CONCURRENT_MODE),y)
+ EXTRA_CFLAGS += -DCONCURRENT_MODE
+endif
+
+ifeq ($(CONFIG_RTL8190_PRIV_SKB),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL8190_PRIV_SKB
+endif
+
+ifeq ($(CONFIG_RTL_WPS2_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WPS2_SUPPORT
+endif
+
+ifeq ($(CONFIG_PHY_EAT_40MHZ),y)
+ EXTRA_CFLAGS += -DCONFIG_PHY_EAT_40MHZ
+endif
+ifeq ($(CONFIG_PHY_WLAN_EAT_40MHZ),y)
+ EXTRA_CFLAGS += -DCONFIG_PHY_WLAN_EAT_40MHZ
+endif
+
+ifeq ($(CONFIG_RTL_WAPI_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WAPI_SUPPORT
+endif
+
+ifeq ($(CONFIG_IGMP_SNOOPING_SUPPORT),y)
+ EXTRA_CFLAGS += -D_FULLY_WIFI_IGMP_SNOOPING_SUPPORT_
+endif
+
+ifeq ($(CONFIG_MLD_SNOOPING_SUPPORT),y)
+ EXTRA_CFLAGS += -D_FULLY_WIFI_MLD_SNOOPING_SUPPORT_
+endif
+
+ifeq ($(CONFIG_POWER_SAVE),y)
+ EXTRA_CFLAGS += -DSDIO_AP_OFFLOAD -DCONFIG_POWER_SAVE
+endif
+
+ifeq ($(CONFIG_RTL_11W_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT
+ ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_DOT11K_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_11V_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11V_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_11R_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11R_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTK_SMART_ROAMING),y)
+ EXTRA_CFLAGS += -DCONFIG_RTK_SMART_ROAMING
+endif
+
+ifeq ($(CONFIG_RTL_WPA3_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WPA3_SUPPORT
+ ifeq ($(CONFIG_RTL_11W_SUPPORT),n)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT
+ ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ ifeq ($(CONFIG_WPAS_CLI),0)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT
+ endif
+ endif
+ endif
+endif
diff --git a/package/kernel/realtek-wl/files/config_wext.mk b/package/kernel/realtek-wl/files/config_wext.mk
new file mode 100644
index 0000000..ea322cb
--- /dev/null
+++ b/package/kernel/realtek-wl/files/config_wext.mk
@@ -0,0 +1,375 @@
+#
+# RTL WLan AP Driver All In One Configure
+#
+
+#
+# Wireless LAN
+#
+
+# Driver Module/Build In Driver ==> :=m/:=y
+CONFIG_RTL8192CD :=m
+
+# RTK Platform ?
+RTK_BSP :=n
+
+# Select Support WLan Chip
+CONFIG_RTL_92C_SUPPORT :=n
+CONFIG_RTL_92D_SUPPORT :=n
+CONFIG_RTL_88E_SUPPORT :=n
+CONFIG_RTL_92E_SUPPORT :=y
+CONFIG_RTL_8812_SUPPORT :=n
+CONFIG_RTL_8814_SUPPORT :=n
+
+CONCURRENT_MODE :=n
+
+# Bus Interface Type, PCIE / USB / SDIO
+CONFIG_PCI_HCI :=n
+CONFIG_USB_HCI :=n
+CONFIG_SDIO_HCI :=y
+
+# RTL Platform Support
+CONFIG_RTL_819X :=n
+CONFIG_RTL_819XD :=n
+
+# Driver Configuration
+CONFIG_RTL8190_PRIV_SKB :=n
+CONFIG_PREALLOC_MODULE :=n
+
+CONFIG_RTL_WAPI_SUPPORT :=n
+
+# If Use External PA, LNA ?
+CONFIG_EXT_PA :=n
+CONFIG_EXT_LNA :=n
+# 0:22dB LNA gain; 1:18dB LNA gain; 2:16dB LNA gain; 3:14dB LNA gain
+CONFIG_EXT_LNA_TYPE := 3
+# 0:22dB LNA gain; 1:18dB LNA gain; 2:16dB LNA gain; 3:14dB LNA gain
+CONFIG_EXT_PA_LNA_TYPE :=3
+
+# If Support Dynamic Freqence Selection ?
+CONFIG_RTL_DFS_SUPPORT :=n
+
+# Number of Virtual AP ?
+ifeq ($(RTL8192CD_NUM_VWLAN),)
+RTL8192CD_NUM_VWLAN := 0
+endif
+
+# If Support Client Mode ?
+CONFIG_RTL_CLIENT_MODE_SUPPORT :=y
+CONFIG_RTL_REPEATER_MODE_SUPPORT :=y
+CONFIG_RTL_SUPPORT_MULTI_PROFILE :=n
+CONFIG_RTL_MULTI_CLONE_SUPPORT :=n
+
+# If Support Wireless Distribution System ?
+CONFIG_RTL_WDS_SUPPORT :=n
+
+# If Enable On-Chip EFuse ?
+CONFIG_ENABLE_EFUSE :=y
+
+# If support non-HAL Chip ? (92C, 92D, 88E, 8812)
+CONFIG_RTL_WLAN_HAL_NOT_EXIST :=n
+
+CONFIG_MP_PSD_SUPPORT :=n
+CONFIG_RTL_P2P_SUPPORT :=n
+CONFIG_RTL_MESH_SUPPORT :=n
+CONFIG_RTL_WLAN_DOS_FILTER :=n
+CONFIG_TXPWR_LMT :=n
+CONFIG_RTL_WPS2_SUPPORT :=y
+CONFIG_POWER_SAVE :=y
+
+CONFIG_RTL_COMAPI_CFGFILE :=n
+CONFIG_RTL_COMAPI_WLTOOLS :=n
+# [WPA Supplicant] 0:None; 1:wext; 2:nl80211
+CONFIG_WPAS_CLI :=1
+CONFIG_NL80211_AP :=n
+
+# Select WLan PHY Clock Source, 40MHz/25MHz. For WLan module, we use 40MHz usually
+CONFIG_PHY_EAT_40MHZ :=y
+CONFIG_PHY_WLAN_EAT_40MHZ :=y
+
+CONFIG_IGMP_SNOOPING_SUPPORT:=y
+CONFIG_MLD_SNOOPING_SUPPORT:=y
+
+# 802.11w support
+CONFIG_RTL_11W_SUPPORT:=n
+
+# 802.11k support
+CONFIG_RTL_DOT11K_SUPPORT:=n
+
+# 802.11v support
+CONFIG_RTL_11V_SUPPORT:=n
+
+# 802.11r support
+CONFIG_RTL_11R_SUPPORT:=n
+
+# VLAN tag support
+CONFIG_RTL_VLAN_SUPPORT:=n
+
+# WPA3 support
+CONFIG_RTL_WPA3_SUPPORT :=n
+
+######## Don't Modify Following Code ########
+
+EXTRA_CFLAGS += -DCONFIG_RTL8192CD
+
+ifeq ($(RTK_BSP),n)
+ EXTRA_CFLAGS += -DNOT_RTK_BSP
+ EXTRA_CFLAGS += -DCONFIG_WIRELESS_LAN_MODULE
+endif
+
+ifeq ($(CONFIG_PCI_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_PCI_HCI
+endif
+
+ifeq ($(CONFIG_USB_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_USB_HCI
+endif
+
+ifeq ($(CONFIG_SDIO_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_SDIO_HCI
+ # 0: No AP power saving 1: RF off 2: beacon offload
+ CONFIG_AP_PS := 0
+endif
+
+ifeq ($(CONFIG_RTL_92C_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_92C_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_92D_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_92D_SUPPORT
+ #EXTRA_CFLAGS += -DCONFIG_RTL_92D_DMDP
+endif
+
+ifeq ($(CONFIG_RTL_88E_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_88E_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_8812_SUPPORT),y)
+# CONFIG_RTL_DFS_SUPPORT :=n
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_8812_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_8814_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8814AE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814AE
+endif
+
+ifeq ($(CONFIG_RTL_92E_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8192EE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192EE
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_WLAN_HAL),y)
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL
+
+ ifeq ($(CONFIG_WLAN_HAL_88XX),y)
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_88XX
+ endif
+
+ ifeq ($(CONFIG_WLAN_HAL_8881A),y)
+ RTL_WLAN_DATA_DIR := WlanHAL/Data/8881A
+ endif
+else
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST
+endif
+
+ifeq ($(CONFIG_RTL_WLAN_HAL_NOT_EXIST),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST
+endif
+
+ifeq ($(CONFIG_RTL_ODM_WLAN_DRIVER),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_ODM_WLAN_DRIVER
+endif
+
+# TODO: We need to assign which NIC is using external PA and LNA
+ifeq ($(CONFIG_EXT_PA),y)
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_PA
+ EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_PA
+endif
+
+ifeq ($(CONFIG_EXT_LNA),y)
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_LNA
+ EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_LNA
+ ifeq ($(CONFIG_EXT_PA),y)
+ EXTRA_CFLAGS += -DEXT_LNA_TYPE=$(CONFIG_EXT_PA_LNA_TYPE)
+ else
+ EXTRA_CFLAGS += -DEXT_LNA_TYPE=$(CONFIG_EXT_LNA_TYPE)
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_DFS_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_DFS_SUPPORT
+endif
+
+ifneq ($(RTL8192CD_NUM_VWLAN),0)
+ EXTRA_CFLAGS += -DCONFIG_RTL_VAP_SUPPORT
+endif
+EXTRA_CFLAGS += -DRTL8192CD_NUM_VWLAN=$(RTL8192CD_NUM_VWLAN)
+
+ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_CLIENT_MODE_SUPPORT
+else
+ CONFIG_WPAS_CLI :=0
+endif
+
+ifeq ($(CONFIG_RTL_REPEATER_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_REPEATER_MODE_SUPPORT -DSDIO_2_PORT
+endif
+
+ifeq ($(CONFIG_RTL_SUPPORT_MULTI_PROFILE),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_SUPPORT_MULTI_PROFILE
+endif
+
+ifeq ($(CONFIG_RTL_MULTI_CLONE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_MULTI_CLONE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_WDS_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WDS_SUPPORT
+endif
+
+ifeq ($(CONFIG_ENABLE_EFUSE),y)
+ EXTRA_CFLAGS += -DCONFIG_ENABLE_EFUSE
+endif
+
+ifeq ($(CONFIG_RTL_COMAPI_CFGFILE),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_CFGFILE
+endif
+
+ifeq ($(CONFIG_RTL_COMAPI_WLTOOLS),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS
+endif
+
+ifeq ($(CONFIG_WPAS_CLI),1) # wext
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS -DWIFI_WPAS_CLI
+ ifeq ($(CONFIG_NL80211_AP),y)
+ EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE -DNON_NL80211_WPAS
+ endif
+else
+ifeq ($(CONFIG_WPAS_CLI),2) # nl80211
+ EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE
+ ifeq ($(CONFIG_NL80211_AP),n)
+ EXTRA_CFLAGS += -DNON_NL80211_AP
+ endif
+else
+ ifeq ($(CONFIG_NL80211_AP),y)
+ EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE
+ ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DNON_NL80211_WPAS
+ endif
+ endif
+endif
+endif
+
+ifeq ($(CONFIG_MP_PSD_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_MP_PSD_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_P2P_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_P2P_SUPPORT
+endif
+
+ifeq ($(CONFIG_TXPWR_LMT),y)
+ EXTRA_CFLAGS += -DCONFIG_TXPWR_LMT
+endif
+
+ifeq ($(CONFIG_RTL_MESH_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_MESH_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_WLAN_DOS_FILTER),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_DOS_FILTER
+endif
+
+ifeq ($(CONCURRENT_MODE),y)
+ EXTRA_CFLAGS += -DCONCURRENT_MODE
+endif
+
+ifeq ($(CONFIG_RTL8190_PRIV_SKB),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL8190_PRIV_SKB
+endif
+
+ifeq ($(CONFIG_RTL_WPS2_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WPS2_SUPPORT
+endif
+
+ifeq ($(CONFIG_PHY_EAT_40MHZ),y)
+ EXTRA_CFLAGS += -DCONFIG_PHY_EAT_40MHZ
+endif
+ifeq ($(CONFIG_PHY_WLAN_EAT_40MHZ),y)
+ EXTRA_CFLAGS += -DCONFIG_PHY_WLAN_EAT_40MHZ
+endif
+
+ifeq ($(CONFIG_RTL_WAPI_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WAPI_SUPPORT
+endif
+
+ifeq ($(CONFIG_IGMP_SNOOPING_SUPPORT),y)
+ EXTRA_CFLAGS += -D_FULLY_WIFI_IGMP_SNOOPING_SUPPORT_
+endif
+
+ifeq ($(CONFIG_MLD_SNOOPING_SUPPORT),y)
+ EXTRA_CFLAGS += -D_FULLY_WIFI_MLD_SNOOPING_SUPPORT_
+endif
+
+ifeq ($(CONFIG_POWER_SAVE),y)
+ EXTRA_CFLAGS += -DSDIO_AP_OFFLOAD -DCONFIG_POWER_SAVE
+endif
+
+ifeq ($(CONFIG_PREALLOC_MODULE),y)
+ EXTRA_CFLAGS += -DUSE_PREALLOC_MODULE
+endif
+
+ifeq ($(CONFIG_RTL_11W_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT
+ ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_DOT11K_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_11V_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11V_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_11R_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11R_SUPPORT
+endif
+
+ifeq ($(CONFIG_WIFI_SNIFFER),y)
+ EXTRA_CFLAGS += -DWIFI_SNIFFER
+endif
+
+ifeq ($(CONFIG_RTL_VLAN_SUPPORT),y)
+ EXTRA_CFLAGS += -DNOT_RTK_BSP_VLAN
+endif
+
+ifeq ($(CONFIG_RTL_WPA3_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WPA3_SUPPORT
+ ifeq ($(CONFIG_RTL_11W_SUPPORT),n)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT
+ ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ ifneq ($(CONFIG_WPAS_CLI),1)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT
+ endif
+ endif
+ endif
+endif
+
diff --git a/package/kernel/realtek-wl/files/config_wext_rtl8192fr.mk b/package/kernel/realtek-wl/files/config_wext_rtl8192fr.mk
new file mode 100644
index 0000000..86b3c8c
--- /dev/null
+++ b/package/kernel/realtek-wl/files/config_wext_rtl8192fr.mk
@@ -0,0 +1,465 @@
+#
+# RTL WLan AP Driver All In One Configure
+#
+
+#
+# Wireless LAN
+#
+
+# Driver Module/Build In Driver ==> :=m/:=y
+CONFIG_RTL8192CD :=m
+
+# RTK Platform ?
+RTK_BSP :=n
+
+# Select Support WLan Chip
+CONFIG_RTL_92C_SUPPORT :=n
+CONFIG_RTL_92D_SUPPORT :=n
+CONFIG_RTL_88E_SUPPORT :=n
+CONFIG_RTL_92E_SUPPORT :=n
+CONFIG_RTL_92F_SUPPORT :=y
+CONFIG_RTL_8812_SUPPORT :=n
+CONFIG_RTL_8814_SUPPORT :=n
+CONFIG_RTL_8822_SUPPORT :=n
+CONFIG_RTL_8822C_SUPPORT :=n
+CONFIG_RTL_8821_SUPPORT :=n
+CONFIG_RTL_8814B_SUPPORT :=n
+CONFIG_RTL_8812F_SUPPORT :=n
+
+CONCURRENT_MODE :=n
+
+# WPA3 support
+CONFIG_RTL_WPA3_SUPPORT :=y
+
+# Bus Interface Type, PCIE / USB / SDIO
+CONFIG_PCI_HCI :=y
+CONFIG_USB_HCI :=n
+CONFIG_SDIO_HCI :=n
+
+# RTL Platform Support
+CONFIG_RTL_819X :=n
+CONFIG_RTL_819XD :=n
+
+# Driver Configuration
+CONFIG_RTL8190_PRIV_SKB :=n
+CONFIG_PREALLOC_MODULE :=n
+
+CONFIG_RTL_WAPI_SUPPORT :=n
+
+# If Use External PA, LNA ?
+CONFIG_EXT_PA :=n
+CONFIG_EXT_LNA :=n
+
+# If Support Dynamic Freqence Selection ?
+CONFIG_RTL_DFS_SUPPORT :=n
+
+# Number of Virtual AP ?
+ifeq ($(RTL8192CD_NUM_VWLAN),)
+RTL8192CD_NUM_VWLAN := 0
+endif
+
+# If Support Client Mode ?
+CONFIG_RTL_CLIENT_MODE_SUPPORT :=y
+CONFIG_RTL_REPEATER_MODE_SUPPORT :=y
+CONFIG_RTL_SUPPORT_MULTI_PROFILE :=n
+CONFIG_RTL_MULTI_CLONE_SUPPORT :=n
+
+# If Support Wireless Distribution System ?
+CONFIG_RTL_WDS_SUPPORT :=n
+
+# If Enable On-Chip EFuse ?
+CONFIG_ENABLE_EFUSE :=y
+
+# If support non-HAL Chip ? (92C, 92D, 88E, 8812)
+CONFIG_RTL_WLAN_HAL_NOT_EXIST :=n
+
+CONFIG_RTL_COMAPI_CFGFILE :=n
+CONFIG_RTL_COMAPI_WLTOOLS :=n
+CONFIG_MP_PSD_SUPPORT :=n
+CONFIG_RTL_P2P_SUPPORT :=n
+CONFIG_RTL_MESH_SUPPORT :=n
+CONFIG_RTL_WLAN_DOS_FILTER :=n
+CONFIG_TXPWR_LMT :=n
+CONFIG_TX_BEAMFORMING :=y
+CONFIG_RTL_WPS2_SUPPORT :=y
+CONFIG_WPA_CLI :=n
+CONFIG_POWER_SAVE :=n
+CONFIG_DPK :=n
+
+# Select WLan PHY Clock Source, 40MHz/25MHz. For WLan module, we use 40MHz usually
+CONFIG_PHY_EAT_40MHZ :=y
+CONFIG_PHY_WLAN_EAT_40MHZ :=y
+
+CONFIG_IGMP_SNOOPING_SUPPORT:=y
+CONFIG_MLD_SNOOPING_SUPPORT:=y
+
+# 802.11w support
+CONFIG_RTL_11W_SUPPORT:=y
+CONFIG_RTL_11W_CLI_SUPPORT:=n
+
+# 802.11r support
+CONFIG_RTL_11R_SUPPORT:=n
+
+#802.11k support
+CONFIG_RTL_DOT11K_SUPPORT:=n
+
+#802.11v support
+CONFIG_RTL_11V_SUPPORT:=n
+
+# Thermal Control
+CONFIG_THERMAL_CONTROL:=n
+CONFIG_THERMAL_CONTROL_DAEMON:=n
+
+CONFIG_BEAMFORMING_SUPPORT:=n
+
+CONFIG_RTK_SMART_ROAMING:=n
+
+CONFIG_SMP_LOAD_BALANCE_SUPPORT:=n
+
+CONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT=n
+
+# Airtime Fairness support
+CONFIG_RTL_ATM_SUPPORT:=n
+
+######## Don't Modify Following Code ########
+
+EXTRA_CFLAGS += -DCONFIG_RTL8192CD
+
+ifeq ($(CONFIG_RTL_WPA3_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WPA3_SUPPORT
+endif
+
+ifeq ($(RTK_BSP),n)
+ EXTRA_CFLAGS += -DNOT_RTK_BSP
+ EXTRA_CFLAGS += -DCONFIG_WIRELESS_LAN_MODULE
+endif
+
+ifeq ($(CONFIG_RTL_ATM_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_ATM_SUPPORT
+endif
+
+ifeq ($(CONFIG_DPK),y)
+ EXTRA_CFLAGS += -DCONFIG_RF_DPK_SETTING_SUPPORT
+endif
+
+ifeq ($(CONFIG_PCI_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_PCI_HCI
+endif
+
+ifeq ($(CONFIG_USB_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_USB_HCI
+endif
+
+ifeq ($(CONFIG_SDIO_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_SDIO_HCI
+ # 0: No AP power saving 1: RF off 2: beacon offload
+ CONFIG_AP_PS := 0
+endif
+
+ifeq ($(CONFIG_RTL_92C_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_92C_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_92D_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_92D_SUPPORT
+ #EXTRA_CFLAGS += -DCONFIG_RTL_92D_DMDP
+endif
+
+ifeq ($(CONFIG_RTL_88E_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_88E_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_8812_SUPPORT),y)
+# CONFIG_RTL_DFS_SUPPORT :=n
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_8812_SUPPORT
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_8814_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8814AE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814AE
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_92E_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8192EE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192EE
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_92F_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8192FE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192FE
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_8822_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8822BE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ CONFIG_WLAN_MACHAL_API_V0 :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8822BE
+# ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+# EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+# endif
+endif
+
+ifeq ($(CONFIG_RTL_8822C_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8822CE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ CONFIG_WLAN_MACHAL_API_V0 :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8822CE
+# ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+# EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+# endif
+endif
+
+ifeq ($(CONFIG_RTL_8821_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8821CE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ CONFIG_WLAN_MACHAL_API_V0 :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8821CE
+
+ ifeq ($(CONFIG_WLAN_HAL_8821CE), y)
+# EXTRA_CFLAGS += -DCONFIG_PCIE_POWER_SAVING
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_8814B_SUPPORT),y)
+ CONFIG_RTL_OFFLOAD_DRIVER :=y
+ CONFIG_ENABLE_EFUSE :=n
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8814BE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ CONFIG_WLAN_MACHAL_API_V1 :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814BE
+endif
+
+ifeq ($(CONFIG_RTL_8812F_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8812FE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ CONFIG_WLAN_MACHAL_API_V0 :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8812FE
+
+# ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+# EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+# endif
+endif
+
+ifeq ($(CONFIG_WLAN_HAL),y)
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL
+
+ ifeq ($(CONFIG_WLAN_HAL_88XX),y)
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_88XX
+ endif
+
+ ifeq ($(CONFIG_WLAN_HAL_8881A),y)
+ RTL_WLAN_DATA_DIR := WlanHAL/Data/8881A
+ endif
+else
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST
+endif
+
+ifeq ($(CONFIG_WLAN_MACHAL_API),y)
+ EXTRA_CFLAGS += -DCONFIG_WLAN_MACHAL_API
+endif
+
+ifeq ($(CONFIG_RTL_WLAN_HAL_NOT_EXIST),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST
+endif
+
+ifeq ($(CONFIG_RTL_ODM_WLAN_DRIVER),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_ODM_WLAN_DRIVER
+endif
+
+# TODO: We need to assign which NIC is using external PA and LNA
+ifeq ($(CONFIG_EXT_PA),y)
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_PA
+ EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_PA
+endif
+
+ifeq ($(CONFIG_EXT_LNA),y)
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_LNA
+ EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_LNA
+endif
+
+ifeq ($(CONFIG_RTL_DFS_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_DFS_SUPPORT
+endif
+
+ifneq ($(RTL8192CD_NUM_VWLAN),0)
+ EXTRA_CFLAGS += -DCONFIG_RTL_VAP_SUPPORT
+endif
+EXTRA_CFLAGS += -DRTL8192CD_NUM_VWLAN=$(RTL8192CD_NUM_VWLAN)
+
+ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_CLIENT_MODE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_REPEATER_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_REPEATER_MODE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_SUPPORT_MULTI_PROFILE),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_SUPPORT_MULTI_PROFILE
+endif
+
+ifeq ($(CONFIG_RTL_MULTI_CLONE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_MULTI_CLONE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_WDS_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WDS_SUPPORT
+endif
+
+ifeq ($(CONFIG_ENABLE_EFUSE),y)
+ EXTRA_CFLAGS += -DCONFIG_ENABLE_EFUSE
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_ENABLE_EFUSE
+endif
+
+ifeq ($(CONFIG_RTL_COMAPI_CFGFILE),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_CFGFILE
+endif
+
+ifeq ($(CONFIG_RTL_COMAPI_WLTOOLS),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS
+endif
+
+ifeq ($(CONFIG_WPA_CLI),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS -DWIFI_WPAS_CLI -DSDIO_2_PORT
+endif
+
+ifeq ($(CONFIG_MP_PSD_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_MP_PSD_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_P2P_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_P2P_SUPPORT
+endif
+
+ifeq ($(CONFIG_TXPWR_LMT),y)
+ EXTRA_CFLAGS += -DCONFIG_TXPWR_LMT
+endif
+
+ifeq ($(CONFIG_RTL_MESH_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_MESH_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_WLAN_DOS_FILTER),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_DOS_FILTER
+endif
+
+ifeq ($(CONCURRENT_MODE),y)
+ EXTRA_CFLAGS += -DCONCURRENT_MODE
+endif
+
+ifeq ($(CONFIG_RTL8190_PRIV_SKB),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL8190_PRIV_SKB
+endif
+
+ifeq ($(CONFIG_RTL_WPS2_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WPS2_SUPPORT
+endif
+
+ifeq ($(CONFIG_TX_BEAMFORMING),y)
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_TX_BEAMFORMING
+endif
+
+ifeq ($(CONFIG_PHY_EAT_40MHZ),y)
+ EXTRA_CFLAGS += -DCONFIG_PHY_EAT_40MHZ
+endif
+ifeq ($(CONFIG_PHY_WLAN_EAT_40MHZ),y)
+ EXTRA_CFLAGS += -DCONFIG_PHY_WLAN_EAT_40MHZ
+endif
+
+ifeq ($(CONFIG_RTL_WAPI_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WAPI_SUPPORT
+endif
+
+ifeq ($(CONFIG_IGMP_SNOOPING_SUPPORT),y)
+ EXTRA_CFLAGS += -D_FULLY_WIFI_IGMP_SNOOPING_SUPPORT_
+endif
+
+ifeq ($(CONFIG_MLD_SNOOPING_SUPPORT),y)
+ EXTRA_CFLAGS += -D_FULLY_WIFI_MLD_SNOOPING_SUPPORT_
+endif
+
+ifeq ($(CONFIG_POWER_SAVE),y)
+ EXTRA_CFLAGS += -DSDIO_AP_OFFLOAD -DCONFIG_POWER_SAVE
+endif
+
+ifeq ($(CONFIG_RTL_11W_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_11W_CLI_SUPPORT),y)
+ ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_11R_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11R_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_11V_SUPPORT),y)
+ #Enable 11k if 11v is enabled
+ EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT
+ EXTRA_CFLAGS += -DCONFIG_RTL_11V_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_DOT11K_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTK_SMART_ROAMING),y)
+ EXTRA_CFLAGS += -DCONFIG_RTK_SMART_ROAMING
+endif
+
+ifeq ($(CONFIG_SMP_LOAD_BALANCE_SUPPORT),y)
+ EXTRA_CFLAGS += -DSMP_LOAD_BALANCE_SUPPORT
+endif
+
+ifeq ($(CONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_OFFLOAD_DRIVER),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_OFFLOAD_DRIVER
+endif
diff --git a/package/kernel/realtek-wl/files/config_wext_rtl8192fr_rtl8812fr.mk b/package/kernel/realtek-wl/files/config_wext_rtl8192fr_rtl8812fr.mk
new file mode 100644
index 0000000..522235f
--- /dev/null
+++ b/package/kernel/realtek-wl/files/config_wext_rtl8192fr_rtl8812fr.mk
@@ -0,0 +1,458 @@
+#
+# RTL WLan AP Driver All In One Configure
+#
+
+#
+# Wireless LAN
+#
+
+# Driver Module/Build In Driver ==> :=m/:=y
+CONFIG_RTL8192CD :=m
+
+# RTK Platform ?
+RTK_BSP :=n
+
+# Select Support WLan Chip
+CONFIG_RTL_92C_SUPPORT :=n
+CONFIG_RTL_92D_SUPPORT :=n
+CONFIG_RTL_88E_SUPPORT :=n
+CONFIG_RTL_92E_SUPPORT :=n
+CONFIG_RTL_92F_SUPPORT :=y
+CONFIG_RTL_8812_SUPPORT :=n
+CONFIG_RTL_8814_SUPPORT :=n
+CONFIG_RTL_8822_SUPPORT :=n
+CONFIG_RTL_8822C_SUPPORT :=n
+CONFIG_RTL_8821_SUPPORT :=n
+CONFIG_RTL_8814B_SUPPORT :=n
+CONFIG_RTL_8812F_SUPPORT :=y
+
+CONCURRENT_MODE :=y
+
+# Bus Interface Type, PCIE / USB / SDIO
+CONFIG_PCI_HCI :=y
+CONFIG_USB_HCI :=n
+CONFIG_SDIO_HCI :=n
+
+# RTL Platform Support
+CONFIG_RTL_819X :=n
+CONFIG_RTL_819XD :=n
+
+# Driver Configuration
+CONFIG_RTL8190_PRIV_SKB :=n
+CONFIG_PREALLOC_MODULE :=n
+
+CONFIG_RTL_WAPI_SUPPORT :=n
+
+# If Use External PA, LNA ?
+CONFIG_EXT_PA :=n
+CONFIG_EXT_LNA :=n
+
+# If Support Dynamic Freqence Selection ?
+CONFIG_RTL_DFS_SUPPORT :=n
+
+# Number of Virtual AP ?
+ifeq ($(RTL8192CD_NUM_VWLAN),)
+RTL8192CD_NUM_VWLAN := 0
+endif
+
+# If Support Client Mode ?
+CONFIG_RTL_CLIENT_MODE_SUPPORT :=y
+CONFIG_RTL_REPEATER_MODE_SUPPORT :=y
+CONFIG_RTL_SUPPORT_MULTI_PROFILE :=n
+CONFIG_RTL_MULTI_CLONE_SUPPORT :=n
+
+# If Support Wireless Distribution System ?
+CONFIG_RTL_WDS_SUPPORT :=n
+
+# If Enable On-Chip EFuse ?
+CONFIG_ENABLE_EFUSE :=y
+
+# If support non-HAL Chip ? (92C, 92D, 88E, 8812)
+CONFIG_RTL_WLAN_HAL_NOT_EXIST :=n
+
+CONFIG_RTL_COMAPI_CFGFILE :=n
+CONFIG_RTL_COMAPI_WLTOOLS :=n
+CONFIG_MP_PSD_SUPPORT :=n
+CONFIG_RTL_P2P_SUPPORT :=n
+CONFIG_RTL_MESH_SUPPORT :=n
+CONFIG_RTL_WLAN_DOS_FILTER :=n
+CONFIG_TXPWR_LMT :=n
+CONFIG_TX_BEAMFORMING :=y
+CONFIG_RTL_WPS2_SUPPORT :=y
+CONFIG_WPA_CLI :=n
+CONFIG_POWER_SAVE :=n
+CONFIG_DPK :=n
+
+# Select WLan PHY Clock Source, 40MHz/25MHz. For WLan module, we use 40MHz usually
+CONFIG_PHY_EAT_40MHZ :=y
+CONFIG_PHY_WLAN_EAT_40MHZ :=y
+
+CONFIG_IGMP_SNOOPING_SUPPORT:=y
+CONFIG_MLD_SNOOPING_SUPPORT:=y
+
+# 802.11w support
+CONFIG_RTL_11W_SUPPORT:=y
+CONFIG_RTL_11W_CLI_SUPPORT:=n
+
+# 802.11r support
+CONFIG_RTL_11R_SUPPORT:=n
+
+#802.11k support
+CONFIG_RTL_DOT11K_SUPPORT:=n
+
+#802.11v support
+CONFIG_RTL_11V_SUPPORT:=n
+
+# Thermal Control
+CONFIG_THERMAL_CONTROL:=n
+CONFIG_THERMAL_CONTROL_DAEMON:=n
+
+CONFIG_BEAMFORMING_SUPPORT:=n
+
+CONFIG_RTK_SMART_ROAMING:=n
+
+CONFIG_SMP_LOAD_BALANCE_SUPPORT:=n
+
+CONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT=n
+
+# Airtime Fairness support
+CONFIG_RTL_ATM_SUPPORT:=n
+
+######## Don't Modify Following Code ########
+
+EXTRA_CFLAGS += -DCONFIG_RTL8192CD
+
+ifeq ($(RTK_BSP),n)
+ EXTRA_CFLAGS += -DNOT_RTK_BSP
+ EXTRA_CFLAGS += -DCONFIG_WIRELESS_LAN_MODULE
+endif
+
+ifeq ($(CONFIG_RTL_ATM_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_ATM_SUPPORT
+endif
+
+ifeq ($(CONFIG_DPK),y)
+ EXTRA_CFLAGS += -DCONFIG_RF_DPK_SETTING_SUPPORT
+endif
+
+ifeq ($(CONFIG_PCI_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_PCI_HCI
+endif
+
+ifeq ($(CONFIG_USB_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_USB_HCI
+endif
+
+ifeq ($(CONFIG_SDIO_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_SDIO_HCI
+ # 0: No AP power saving 1: RF off 2: beacon offload
+ CONFIG_AP_PS := 0
+endif
+
+ifeq ($(CONFIG_RTL_92C_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_92C_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_92D_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_92D_SUPPORT
+ #EXTRA_CFLAGS += -DCONFIG_RTL_92D_DMDP
+endif
+
+ifeq ($(CONFIG_RTL_88E_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_88E_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_8812_SUPPORT),y)
+# CONFIG_RTL_DFS_SUPPORT :=n
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_8812_SUPPORT
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_8814_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8814AE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814AE
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_92E_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8192EE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192EE
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_92F_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8192FE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192FE
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_8822_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8822BE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ CONFIG_WLAN_MACHAL_API_V0 :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8822BE
+# ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+# EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+# endif
+endif
+
+ifeq ($(CONFIG_RTL_8822C_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8822CE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ CONFIG_WLAN_MACHAL_API_V0 :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8822CE
+# ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+# EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+# endif
+endif
+
+ifeq ($(CONFIG_RTL_8821_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8821CE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ CONFIG_WLAN_MACHAL_API_V0 :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8821CE
+
+ ifeq ($(CONFIG_WLAN_HAL_8821CE), y)
+# EXTRA_CFLAGS += -DCONFIG_PCIE_POWER_SAVING
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_8814B_SUPPORT),y)
+ CONFIG_RTL_OFFLOAD_DRIVER :=y
+ CONFIG_ENABLE_EFUSE :=n
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8814BE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ CONFIG_WLAN_MACHAL_API_V1 :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814BE
+endif
+
+ifeq ($(CONFIG_RTL_8812F_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8812FE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ CONFIG_WLAN_MACHAL_API_V0 :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8812FE
+
+# ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+# EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+# endif
+endif
+
+ifeq ($(CONFIG_WLAN_HAL),y)
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL
+
+ ifeq ($(CONFIG_WLAN_HAL_88XX),y)
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_88XX
+ endif
+
+ ifeq ($(CONFIG_WLAN_HAL_8881A),y)
+ RTL_WLAN_DATA_DIR := WlanHAL/Data/8881A
+ endif
+else
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST
+endif
+
+ifeq ($(CONFIG_WLAN_MACHAL_API),y)
+ EXTRA_CFLAGS += -DCONFIG_WLAN_MACHAL_API
+endif
+
+ifeq ($(CONFIG_RTL_WLAN_HAL_NOT_EXIST),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST
+endif
+
+ifeq ($(CONFIG_RTL_ODM_WLAN_DRIVER),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_ODM_WLAN_DRIVER
+endif
+
+# TODO: We need to assign which NIC is using external PA and LNA
+ifeq ($(CONFIG_EXT_PA),y)
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_PA
+ EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_PA
+endif
+
+ifeq ($(CONFIG_EXT_LNA),y)
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_LNA
+ EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_LNA
+endif
+
+ifeq ($(CONFIG_RTL_DFS_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_DFS_SUPPORT
+endif
+
+ifneq ($(RTL8192CD_NUM_VWLAN),0)
+ EXTRA_CFLAGS += -DCONFIG_RTL_VAP_SUPPORT
+endif
+EXTRA_CFLAGS += -DRTL8192CD_NUM_VWLAN=$(RTL8192CD_NUM_VWLAN)
+
+ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_CLIENT_MODE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_REPEATER_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_REPEATER_MODE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_SUPPORT_MULTI_PROFILE),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_SUPPORT_MULTI_PROFILE
+endif
+
+ifeq ($(CONFIG_RTL_MULTI_CLONE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_MULTI_CLONE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_WDS_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WDS_SUPPORT
+endif
+
+ifeq ($(CONFIG_ENABLE_EFUSE),y)
+ EXTRA_CFLAGS += -DCONFIG_ENABLE_EFUSE
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_ENABLE_EFUSE
+endif
+
+ifeq ($(CONFIG_RTL_COMAPI_CFGFILE),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_CFGFILE
+endif
+
+ifeq ($(CONFIG_RTL_COMAPI_WLTOOLS),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS
+endif
+
+ifeq ($(CONFIG_WPA_CLI),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS -DWIFI_WPAS_CLI -DSDIO_2_PORT
+endif
+
+ifeq ($(CONFIG_MP_PSD_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_MP_PSD_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_P2P_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_P2P_SUPPORT
+endif
+
+ifeq ($(CONFIG_TXPWR_LMT),y)
+ EXTRA_CFLAGS += -DCONFIG_TXPWR_LMT
+endif
+
+ifeq ($(CONFIG_RTL_MESH_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_MESH_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_WLAN_DOS_FILTER),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_DOS_FILTER
+endif
+
+ifeq ($(CONCURRENT_MODE),y)
+ EXTRA_CFLAGS += -DCONCURRENT_MODE
+endif
+
+ifeq ($(CONFIG_RTL8190_PRIV_SKB),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL8190_PRIV_SKB
+endif
+
+ifeq ($(CONFIG_RTL_WPS2_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WPS2_SUPPORT
+endif
+
+ifeq ($(CONFIG_TX_BEAMFORMING),y)
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_TX_BEAMFORMING
+endif
+
+ifeq ($(CONFIG_PHY_EAT_40MHZ),y)
+ EXTRA_CFLAGS += -DCONFIG_PHY_EAT_40MHZ
+endif
+ifeq ($(CONFIG_PHY_WLAN_EAT_40MHZ),y)
+ EXTRA_CFLAGS += -DCONFIG_PHY_WLAN_EAT_40MHZ
+endif
+
+ifeq ($(CONFIG_RTL_WAPI_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WAPI_SUPPORT
+endif
+
+ifeq ($(CONFIG_IGMP_SNOOPING_SUPPORT),y)
+ EXTRA_CFLAGS += -D_FULLY_WIFI_IGMP_SNOOPING_SUPPORT_
+endif
+
+ifeq ($(CONFIG_MLD_SNOOPING_SUPPORT),y)
+ EXTRA_CFLAGS += -D_FULLY_WIFI_MLD_SNOOPING_SUPPORT_
+endif
+
+ifeq ($(CONFIG_POWER_SAVE),y)
+ EXTRA_CFLAGS += -DSDIO_AP_OFFLOAD -DCONFIG_POWER_SAVE
+endif
+
+ifeq ($(CONFIG_RTL_11W_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_11W_CLI_SUPPORT),y)
+ ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_11R_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11R_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_11V_SUPPORT),y)
+ #Enable 11k if 11v is enabled
+ EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT
+ EXTRA_CFLAGS += -DCONFIG_RTL_11V_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_DOT11K_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTK_SMART_ROAMING),y)
+ EXTRA_CFLAGS += -DCONFIG_RTK_SMART_ROAMING
+endif
+
+ifeq ($(CONFIG_SMP_LOAD_BALANCE_SUPPORT),y)
+ EXTRA_CFLAGS += -DSMP_LOAD_BALANCE_SUPPORT
+endif
+
+ifeq ($(CONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_OFFLOAD_DRIVER),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_OFFLOAD_DRIVER
+endif
diff --git a/package/kernel/realtek-wl/files/config_wext_rtl8812fr.mk b/package/kernel/realtek-wl/files/config_wext_rtl8812fr.mk
new file mode 100644
index 0000000..c53ecfd
--- /dev/null
+++ b/package/kernel/realtek-wl/files/config_wext_rtl8812fr.mk
@@ -0,0 +1,465 @@
+#
+# RTL WLan AP Driver All In One Configure
+#
+
+#
+# Wireless LAN
+#
+
+# Driver Module/Build In Driver ==> :=m/:=y
+CONFIG_RTL8192CD :=m
+
+# RTK Platform ?
+RTK_BSP :=n
+
+# Select Support WLan Chip
+CONFIG_RTL_92C_SUPPORT :=n
+CONFIG_RTL_92D_SUPPORT :=n
+CONFIG_RTL_88E_SUPPORT :=n
+CONFIG_RTL_92E_SUPPORT :=n
+CONFIG_RTL_92F_SUPPORT :=n
+CONFIG_RTL_8812_SUPPORT :=n
+CONFIG_RTL_8814_SUPPORT :=n
+CONFIG_RTL_8822_SUPPORT :=n
+CONFIG_RTL_8822C_SUPPORT :=n
+CONFIG_RTL_8821_SUPPORT :=n
+CONFIG_RTL_8814B_SUPPORT :=n
+CONFIG_RTL_8812F_SUPPORT :=y
+
+CONCURRENT_MODE :=n
+
+# WPA3 support
+CONFIG_RTL_WPA3_SUPPORT :=y
+
+# Bus Interface Type, PCIE / USB / SDIO
+CONFIG_PCI_HCI :=y
+CONFIG_USB_HCI :=n
+CONFIG_SDIO_HCI :=n
+
+# RTL Platform Support
+CONFIG_RTL_819X :=n
+CONFIG_RTL_819XD :=n
+
+# Driver Configuration
+CONFIG_RTL8190_PRIV_SKB :=n
+CONFIG_PREALLOC_MODULE :=n
+
+CONFIG_RTL_WAPI_SUPPORT :=n
+
+# If Use External PA, LNA ?
+CONFIG_EXT_PA :=n
+CONFIG_EXT_LNA :=n
+
+# If Support Dynamic Freqence Selection ?
+CONFIG_RTL_DFS_SUPPORT :=n
+
+# Number of Virtual AP ?
+ifeq ($(RTL8192CD_NUM_VWLAN),)
+RTL8192CD_NUM_VWLAN := 0
+endif
+
+# If Support Client Mode ?
+CONFIG_RTL_CLIENT_MODE_SUPPORT :=y
+CONFIG_RTL_REPEATER_MODE_SUPPORT :=y
+CONFIG_RTL_SUPPORT_MULTI_PROFILE :=n
+CONFIG_RTL_MULTI_CLONE_SUPPORT :=n
+
+# If Support Wireless Distribution System ?
+CONFIG_RTL_WDS_SUPPORT :=n
+
+# If Enable On-Chip EFuse ?
+CONFIG_ENABLE_EFUSE :=y
+
+# If support non-HAL Chip ? (92C, 92D, 88E, 8812)
+CONFIG_RTL_WLAN_HAL_NOT_EXIST :=n
+
+CONFIG_RTL_COMAPI_CFGFILE :=n
+CONFIG_RTL_COMAPI_WLTOOLS :=n
+CONFIG_MP_PSD_SUPPORT :=n
+CONFIG_RTL_P2P_SUPPORT :=n
+CONFIG_RTL_MESH_SUPPORT :=n
+CONFIG_RTL_WLAN_DOS_FILTER :=n
+CONFIG_TXPWR_LMT :=n
+CONFIG_TX_BEAMFORMING :=y
+CONFIG_RTL_WPS2_SUPPORT :=y
+CONFIG_WPA_CLI :=n
+CONFIG_POWER_SAVE :=n
+CONFIG_DPK :=n
+
+# Select WLan PHY Clock Source, 40MHz/25MHz. For WLan module, we use 40MHz usually
+CONFIG_PHY_EAT_40MHZ :=y
+CONFIG_PHY_WLAN_EAT_40MHZ :=y
+
+CONFIG_IGMP_SNOOPING_SUPPORT:=y
+CONFIG_MLD_SNOOPING_SUPPORT:=y
+
+# 802.11w support
+CONFIG_RTL_11W_SUPPORT:=y
+CONFIG_RTL_11W_CLI_SUPPORT:=n
+
+# 802.11r support
+CONFIG_RTL_11R_SUPPORT:=n
+
+#802.11k support
+CONFIG_RTL_DOT11K_SUPPORT:=n
+
+#802.11v support
+CONFIG_RTL_11V_SUPPORT:=n
+
+# Thermal Control
+CONFIG_THERMAL_CONTROL:=n
+CONFIG_THERMAL_CONTROL_DAEMON:=n
+
+CONFIG_BEAMFORMING_SUPPORT:=n
+
+CONFIG_RTK_SMART_ROAMING:=n
+
+CONFIG_SMP_LOAD_BALANCE_SUPPORT:=n
+
+CONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT=n
+
+# Airtime Fairness support
+CONFIG_RTL_ATM_SUPPORT:=n
+
+######## Don't Modify Following Code ########
+
+EXTRA_CFLAGS += -DCONFIG_RTL8192CD
+
+ifeq ($(CONFIG_RTL_WPA3_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WPA3_SUPPORT
+endif
+
+ifeq ($(RTK_BSP),n)
+ EXTRA_CFLAGS += -DNOT_RTK_BSP
+ EXTRA_CFLAGS += -DCONFIG_WIRELESS_LAN_MODULE
+endif
+
+ifeq ($(CONFIG_RTL_ATM_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_ATM_SUPPORT
+endif
+
+ifeq ($(CONFIG_DPK),y)
+ EXTRA_CFLAGS += -DCONFIG_RF_DPK_SETTING_SUPPORT
+endif
+
+ifeq ($(CONFIG_PCI_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_PCI_HCI
+endif
+
+ifeq ($(CONFIG_USB_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_USB_HCI
+endif
+
+ifeq ($(CONFIG_SDIO_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_SDIO_HCI
+ # 0: No AP power saving 1: RF off 2: beacon offload
+ CONFIG_AP_PS := 0
+endif
+
+ifeq ($(CONFIG_RTL_92C_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_92C_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_92D_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_92D_SUPPORT
+ #EXTRA_CFLAGS += -DCONFIG_RTL_92D_DMDP
+endif
+
+ifeq ($(CONFIG_RTL_88E_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_88E_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_8812_SUPPORT),y)
+# CONFIG_RTL_DFS_SUPPORT :=n
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_8812_SUPPORT
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_8814_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8814AE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814AE
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_92E_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8192EE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192EE
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_92F_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8192FE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192FE
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_8822_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8822BE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ CONFIG_WLAN_MACHAL_API_V0 :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8822BE
+# ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+# EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+# endif
+endif
+
+ifeq ($(CONFIG_RTL_8822C_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8822CE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ CONFIG_WLAN_MACHAL_API_V0 :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8822CE
+# ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+# EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+# endif
+endif
+
+ifeq ($(CONFIG_RTL_8821_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8821CE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ CONFIG_WLAN_MACHAL_API_V0 :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8821CE
+
+ ifeq ($(CONFIG_WLAN_HAL_8821CE), y)
+# EXTRA_CFLAGS += -DCONFIG_PCIE_POWER_SAVING
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_8814B_SUPPORT),y)
+ CONFIG_RTL_OFFLOAD_DRIVER :=y
+ CONFIG_ENABLE_EFUSE :=n
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8814BE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ CONFIG_WLAN_MACHAL_API_V1 :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814BE
+endif
+
+ifeq ($(CONFIG_RTL_8812F_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8812FE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ CONFIG_WLAN_MACHAL_API_V0 :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8812FE
+
+# ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+# EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+# endif
+endif
+
+ifeq ($(CONFIG_WLAN_HAL),y)
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL
+
+ ifeq ($(CONFIG_WLAN_HAL_88XX),y)
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_88XX
+ endif
+
+ ifeq ($(CONFIG_WLAN_HAL_8881A),y)
+ RTL_WLAN_DATA_DIR := WlanHAL/Data/8881A
+ endif
+else
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST
+endif
+
+ifeq ($(CONFIG_WLAN_MACHAL_API),y)
+ EXTRA_CFLAGS += -DCONFIG_WLAN_MACHAL_API
+endif
+
+ifeq ($(CONFIG_RTL_WLAN_HAL_NOT_EXIST),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST
+endif
+
+ifeq ($(CONFIG_RTL_ODM_WLAN_DRIVER),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_ODM_WLAN_DRIVER
+endif
+
+# TODO: We need to assign which NIC is using external PA and LNA
+ifeq ($(CONFIG_EXT_PA),y)
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_PA
+ EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_PA
+endif
+
+ifeq ($(CONFIG_EXT_LNA),y)
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_LNA
+ EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_LNA
+endif
+
+ifeq ($(CONFIG_RTL_DFS_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_DFS_SUPPORT
+endif
+
+ifneq ($(RTL8192CD_NUM_VWLAN),0)
+ EXTRA_CFLAGS += -DCONFIG_RTL_VAP_SUPPORT
+endif
+EXTRA_CFLAGS += -DRTL8192CD_NUM_VWLAN=$(RTL8192CD_NUM_VWLAN)
+
+ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_CLIENT_MODE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_REPEATER_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_REPEATER_MODE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_SUPPORT_MULTI_PROFILE),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_SUPPORT_MULTI_PROFILE
+endif
+
+ifeq ($(CONFIG_RTL_MULTI_CLONE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_MULTI_CLONE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_WDS_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WDS_SUPPORT
+endif
+
+ifeq ($(CONFIG_ENABLE_EFUSE),y)
+ EXTRA_CFLAGS += -DCONFIG_ENABLE_EFUSE
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_ENABLE_EFUSE
+endif
+
+ifeq ($(CONFIG_RTL_COMAPI_CFGFILE),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_CFGFILE
+endif
+
+ifeq ($(CONFIG_RTL_COMAPI_WLTOOLS),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS
+endif
+
+ifeq ($(CONFIG_WPA_CLI),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS -DWIFI_WPAS_CLI -DSDIO_2_PORT
+endif
+
+ifeq ($(CONFIG_MP_PSD_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_MP_PSD_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_P2P_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_P2P_SUPPORT
+endif
+
+ifeq ($(CONFIG_TXPWR_LMT),y)
+ EXTRA_CFLAGS += -DCONFIG_TXPWR_LMT
+endif
+
+ifeq ($(CONFIG_RTL_MESH_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_MESH_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_WLAN_DOS_FILTER),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_DOS_FILTER
+endif
+
+ifeq ($(CONCURRENT_MODE),y)
+ EXTRA_CFLAGS += -DCONCURRENT_MODE
+endif
+
+ifeq ($(CONFIG_RTL8190_PRIV_SKB),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL8190_PRIV_SKB
+endif
+
+ifeq ($(CONFIG_RTL_WPS2_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WPS2_SUPPORT
+endif
+
+ifeq ($(CONFIG_TX_BEAMFORMING),y)
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_TX_BEAMFORMING
+endif
+
+ifeq ($(CONFIG_PHY_EAT_40MHZ),y)
+ EXTRA_CFLAGS += -DCONFIG_PHY_EAT_40MHZ
+endif
+ifeq ($(CONFIG_PHY_WLAN_EAT_40MHZ),y)
+ EXTRA_CFLAGS += -DCONFIG_PHY_WLAN_EAT_40MHZ
+endif
+
+ifeq ($(CONFIG_RTL_WAPI_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WAPI_SUPPORT
+endif
+
+ifeq ($(CONFIG_IGMP_SNOOPING_SUPPORT),y)
+ EXTRA_CFLAGS += -D_FULLY_WIFI_IGMP_SNOOPING_SUPPORT_
+endif
+
+ifeq ($(CONFIG_MLD_SNOOPING_SUPPORT),y)
+ EXTRA_CFLAGS += -D_FULLY_WIFI_MLD_SNOOPING_SUPPORT_
+endif
+
+ifeq ($(CONFIG_POWER_SAVE),y)
+ EXTRA_CFLAGS += -DSDIO_AP_OFFLOAD -DCONFIG_POWER_SAVE
+endif
+
+ifeq ($(CONFIG_RTL_11W_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_11W_CLI_SUPPORT),y)
+ ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_11R_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11R_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_11V_SUPPORT),y)
+ #Enable 11k if 11v is enabled
+ EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT
+ EXTRA_CFLAGS += -DCONFIG_RTL_11V_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_DOT11K_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTK_SMART_ROAMING),y)
+ EXTRA_CFLAGS += -DCONFIG_RTK_SMART_ROAMING
+endif
+
+ifeq ($(CONFIG_SMP_LOAD_BALANCE_SUPPORT),y)
+ EXTRA_CFLAGS += -DSMP_LOAD_BALANCE_SUPPORT
+endif
+
+ifeq ($(CONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_OFFLOAD_DRIVER),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_OFFLOAD_DRIVER
+endif
diff --git a/package/kernel/realtek-wl/files/config_wext_rtl8822bs.mk b/package/kernel/realtek-wl/files/config_wext_rtl8822bs.mk
new file mode 100644
index 0000000..31d46d3
--- /dev/null
+++ b/package/kernel/realtek-wl/files/config_wext_rtl8822bs.mk
@@ -0,0 +1,398 @@
+#
+# RTL WLan AP Driver All In One Configure
+#
+
+#
+# Wireless LAN
+#
+
+# Driver Module/Build In Driver ==> :=m/:=y
+CONFIG_RTL8192CD :=m
+
+# RTK Platform ?
+RTK_BSP :=n
+
+# Select Support WLan Chip
+CONFIG_RTL_92C_SUPPORT :=n
+CONFIG_RTL_92D_SUPPORT :=n
+CONFIG_RTL_88E_SUPPORT :=n
+CONFIG_RTL_92E_SUPPORT :=n
+CONFIG_RTL_8812_SUPPORT :=n
+CONFIG_RTL_8814_SUPPORT :=n
+CONFIG_RTL_8822_SUPPORT :=y
+CONFIG_RTL_8821_SUPPORT :=n
+
+CONCURRENT_MODE :=n
+
+# Bus Interface Type, PCIE / USB / SDIO
+CONFIG_PCI_HCI :=n
+CONFIG_USB_HCI :=n
+CONFIG_SDIO_HCI :=y
+
+# RTL Platform Support
+CONFIG_RTL_819X :=n
+CONFIG_RTL_819XD :=n
+
+# Driver Configuration
+CONFIG_RTL8190_PRIV_SKB :=n
+CONFIG_PREALLOC_MODULE :=n
+
+CONFIG_RTL_WAPI_SUPPORT :=n
+
+# If Use External PA, LNA ?
+CONFIG_EXT_PA :=n
+CONFIG_EXT_LNA :=n
+
+# If Support Dynamic Freqence Selection ?
+CONFIG_RTL_DFS_SUPPORT :=n
+
+# Number of Virtual AP ?
+ifeq ($(RTL8192CD_NUM_VWLAN),)
+RTL8192CD_NUM_VWLAN := 0
+endif
+
+# If Support Client Mode ?
+CONFIG_RTL_CLIENT_MODE_SUPPORT :=y
+CONFIG_RTL_REPEATER_MODE_SUPPORT :=y
+CONFIG_RTL_SUPPORT_MULTI_PROFILE :=n
+CONFIG_RTL_MULTI_CLONE_SUPPORT :=n
+
+CONFIG_RTL_SUPPORT_NL80211 :=n
+CONFIG_OPENWRT_SDK :=n
+# If Support Wireless Distribution System ?
+CONFIG_RTL_WDS_SUPPORT :=n
+
+# If Enable On-Chip EFuse ?
+CONFIG_ENABLE_EFUSE :=y
+
+# If support non-HAL Chip ? (92C, 92D, 88E, 8812)
+CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+
+
+CONFIG_RTL_COMAPI_CFGFILE :=n
+CONFIG_RTL_COMAPI_WLTOOLS :=n
+CONFIG_MP_PSD_SUPPORT :=n
+CONFIG_RTL_P2P_SUPPORT :=n
+CONFIG_RTL_MESH_SUPPORT :=n
+CONFIG_RTL_WLAN_DOS_FILTER :=n
+CONFIG_TXPWR_LMT :=n
+CONFIG_RTL_WPS2_SUPPORT :=y
+CONFIG_POWER_SAVE :=y
+
+# [WPA Supplicant] 0:None; 1:wext; 2:nl80211
+CONFIG_WPAS_CLI :=2
+CONFIG_NL80211_AP :=y
+
+# Select WLan PHY Clock Source, 40MHz/25MHz. For WLan module, we use 40MHz usually
+CONFIG_PHY_EAT_40MHZ :=y
+CONFIG_PHY_WLAN_EAT_40MHZ :=y
+
+CONFIG_IGMP_SNOOPING_SUPPORT:=y
+CONFIG_MLD_SNOOPING_SUPPORT:=y
+
+# 802.11w support
+CONFIG_RTL_11W_SUPPORT:=n
+
+# 802.11k support
+CONFIG_RTL_DOT11K_SUPPORT:=n
+
+# 802.11v support
+CONFIG_RTL_11V_SUPPORT:=n
+
+# 802.11r support
+CONFIG_RTL_11R_SUPPORT:=n
+
+CONFIG_BEAMFORMING_SUPPORT:=n
+
+CONFIG_RTK_SMART_ROAMING:=n
+
+# WPA3 support
+CONFIG_RTL_WPA3_SUPPORT:=n
+
+######## Don't Modify Following Code ########
+
+EXTRA_CFLAGS += -DCONFIG_RTL8192CD
+
+ifeq ($(RTK_BSP),n)
+ EXTRA_CFLAGS += -DNOT_RTK_BSP
+ EXTRA_CFLAGS += -DCONFIG_WIRELESS_LAN_MODULE
+endif
+
+ifeq ($(CONFIG_PCI_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_PCI_HCI
+endif
+
+ifeq ($(CONFIG_USB_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_USB_HCI
+endif
+
+ifeq ($(CONFIG_SDIO_HCI),y)
+ EXTRA_CFLAGS += -DCONFIG_SDIO_HCI
+ # 0: No AP power saving 1: RF off 2: beacon offload
+ CONFIG_AP_PS := 0
+endif
+
+ifeq ($(CONFIG_RTL_92C_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_92C_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_92D_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_92D_SUPPORT
+ #EXTRA_CFLAGS += -DCONFIG_RTL_92D_DMDP
+endif
+
+ifeq ($(CONFIG_RTL_88E_SUPPORT),y)
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_88E_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_8812_SUPPORT),y)
+# CONFIG_RTL_DFS_SUPPORT :=n
+ CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_RTL_8812_SUPPORT
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_8814_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8814AE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814AE
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_92E_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8192EE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192EE
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_8822_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8822BE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8822BE -DCONFIG_WLAN_MACHAL_API
+ ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+ EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_8821_SUPPORT),y)
+ CONFIG_WLAN_HAL :=y
+ CONFIG_WLAN_HAL_88XX :=y
+ CONFIG_WLAN_HAL_8821CE :=y
+ CONFIG_RTL_ODM_WLAN_DRIVER :=y
+ CONFIG_WLAN_MACHAL_API :=y
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8821CE -DCONFIG_WLAN_MACHAL_API
+
+ ifeq ($(CONFIG_WLAN_HAL_8821CE), y)
+# EXTRA_CFLAGS += -DCONFIG_PCIE_POWER_SAVING
+ endif
+endif
+
+ifeq ($(CONFIG_WLAN_HAL),y)
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL
+
+ ifeq ($(CONFIG_WLAN_HAL_88XX),y)
+ EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_88XX
+ endif
+
+ ifeq ($(CONFIG_WLAN_HAL_8881A),y)
+ RTL_WLAN_DATA_DIR := WlanHAL/Data/8881A
+ endif
+else
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST
+endif
+
+ifeq ($(CONFIG_RTL_WLAN_HAL_NOT_EXIST),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST
+endif
+
+ifeq ($(CONFIG_RTL_ODM_WLAN_DRIVER),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_ODM_WLAN_DRIVER
+endif
+
+# TODO: We need to assign which NIC is using external PA and LNA
+ifeq ($(CONFIG_EXT_PA),y)
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_PA
+ EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_PA
+endif
+
+ifeq ($(CONFIG_EXT_LNA),y)
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_LNA
+ EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_LNA
+endif
+
+ifeq ($(CONFIG_RTL_DFS_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_DFS_SUPPORT
+endif
+
+ifneq ($(RTL8192CD_NUM_VWLAN),0)
+ EXTRA_CFLAGS += -DCONFIG_RTL_VAP_SUPPORT
+endif
+EXTRA_CFLAGS += -DRTL8192CD_NUM_VWLAN=$(RTL8192CD_NUM_VWLAN)
+
+ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_CLIENT_MODE_SUPPORT
+else
+ CONFIG_WPAS_CLI :=0
+endif
+
+ifeq ($(CONFIG_RTL_SUPPORT_NL80211),y)
+ EXTRA_CFLAGS += -DCONFIG_OPENWRT_SDK
+ EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE
+ EXTRA_CFLAGS += -DRTK_NRS_NL80211
+endif
+
+ifeq ($(CONFIG_RTL_REPEATER_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_REPEATER_MODE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_SUPPORT_MULTI_PROFILE),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_SUPPORT_MULTI_PROFILE
+endif
+
+ifeq ($(CONFIG_RTL_MULTI_CLONE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_MULTI_CLONE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_WDS_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WDS_SUPPORT
+endif
+
+ifeq ($(CONFIG_ENABLE_EFUSE),y)
+ EXTRA_CFLAGS += -DCONFIG_ENABLE_EFUSE
+ EXTRA_CFLAGS += -DCONFIG_SLOT_0_ENABLE_EFUSE
+endif
+
+ifeq ($(CONFIG_RTL_COMAPI_CFGFILE),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_CFGFILE
+endif
+
+ifeq ($(CONFIG_RTL_COMAPI_WLTOOLS),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS
+endif
+
+ifeq ($(CONFIG_WPAS_CLI),1) # wext
+ EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS -DWIFI_WPAS_CLI
+ ifeq ($(CONFIG_NL80211_AP),y)
+ EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE -DNON_NL80211_WPAS
+ endif
+else
+ifeq ($(CONFIG_WPAS_CLI),2) # nl80211
+ EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE
+ ifeq ($(CONFIG_NL80211_AP),n)
+ EXTRA_CFLAGS += -DNON_NL80211_AP
+ endif
+else
+ ifeq ($(CONFIG_NL80211_AP),y)
+ EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE -DNON_NL80211_WPAS
+ endif
+endif
+endif
+
+ifeq ($(CONFIG_MP_PSD_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_MP_PSD_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_P2P_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_P2P_SUPPORT
+endif
+
+ifeq ($(CONFIG_TXPWR_LMT),y)
+ EXTRA_CFLAGS += -DCONFIG_TXPWR_LMT
+endif
+
+ifeq ($(CONFIG_RTL_MESH_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_MESH_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_WLAN_DOS_FILTER),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_DOS_FILTER
+endif
+
+ifeq ($(CONCURRENT_MODE),y)
+ EXTRA_CFLAGS += -DCONCURRENT_MODE
+endif
+
+ifeq ($(CONFIG_RTL8190_PRIV_SKB),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL8190_PRIV_SKB
+endif
+
+ifeq ($(CONFIG_RTL_WPS2_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WPS2_SUPPORT
+endif
+
+ifeq ($(CONFIG_PHY_EAT_40MHZ),y)
+ EXTRA_CFLAGS += -DCONFIG_PHY_EAT_40MHZ
+endif
+ifeq ($(CONFIG_PHY_WLAN_EAT_40MHZ),y)
+ EXTRA_CFLAGS += -DCONFIG_PHY_WLAN_EAT_40MHZ
+endif
+
+ifeq ($(CONFIG_RTL_WAPI_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WAPI_SUPPORT
+endif
+
+ifeq ($(CONFIG_IGMP_SNOOPING_SUPPORT),y)
+ EXTRA_CFLAGS += -D_FULLY_WIFI_IGMP_SNOOPING_SUPPORT_
+endif
+
+ifeq ($(CONFIG_MLD_SNOOPING_SUPPORT),y)
+ EXTRA_CFLAGS += -D_FULLY_WIFI_MLD_SNOOPING_SUPPORT_
+endif
+
+ifeq ($(CONFIG_POWER_SAVE),y)
+ EXTRA_CFLAGS += -DSDIO_AP_OFFLOAD -DCONFIG_POWER_SAVE
+endif
+
+ifeq ($(CONFIG_RTL_11W_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT
+ ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT
+ endif
+endif
+
+ifeq ($(CONFIG_RTL_DOT11K_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_11V_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11V_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_11R_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11R_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTK_SMART_ROAMING),y)
+ EXTRA_CFLAGS += -DCONFIG_RTK_SMART_ROAMING
+endif
+
+ifeq ($(CONFIG_RTL_WPA3_SUPPORT),y)
+ EXTRA_CFLAGS += -DCONFIG_RTL_WPA3_SUPPORT
+ ifeq ($(CONFIG_RTL_11W_SUPPORT),n)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT
+ ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+ ifeq ($(CONFIG_WPAS_CLI),0)
+ EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT
+ endif
+ endif
+ endif
+endif
diff --git a/package/kernel/realtek-wl/files/etc/init.d/mwlan b/package/kernel/realtek-wl/files/etc/init.d/mwlan
new file mode 100755
index 0000000..31173ea
--- /dev/null
+++ b/package/kernel/realtek-wl/files/etc/init.d/mwlan
@@ -0,0 +1,319 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2010-2018 OpenWrt.org
+
+START=40
+
+SET_WLAN="iwpriv wlan1"
+SET_WLAN_PARAM="$SET_WLAN set_mib"
+IFCONFIG=ifconfig
+
+wlan_power_ctrl() {
+ local on=$1
+ local name
+ local power
+ local pcie_device
+
+ for name in $(ls /sys/devices/platform | grep "rfkill"); do
+ [ ! -e "/sys/devices/platform/${name}/pwr_ctrl" ] && continue
+ power=0
+ $(cat /sys/devices/platform/${name}/pwr_ctrl | grep -q on) && power=1
+ [ "$power" == "$on" ] && continue
+ echo $on > /sys/devices/platform/${name}/pwr_ctrl
+ done
+}
+
+rtl8192fr_write_cali() {
+ $SET_WLAN set_mib pwrlevelCCK_A=2828282828282828282828282828
+ $SET_WLAN set_mib pwrlevelCCK_B=2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ $SET_WLAN set_mib pwrlevelHT40_1S_A=2727272727272727272727272727
+ $SET_WLAN set_mib pwrlevelHT40_1S_B=2A2A2A2A2A2A2A2A2A2A2A2A2A2A
+ $SET_WLAN set_mib pwrdiffOFDM=2828282828282828282828282828
+ $SET_WLAN set_mib xcap=23
+ $SET_WLAN set_mib thermal=35
+
+}
+rtl8812fr_write_cali() {
+ $SET_WLAN set_mib pwrlevel5GHT40_1S_A=00000000000000000000000000000000000000000000000000000000000000000000005A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A54545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454
+ $SET_WLAN set_mib pwrlevel5GHT40_1S_B=00000000000000000000000000000000000000000000000000000000000000000000005A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A54545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454
+ $SET_WLAN set_mib pwrdiff5GHT40_2S=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ $SET_WLAN set_mib pwrdiff5GHT20=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ $SET_WLAN set_mib pwrdiff5GOFDM=00000000000000000000000000000000000000000000000000000000000000000000005400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ $SET_WLAN set_mib pwrlevel_TSSI5GHT40_1S_A=0000000000000000000000000000000000000000000000000000000000000000000000FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFAFAFAFAFAFAFAFAFAFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFBFBFBFBFBFBFBFBFCFCFCFCFCFCFCFCFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB
+ $SET_WLAN set_mib pwrlevel_TSSI5GHT40_1S_B=0000000000000000000000000000000000000000000000000000000000000000000000FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFDFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ $SET_WLAN set_mib xcap=32
+ $SET_WLAN set_mib thermal1=33
+ $SET_WLAN set_mib thermal2=32
+}
+rtl_write_cali() {
+ grep -l "RTL8192F" /proc/wlan1/mib_rf > /dev/null
+ if [ $? -eq 0 ]; then
+ rtl8192fr_write_cali
+ fi
+ grep -l "RTL8812" /proc/wlan1/mib_rf > /dev/null
+ if [ $? -eq 0 ]; then
+ rtl8812_write_cali
+ fi
+}
+wlan_ops_lock() {
+ echo mwlan > /sys/power/wake_lock
+}
+
+wlan_ops_unlock() {
+ echo mwlan > /sys/power/wake_unlock
+}
+
+wlan_ubus_event() {
+ case $1 in
+ start )
+ ubus send mwlan.stat.action ' { "stat" : "start" } ' ;;
+ up )
+ ubus send mwlan.stat.action ' { "stat" : "up" } ' ;;
+ down )
+ ubus send mwlan.stat.action ' { "stat" : "down" } ' ;;
+ * )
+ echo "unknown option ($1)" ;;
+ esac
+}
+
+
+wlan_enable_vap() {
+ local _device _disabled _ifname
+
+ _wlan_enable_vap() {
+ config_get _device $1 device
+ config_get _disabled $_device disabled
+ config_get _ifname $1 ifname
+ [ 1 == "$disabled" ] && return
+
+ case $_ifname in
+ *-va[0-9])
+ iwpriv ${_ifname%-va*} set_mib vap_enable=1
+ ;;
+ *)
+ ;;
+ esac
+
+ }
+
+ config_foreach _wlan_enable_vap wifi-iface
+}
+
+find_phy() {
+ [ -n "$path" ] && {
+ for phy in /sys/devices/$path/ieee80211/phy*; do
+ [ -e "$phy" ] && {
+ phy="${phy##*/}"
+ return 0
+ }
+ done
+ }
+ [ -n "$macaddr" ] && {
+ for phy in $(ls /sys/class/ieee80211 2>/dev/null); do
+ grep -i -q "$macaddr" "/sys/class/ieee80211/${phy}/macaddress" && return 0
+ done
+ }
+ return 1
+}
+
+wlan_set_sta_channel_to_ap() {
+ local _device _disabled _ifname _ssid
+ local ap_device=$1 root_ifname=$2 ap_channel=$3 sta_channel=
+ local path macaddr phy
+
+ __wlan_set_sta_channel_to_ap() {
+ config_get _device $1 device
+ config_get _disabled $_device disabled
+ config_get path $_device path
+ config_get _mode $1 mode
+ config_get _ifname $1 ifname
+ config_get _ssid $1 ssid
+ config_get macaddr $1 macaddr
+
+ [ 1 == "$_disabled" ] && return
+ [ "${_mode}" != "sta" ] && return
+ [ "$root_ifname" != "${_ifname%%-v*}" ] && return
+
+ find_phy || {
+ echo "Could not find PHY for device '$_device'"
+ return
+ }
+ for i in $( seq 1 10 ); do
+ iw phy "$phy" interface add "$root_ifname" type station
+ ifconfig "$root_ifname" hw ether "$macaddr"
+ ifconfig "$root_ifname" up 2>/dev/null && {
+ echo "==> $root_ifname is up for scan ssid" > /dev/kmsg
+ break
+ }
+ sleep 1
+ done
+ for i in $( seq 1 10 ); do
+ freq=$(iw dev "$root_ifname" scan ssid "$_ssid" | awk '/freq/{print $2}' | head -1)
+ if [ $freq -ge 2412 -a $freq -le 2472 ]; then
+ sta_channel=$((($freq - 2407)/5))
+ elif [ $freq -eq 2484 ]; then
+ sta_channel=14
+ elif [ $freq -ge 4900 -a $freq -lt 5000 ]; then
+ sta_channel=$((($freq - 4000)/5))
+ else
+ sta_channel=
+ sleep 1
+ echo "==> try $i times to scan ssid $_ssid" > /dev/kmsg
+ continue
+ fi
+ break
+ done
+
+ echo "==> scan $_ssid, get channel = $sta_channel" > /dev/kmsg
+ [ -n "$sta_channel" ] && {
+ [ "$sta_channel" != "$ap_channel" ] && {
+ uci_set wireless $ap_device channel $sta_channel
+ uci_commit wireless
+ echo "==> $ap_device: set channel to $sta_channel" > /dev/kmsg
+ }
+ eval wifichannel_${root_ifname}=\${sta_channel}
+ }
+ }
+
+ eval wifichannel=\${wifichannel_${root_ifname}}
+ [ -n "$wifichannel" ] && {
+ echo "==> already set channel for root interface" > /dev/kmsg
+ [ "$wifichannel" != "$ap_channel" ] && {
+ echo "==> $ap_device: set channel to $wifichannel, same with ${root_ifname}" > /dev/kmsg
+ uci_set wireless $ap_device channel $wifichannel
+ uci_commit wireless
+ }
+ return
+ }
+
+ config_foreach __wlan_set_sta_channel_to_ap wifi-iface
+}
+
+wlan_updown() {
+ local act=up i=1
+ local _device _disabled _ifname _mode _up _isolate _channel
+ local ret
+
+ __wlan_updown() {
+ config_get _device $1 device
+ config_get _ifname $1 ifname
+ config_get _mode $1 mode
+ config_get _isolate $1 isolate
+
+ config_get _channel $_device channel
+ config_get _disabled $_device disabled
+ if [ "$act" == "down" ]; then
+ $(/sbin/wifi status $_device 2>/dev/null | grep -q "\"up\": true") || return
+ /sbin/wifi down $_device
+ elif [ "$act" == "up" -a "$_disabled" != "1" ]; then
+ $(/sbin/wifi status $_device 2>/dev/null | grep -q "\"up\": true") && return
+
+ case $_ifname in
+ *-vxd)
+ iwpriv $_ifname copy_mib
+ ;;
+ *)
+ ;;
+ esac
+ if [ "${_mode}" == "sta" ]; then
+ iwpriv $_ifname set_mib opmode=8
+ else
+ iwpriv $_ifname set_mib opmode=16
+ # AP need to use same channel with STA
+ wlan_set_sta_channel_to_ap $_device ${_ifname%%-v*} $_channel
+ fi
+
+ /sbin/wifi up $_device
+ else
+ return
+ fi
+
+ while [ $i -lt 20 ]
+ do
+ _up=0
+ $(/sbin/wifi status $_device 2>/dev/null | grep -q "\"up\": true") && _up=1
+ if [ "$act" == "down" -a "$_up" == "0" ]; then
+ break;
+ elif [ "$act" == "up" -a "$_up" == "1" ]; then
+ if [ $_mode == "ap" ]; then
+ if [ $_isolate == "1" ]; then
+ iwpriv $_ifname set_mib block_relay=1
+ else
+ iwpriv $_ifname set_mib block_relay=0
+ fi
+ fi
+ break;
+ fi
+ sleep 1
+ i=$(($i+1))
+ done
+ [ "$i" -ge "20" ] && LOGE "wlan_updown $act ${_device} failed" && ret=1
+ }
+
+ ret=0
+ [ "$#" -ge "1" ] && act=$1
+
+ config_load wireless
+
+ [ "$act" == "up" ] && wlan_enable_vap
+ config_foreach __wlan_updown wifi-iface
+ return $ret
+}
+
+start() {
+ wlan_ops_lock
+ wlan_ubus_event start
+ wlan_power_ctrl 1
+ wlan_updown up
+ wlan_ubus_event up
+ wlan_ops_unlock
+}
+
+boot() {
+ wlan_check_wifi_exist() {
+ local _ifname _device
+
+ config_get _device $1 device
+ config_get _disabled $_device disabled
+ config_get _ifname $1 ifname
+
+ if [ $_disabled == "1" ]; then
+ mkdir -p /var/wifi_ok
+ touch /var/wifi_ok/$_device
+ else
+ ifconfig -a | grep -q $_ifname && {
+ mkdir -p /var/wifi_ok
+ touch /var/wifi_ok/$_device
+ }
+ fi
+ }
+
+ start
+ sleep 1
+ config_load wireless
+ config_foreach wlan_check_wifi_exist wifi-iface
+}
+
+stop() {
+ wlan_ops_lock
+ wlan_updown down
+ sleep 1
+ wlan_power_ctrl 0
+ wlan_ubus_event down
+ wlan_ops_unlock
+}
+
+restart() {
+ wlan_ops_lock
+ wlan_power_ctrl 1
+ wlan_updown down
+ wlan_updown up
+ wlan_ops_unlock
+}
+
+reload() {
+ wlan_ops_lock
+ wlan_power_ctrl 1
+ wlan_updown down
+ wlan_updown up
+ wlan_ops_unlock
+}
diff --git a/package/kernel/realtek-wl/files/etc/uci-defaults/03_wireless-fixup b/package/kernel/realtek-wl/files/etc/uci-defaults/03_wireless-fixup
new file mode 100644
index 0000000..9affbce
--- /dev/null
+++ b/package/kernel/realtek-wl/files/etc/uci-defaults/03_wireless-fixup
@@ -0,0 +1,121 @@
+#!/bin/sh
+. /lib/functions.sh
+
+lookup_macaddr() {
+ local found=0
+
+ __lookup_macaddr() {
+ config_get macaddr $1 macaddr
+ [ -n "$macaddr" ] && found=1
+ }
+
+ config_load wireless
+ config_foreach __lookup_macaddr wifi-iface
+ return $found
+}
+
+#
+# Set the MAC address from MRD, if not exist generate
+# randomly and save it
+#
+set_wifi_if_mac() {
+ local _ifname rootif save_name gen_mac
+
+ config_get _ifname $1 ifname
+ case $_ifname in
+ *-vxd)
+ # VXD use same macaddr from root interface
+ rootif=${_ifname%-vxd*}
+ rootif=s_${rootif//[^0-9,a-z,A-Z]/_}
+ eval wifimac=\${wifimac_${rootif}}
+ gen_mac=1
+ ;;
+ *-va[0-9])
+ # VA generate mac from root interface
+ rootif=${_ifname%-va*}
+ rootif=s_${rootif//[^0-9,a-z,A-Z]/_}
+ eval wifimac=\${wifimac_${rootif}}
+ wifimac=${wifimac%:*}
+ wifimac=${wifimac}:`eval $RANDOM`
+ gen_mac=1
+ ;;
+ *)
+ gen_mac=0
+ wifimac=
+ ;;
+ esac
+
+ # variable name should not has "-", make a change here
+ save_name=s_${_ifname//[^0-9,a-z,A-Z]/_}
+ [ -n "$wifimac_left" -a "$gen_mac" == "0" ] && {
+ eval wifimac=\${wifimac_${save_name}}
+ if [ "$wifimac" == "" ]; then
+ wifimac_left=$(echo ${wifimac_left} | sed 's/^[ \t]*//g')
+ wifimac_left=$(echo ${wifimac_left} | sed 's/[ \t]*$//g')
+ wifimac=${wifimac_left%% *}
+ wifimac_left=${wifimac_left}" "
+ wifimac_left=${wifimac_left#* }
+ eval wifimac_${save_name}=\${wifimac}
+ else
+ wifimac=${wifimac%:*}
+ wifimac=${wifimac}:`eval $RANDOM`
+ fi
+ }
+
+ [ -z "$wifimac" ] && {
+ eval wifimac=\${wifimac_${save_name}}
+ if [ "$wifimac" == "" ]; then
+ wifimac=00:`eval $RANDOM`:`eval $RANDOM`:`eval $RANDOM`:`eval $RANDOM`:`eval $RANDOM`
+ eval wifimac_${save_name}=\${wifimac}
+ else
+ wifimac=${wifimac%:*}
+ wifimac=${wifimac}:`eval $RANDOM`
+ fi
+ echo "$wifimac_file not exist, create it with random address: $wifimac"
+ }
+
+ uci_set wireless_tmp $1 macaddr $wifimac
+}
+
+wlan_fixup_wifi_iface() {
+ local wifimac_file="/NVM/wifi_addr"
+
+ __wlan_fixup_wifi_iface() {
+ local _ssid _macaddr
+
+ config_get mode $1 mode
+ config_get ssid $1 ssid
+
+ set_wifi_if_mac $1
+ [ "$mode" == "ap" ] && {
+ FILTER_MAC="echo \$wifimac | sed 's/://g'"
+ _macaddr=`eval ${FILTER_MAC}`
+ _macaddr=${_macaddr:8:4}
+ _ssid=${ssid%%#[0-9,a-f][0-9,a-f][0-9,a-f][0-9,a-f]}#${_macaddr}
+ uci_set wireless_tmp $1 ssid $_ssid
+ }
+ }
+
+ wifimac_left=`cat $wifimac_file 2>/dev/null`
+ RANDOM="head /dev/urandom | tr -dc "0123456789abcdef" | head -c2"
+
+ config_load wireless_tmp
+ config_foreach __wlan_fixup_wifi_iface wifi-iface
+ uci_commit wireless_tmp
+}
+
+[ -s /etc/config/wireless ] || return 1
+lookup_macaddr || return 1
+
+# Load AP_MRD before
+/bin/mrdloader
+
+UCI_CONFIG_DIR=/var/uci_conf
+mkdir -p $UCI_CONFIG_DIR
+cp /etc/config/wireless $UCI_CONFIG_DIR/wireless_tmp
+wlan_fixup_wifi_iface
+mv $UCI_CONFIG_DIR/wireless_tmp /etc/config/wireless
+rm -f /var/.uci/wireless_tmp
+rm -rf $UCI_CONFIG_DIR
+UCI_CONFIG_DIR=
+return 1
diff --git a/package/kernel/realtek-wl/files/lib/mwlan-1803dkb b/package/kernel/realtek-wl/files/lib/mwlan-1803dkb
new file mode 100755
index 0000000..b6c7c41
--- /dev/null
+++ b/package/kernel/realtek-wl/files/lib/mwlan-1803dkb
@@ -0,0 +1,316 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2010-2018 OpenWrt.org
+
+START=40
+
+SET_WLAN="iwpriv wlan1"
+SET_WLAN_PARAM="$SET_WLAN set_mib"
+IFCONFIG=ifconfig
+
+wlan_power_ctrl() {
+ local on=$1
+ local name
+ local power
+ for name in $(ls /sys/devices | grep "rfkill"); do
+ [ ! -e "/sys/devices/${name}/pwr_ctrl" ] && continue
+ power=0
+ $(cat /sys/devices/${name}/pwr_ctrl | grep -q on) && power=1
+ [ "$power" == "$on" ] && continue
+ echo $on > /sys/devices/${name}/pwr_ctrl
+ done
+}
+
+rtl8192fr_write_cali() {
+ $SET_WLAN set_mib pwrlevelCCK_A=2828282828282828282828282828
+ $SET_WLAN set_mib pwrlevelCCK_B=2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ $SET_WLAN set_mib pwrlevelHT40_1S_A=2727272727272727272727272727
+ $SET_WLAN set_mib pwrlevelHT40_1S_B=2A2A2A2A2A2A2A2A2A2A2A2A2A2A
+ $SET_WLAN set_mib pwrdiffOFDM=2828282828282828282828282828
+ $SET_WLAN set_mib xcap=23
+ $SET_WLAN set_mib thermal=35
+
+}
+rtl8812fr_write_cali() {
+ $SET_WLAN set_mib pwrlevel5GHT40_1S_A=00000000000000000000000000000000000000000000000000000000000000000000005A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A54545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454
+ $SET_WLAN set_mib pwrlevel5GHT40_1S_B=00000000000000000000000000000000000000000000000000000000000000000000005A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A54545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454
+ $SET_WLAN set_mib pwrdiff5GHT40_2S=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ $SET_WLAN set_mib pwrdiff5GHT20=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ $SET_WLAN set_mib pwrdiff5GOFDM=00000000000000000000000000000000000000000000000000000000000000000000005400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ $SET_WLAN set_mib pwrlevel_TSSI5GHT40_1S_A=0000000000000000000000000000000000000000000000000000000000000000000000FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFAFAFAFAFAFAFAFAFAFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFBFBFBFBFBFBFBFBFCFCFCFCFCFCFCFCFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB
+ $SET_WLAN set_mib pwrlevel_TSSI5GHT40_1S_B=0000000000000000000000000000000000000000000000000000000000000000000000FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFDFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ $SET_WLAN set_mib xcap=32
+ $SET_WLAN set_mib thermal1=33
+ $SET_WLAN set_mib thermal2=32
+}
+rtl_write_cali() {
+ grep -l "RTL8192F" /proc/wlan1/mib_rf > /dev/null
+ if [ $? -eq 0 ]; then
+ rtl8192fr_write_cali
+ fi
+ grep -l "RTL8812" /proc/wlan1/mib_rf > /dev/null
+ if [ $? -eq 0 ]; then
+ rtl8812_write_cali
+ fi
+}
+wlan_ops_lock() {
+ echo mwlan > /sys/power/wake_lock
+}
+
+wlan_ops_unlock() {
+ echo mwlan > /sys/power/wake_unlock
+}
+
+wlan_ubus_event() {
+ case $1 in
+ start )
+ ubus send mwlan.stat.action ' { "stat" : "start" } ' ;;
+ up )
+ ubus send mwlan.stat.action ' { "stat" : "up" } ' ;;
+ down )
+ ubus send mwlan.stat.action ' { "stat" : "down" } ' ;;
+ * )
+ echo "unknown option ($1)" ;;
+ esac
+}
+
+wlan_enable_vap() {
+ local _device _disabled _ifname
+
+ _wlan_enable_vap() {
+ config_get _device $1 device
+ config_get _disabled $_device disabled
+ config_get _ifname $1 ifname
+ [ 1 == "$disabled" ] && return
+
+ case $_ifname in
+ *-va[0-9])
+ iwpriv ${_ifname%-va*} set_mib vap_enable=1
+ ;;
+ *)
+ ;;
+ esac
+
+ }
+
+ config_foreach _wlan_enable_vap wifi-iface
+}
+
+find_phy() {
+ [ -n "$path" ] && {
+ for phy in /sys/devices/$path/ieee80211/phy*; do
+ [ -e "$phy" ] && {
+ phy="${phy##*/}"
+ return 0
+ }
+ done
+ }
+ [ -n "$macaddr" ] && {
+ for phy in $(ls /sys/class/ieee80211 2>/dev/null); do
+ grep -i -q "$macaddr" "/sys/class/ieee80211/${phy}/macaddress" && return 0
+ done
+ }
+ return 1
+}
+
+wlan_set_sta_channel_to_ap() {
+ local _device _disabled _ifname _ssid
+ local ap_device=$1 root_ifname=$2 ap_channel=$3 sta_channel=
+ local path macaddr phy
+
+ __wlan_set_sta_channel_to_ap() {
+ config_get _device $1 device
+ config_get _disabled $_device disabled
+ config_get path $_device path
+ config_get _mode $1 mode
+ config_get _ifname $1 ifname
+ config_get _ssid $1 ssid
+ config_get macaddr $1 macaddr
+
+ [ 1 == "$_disabled" ] && return
+ [ "${_mode}" != "sta" ] && return
+ [ "$root_ifname" != "${_ifname%%-v*}" ] && return
+
+ find_phy || {
+ echo "Could not find PHY for device '$_device'"
+ return
+ }
+ for i in $( seq 1 10 ); do
+ iw phy "$phy" interface add "$root_ifname" type station
+ ifconfig "$root_ifname" hw ether "$macaddr"
+ ifconfig "$root_ifname" up 2>/dev/null && {
+ echo "==> $root_ifname is up for scan ssid" > /dev/kmsg
+ break
+ }
+ sleep 1
+ done
+ for i in $( seq 1 10 ); do
+ freq=$(iw dev "$root_ifname" scan ssid "$_ssid" | awk '/freq/{print $2}' | head -1)
+ if [ $freq -ge 2412 -a $freq -le 2472 ]; then
+ sta_channel=$((($freq - 2407)/5))
+ elif [ $freq -eq 2484 ]; then
+ sta_channel=14
+ elif [ $freq -ge 4900 -a $freq -lt 5000 ]; then
+ sta_channel=$((($freq - 4000)/5))
+ else
+ sta_channel=
+ sleep 1
+ echo "==> try $i times to scan ssid $_ssid" > /dev/kmsg
+ continue
+ fi
+ break
+ done
+
+ echo "==> scan $_ssid, get channel = $sta_channel" > /dev/kmsg
+ [ -n "$sta_channel" ] && {
+ [ "$sta_channel" != "$ap_channel" ] && {
+ uci_set wireless $ap_device channel $sta_channel
+ uci_commit wireless
+ echo "==> $ap_device: set channel to $sta_channel" > /dev/kmsg
+ }
+ eval wifichannel_${root_ifname}=\${sta_channel}
+ }
+ }
+
+ eval wifichannel=\${wifichannel_${root_ifname}}
+ [ -n "$wifichannel" ] && {
+ echo "==> already set channel for root interface" > /dev/kmsg
+ [ "$wifichannel" != "$ap_channel" ] && {
+ echo "==> $ap_device: set channel to $wifichannel, same with ${root_ifname}" > /dev/kmsg
+ uci_set wireless $ap_device channel $wifichannel
+ uci_commit wireless
+ }
+ return
+ }
+
+ config_foreach __wlan_set_sta_channel_to_ap wifi-iface
+}
+
+wlan_updown() {
+ local act=up i=1
+ local _device _disabled _ifname _mode _up _isolate _channel
+ local ret
+
+ __wlan_updown() {
+ config_get _device $1 device
+ config_get _ifname $1 ifname
+ config_get _mode $1 mode
+ config_get _isolate $1 isolate
+
+ config_get _channel $_device channel
+ config_get _disabled $_device disabled
+ if [ "$act" == "down" ]; then
+ $(/sbin/wifi status $_device 2>/dev/null | grep -q "\"up\": true") || return
+ /sbin/wifi down $_device
+ elif [ "$act" == "up" -a "$_disabled" != "1" ]; then
+ $(/sbin/wifi status $_device 2>/dev/null | grep -q "\"up\": true") && return
+
+ case $_ifname in
+ *-vxd)
+ iwpriv $_ifname copy_mib
+ ;;
+ *)
+ ;;
+ esac
+ if [ "${_mode}" == "sta" ]; then
+ iwpriv $_ifname set_mib opmode=8
+ else
+ iwpriv $_ifname set_mib opmode=16
+ # AP need to use same channel with STA
+ wlan_set_sta_channel_to_ap $_device ${_ifname%%-v*} $_channel
+ fi
+
+ /sbin/wifi up $_device
+ else
+ return
+ fi
+
+ while [ $i -lt 20 ]
+ do
+ _up=0
+ $(/sbin/wifi status $_device 2>/dev/null | grep -q "\"up\": true") && _up=1
+ if [ "$act" == "down" -a "$_up" == "0" ]; then
+ break;
+ elif [ "$act" == "up" -a "$_up" == "1" ]; then
+ if [ $_mode == "ap" ]; then
+ if [ $_isolate == "1" ]; then
+ iwpriv $_ifname set_mib block_relay=1
+ else
+ iwpriv $_ifname set_mib block_relay=0
+ fi
+ fi
+ break;
+ fi
+ sleep 1
+ i=$(($i+1))
+ done
+ [ "$i" -ge "20" ] && LOGE "wlan_updown $act ${_device} failed" && ret=1
+ }
+
+ ret=0
+ [ "$#" -ge "1" ] && act=$1
+
+ config_load wireless
+
+ [ "$act" == "up" ] && wlan_enable_vap
+ config_foreach __wlan_updown wifi-iface
+ return $ret
+}
+
+start() {
+ wlan_ops_lock
+ wlan_ubus_event start
+ wlan_power_ctrl 1
+ wlan_updown up
+ wlan_ubus_event up
+ wlan_ops_unlock
+}
+
+boot() {
+ wlan_check_wifi_exist() {
+ local _ifname _device _disabled
+
+ config_get _device $1 device
+ config_get _disabled $_device disabled
+ config_get _ifname $1 ifname
+
+ if [ $_disabled == "1" ]; then
+ mkdir -p /var/wifi_ok
+ touch /var/wifi_ok/$_device
+ else
+ ifconfig -a | grep -q $_ifname && {
+ mkdir -p /var/wifi_ok
+ touch /var/wifi_ok/$_device
+ }
+ fi
+ }
+
+ start
+ sleep 1
+ config_load wireless
+ config_foreach wlan_check_wifi_exist wifi-iface
+}
+
+stop() {
+ wlan_ops_lock
+ wlan_updown down
+ sleep 1
+ wlan_power_ctrl 0
+ wlan_ubus_event down
+ wlan_ops_unlock
+}
+
+restart() {
+ wlan_ops_lock
+ wlan_power_ctrl 1
+ wlan_updown down
+ wlan_updown up
+ wlan_ops_unlock
+}
+
+reload() {
+ wlan_ops_lock
+ wlan_power_ctrl 1
+ wlan_updown down
+ wlan_updown up
+ wlan_ops_unlock
+}
diff --git a/package/kernel/realtek-wl/files/lib/mwlan-1826sp801 b/package/kernel/realtek-wl/files/lib/mwlan-1826sp801
new file mode 100755
index 0000000..aae009d
--- /dev/null
+++ b/package/kernel/realtek-wl/files/lib/mwlan-1826sp801
@@ -0,0 +1,300 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2010-2018 OpenWrt.org
+
+START=40
+
+SET_WLAN="iwpriv wlan1"
+SET_WLAN_PARAM="$SET_WLAN set_mib"
+IFCONFIG=ifconfig
+
+wlan_power_ctrl() {
+ local on=$1
+ local name
+ local power
+}
+
+rtl8192fr_write_cali() {
+ $SET_WLAN set_mib pwrlevelCCK_A=2828282828282828282828282828
+ $SET_WLAN set_mib pwrlevelCCK_B=2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+ $SET_WLAN set_mib pwrlevelHT40_1S_A=2727272727272727272727272727
+ $SET_WLAN set_mib pwrlevelHT40_1S_B=2A2A2A2A2A2A2A2A2A2A2A2A2A2A
+ $SET_WLAN set_mib pwrdiffOFDM=2828282828282828282828282828
+ $SET_WLAN set_mib xcap=23
+ $SET_WLAN set_mib thermal=35
+
+}
+rtl8812fr_write_cali() {
+ $SET_WLAN set_mib pwrlevel5GHT40_1S_A=00000000000000000000000000000000000000000000000000000000000000000000005A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A54545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454
+ $SET_WLAN set_mib pwrlevel5GHT40_1S_B=00000000000000000000000000000000000000000000000000000000000000000000005A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A54545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454
+ $SET_WLAN set_mib pwrdiff5GHT40_2S=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ $SET_WLAN set_mib pwrdiff5GHT20=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ $SET_WLAN set_mib pwrdiff5GOFDM=00000000000000000000000000000000000000000000000000000000000000000000005400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ $SET_WLAN set_mib pwrlevel_TSSI5GHT40_1S_A=0000000000000000000000000000000000000000000000000000000000000000000000FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFAFAFAFAFAFAFAFAFAFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFBFBFBFBFBFBFBFBFCFCFCFCFCFCFCFCFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB
+ $SET_WLAN set_mib pwrlevel_TSSI5GHT40_1S_B=0000000000000000000000000000000000000000000000000000000000000000000000FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFDFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ $SET_WLAN set_mib xcap=32
+ $SET_WLAN set_mib thermal1=33
+ $SET_WLAN set_mib thermal2=32
+}
+
+wlan_ops_lock() {
+ echo mwlan > /sys/power/wake_lock
+}
+
+wlan_ops_unlock() {
+ echo mwlan > /sys/power/wake_unlock
+}
+
+wlan_ubus_event() {
+ case $1 in
+ start )
+ ubus send mwlan.stat.action ' { "stat" : "start" } ' ;;
+ up )
+ ubus send mwlan.stat.action ' { "stat" : "up" } ' ;;
+ down )
+ ubus send mwlan.stat.action ' { "stat" : "down" } ' ;;
+ * )
+ echo "unknown option ($1)" ;;
+ esac
+}
+
+wlan_enable_vap() {
+ local _device _disabled _ifname
+
+ _wlan_enable_vap() {
+ config_get _device $1 device
+ config_get _disabled $_device disabled
+ config_get _ifname $1 ifname
+ [ 1 == "$disabled" ] && return
+
+ case $_ifname in
+ *-va[0-9])
+ iwpriv ${_ifname%-va*} set_mib vap_enable=1
+ ;;
+ *)
+ ;;
+ esac
+
+ }
+
+ config_foreach _wlan_enable_vap wifi-iface
+}
+
+find_phy() {
+ [ -n "$path" ] && {
+ for phy in /sys/devices/$path/ieee80211/phy*; do
+ [ -e "$phy" ] && {
+ phy="${phy##*/}"
+ return 0
+ }
+ done
+ }
+ [ -n "$macaddr" ] && {
+ for phy in $(ls /sys/class/ieee80211 2>/dev/null); do
+ grep -i -q "$macaddr" "/sys/class/ieee80211/${phy}/macaddress" && return 0
+ done
+ }
+ return 1
+}
+
+wlan_set_sta_channel_to_ap() {
+ local _device _disabled _ifname _ssid
+ local ap_device=$1 root_ifname=$2 ap_channel=$3 sta_channel=
+ local path macaddr phy
+
+ __wlan_set_sta_channel_to_ap() {
+ config_get _device $1 device
+ config_get _disabled $_device disabled
+ config_get path $_device path
+ config_get _mode $1 mode
+ config_get _ifname $1 ifname
+ config_get _ssid $1 ssid
+ config_get macaddr $1 macaddr
+
+ [ 1 == "$_disabled" ] && return
+ [ "${_mode}" != "sta" ] && return
+ [ "$root_ifname" != "${_ifname%%-v*}" ] && return
+
+ find_phy || {
+ echo "Could not find PHY for device '$_device'"
+ return
+ }
+ for i in $( seq 1 10 ); do
+ iw phy "$phy" interface add "$root_ifname" type station
+ ifconfig "$root_ifname" hw ether "$macaddr"
+ ifconfig "$root_ifname" up 2>/dev/null && {
+ echo "==> $root_ifname is up for scan ssid" > /dev/kmsg
+ break
+ }
+ sleep 1
+ done
+ for i in $( seq 1 10); do
+ freq=$(iw dev "$root_ifname" scan ssid "$_ssid" | awk '/freq/{print $2}' | head -1)
+ if [ $freq -ge 2412 -a $freq -le 2472 ]; then
+ sta_channel=$((($freq - 2407)/5))
+ elif [ $freq -eq 2484 ]; then
+ sta_channel=14
+ elif [ $freq -ge 4900 -a $freq -lt 5000 ]; then
+ sta_channel=$((($freq - 4000)/5))
+ else
+ sta_channel=
+ sleep 1
+ echo "==> try $i times to scan ssid $_ssid" > /dev/kmsg
+ continue
+ fi
+ break
+ done
+
+ echo "==> scan $_ssid, get channel = $sta_channel" > /dev/kmsg
+ [ -n "$sta_channel" ] && {
+ [ "$sta_channel" != "$ap_channel" ] && {
+ uci_set wireless $ap_device channel $sta_channel
+ uci_commit wireless
+ echo "==> $ap_device: set channel to $sta_channel" > /dev/kmsg
+ }
+ eval wifichannel_${root_ifname}=\${sta_channel}
+ }
+ }
+
+ eval wifichannel=\${wifichannel_${root_ifname}}
+ [ -n "$wifichannel" ] && {
+ echo "==> already set channel for root interface" > /dev/kmsg
+ [ "$wifichannel" != "$ap_channel" ] && {
+ echo "==> $ap_device: set channel to $wifichannel, same with ${root_ifname}" > /dev/kmsg
+ uci_set wireless $ap_device channel $wifichannel
+ uci_commit wireless
+ }
+ return
+ }
+
+ config_foreach __wlan_set_sta_channel_to_ap wifi-iface
+}
+
+wlan_updown() {
+ local act=up i=1
+ local _device _disabled _ifname _mode _up _isolate _channel
+ local ret
+
+ __wlan_updown() {
+ config_get _device $1 device
+ config_get _ifname $1 ifname
+ config_get _mode $1 mode
+ config_get _isolate $1 isolate
+
+ config_get _channel $_device channel
+ config_get _disabled $_device disabled
+ if [ "$act" == "down" ]; then
+ $(/sbin/wifi status $_device 2>/dev/null | grep -q "\"up\": true") || return
+ /sbin/wifi down $_device
+ elif [ "$act" == "up" -a "$_disabled" != "1" ]; then
+ $(/sbin/wifi status $_device 2>/dev/null | grep -q "\"up\": true") && return
+
+ case $_ifname in
+ *-vxd)
+ iwpriv $_ifname copy_mib
+ ;;
+ *)
+ ;;
+ esac
+ if [ "${_mode}" == "sta" ]; then
+ iwpriv $_ifname set_mib opmode=8
+ else
+ iwpriv $_ifname set_mib opmode=16
+ # AP need to use same channel with STA
+ wlan_set_sta_channel_to_ap $_device ${_ifname%%-v*} $_channel
+ fi
+
+ /sbin/wifi up $_device
+ else
+ return
+ fi
+
+ while [ $i -lt 20 ]
+ do
+ _up=0
+ $(/sbin/wifi status $_device 2>/dev/null | grep -q "\"up\": true") && _up=1
+ if [ "$act" == "down" -a "$_up" == "0" ]; then
+ break;
+ elif [ "$act" == "up" -a "$_up" == "1" ]; then
+ if [ $_mode == "ap" ]; then
+ if [ $_isolate == "1" ]; then
+ iwpriv $_ifname set_mib block_relay=1
+ else
+ iwpriv $_ifname set_mib block_relay=0
+ fi
+ fi
+ break;
+ fi
+ sleep 1
+ i=$(($i+1))
+ done
+ [ "$i" -ge "20" ] && LOGE "wlan_updown $act ${_device} failed" && ret=1
+ }
+
+ ret=0
+ [ "$#" -ge "1" ] && act=$1
+
+ config_load wireless
+
+ [ "$act" == "up" ] && wlan_enable_vap
+ config_foreach __wlan_updown wifi-iface
+ return $ret
+}
+
+start() {
+ wlan_ops_lock
+ wlan_ubus_event start
+ wlan_power_ctrl 1
+ wlan_updown up
+ wlan_ubus_event up
+ wlan_ops_unlock
+}
+
+boot() {
+ wlan_check_wifi_exist() {
+ local _ifname _device _disabled
+
+ config_get _device $1 device
+ config_get _disabled $_device disabled
+ config_get _ifname $1 ifname
+
+ if [ $_disabled == "1" ]; then
+ mkdir -p /var/wifi_ok
+ touch /var/wifi_ok/$_device
+ else
+ ifconfig -a | grep -q $_ifname && {
+ mkdir -p /var/wifi_ok
+ touch /var/wifi_ok/$_device
+ }
+ fi
+ }
+
+ start
+ sleep 1
+ config_load wireless
+ config_foreach wlan_check_wifi_exist wifi-iface
+}
+
+stop() {
+ wlan_ops_lock
+ wlan_updown down
+ sleep 1
+ wlan_power_ctrl 0
+ wlan_ubus_event down
+ wlan_ops_unlock
+}
+
+restart() {
+ wlan_ops_lock
+ wlan_power_ctrl 1
+ wlan_updown down
+ wlan_updown up
+ wlan_ops_unlock
+}
+
+reload() {
+ wlan_ops_lock
+ wlan_power_ctrl 1
+ wlan_updown down
+ wlan_updown up
+ wlan_ops_unlock
+}
diff --git a/package/kernel/realtek-wl/files/lib/wifi/realtek.sh b/package/kernel/realtek-wl/files/lib/wifi/realtek.sh
new file mode 100755
index 0000000..9274171
--- /dev/null
+++ b/package/kernel/realtek-wl/files/lib/wifi/realtek.sh
@@ -0,0 +1,903 @@
+append DRIVERS "realtek"
+
+set_open() {
+ echo "0" > $CONFIG_ROOT_DIR/$1/macclone_enable
+
+ echo "0" > $CONFIG_ROOT_DIR/$1/encrypt
+ echo "0" > $CONFIG_ROOT_DIR/$1/wep
+ echo "0" > $CONFIG_ROOT_DIR/$1/wep_default_key
+ echo "1" > $CONFIG_ROOT_DIR/$1/wep_key_type
+ echo "2" > $CONFIG_ROOT_DIR/$1/auth_type
+
+ echo "0" > $CONFIG_ROOT_DIR/$1/wsc_configured
+ echo "1" > $CONFIG_ROOT_DIR/$1/wsc_auth
+ echo "1" > $CONFIG_ROOT_DIR/$1/wsc_enc
+
+ if [ "$RP" = "0" ]; then
+ echo 0 > $CONFIG_ROOT_DIR/repeater_enabled
+ fi
+}
+
+set_wep() {
+ # wep_key_type - 0: hex mode 1: ascii
+ # wep : 1: wep-64 2: wep-128
+ echo "1" > $CONFIG_ROOT_DIR/$1/encrypt
+ echo $wep_type > $CONFIG_ROOT_DIR/$1/wep
+ echo $wep_key_idx > $CONFIG_ROOT_DIR/$1/wep_default_key
+ echo $wep_key_type > $CONFIG_ROOT_DIR/$1/wep_key_type
+ echo "2" > $CONFIG_ROOT_DIR/$1/auth_type
+
+ echo $wep64_h_key1 > $CONFIG_ROOT_DIR/$1/wepkey1_64_hex
+ echo $wep64_h_key2 > $CONFIG_ROOT_DIR/$1/wepkey2_64_hex
+ echo $wep64_h_key3 > $CONFIG_ROOT_DIR/$1/wepkey2_64_hex
+ echo $wep64_h_key4 > $CONFIG_ROOT_DIR/$1/wepkey3_64_hex
+
+ echo $wep64_a_key1 > $CONFIG_ROOT_DIR/$1/wepkey1_64_asc
+ echo $wep64_a_key2 > $CONFIG_ROOT_DIR/$1/wepkey2_64_asc
+ echo $wep64_a_key3 > $CONFIG_ROOT_DIR/$1/wepkey2_64_asc
+ echo $wep64_a_key4 > $CONFIG_ROOT_DIR/$1/wepkey3_64_asc
+
+ echo $wep128_h_key1 > $CONFIG_ROOT_DIR/$1/wepkey1_128_hex
+ echo $wep128_h_key2 > $CONFIG_ROOT_DIR/$1/wepkey2_128_hex
+ echo $wep128_h_key3 > $CONFIG_ROOT_DIR/$1/wepkey2_128_hex
+ echo $wep128_h_key4 > $CONFIG_ROOT_DIR/$1/wepkey3_128_hex
+
+ echo $wep128_a_key1 > $CONFIG_ROOT_DIR/$1/wepkey1_128_asc
+ echo $wep128_a_key2 > $CONFIG_ROOT_DIR/$1/wepkey2_128_asc
+ echo $wep128_a_key3 > $CONFIG_ROOT_DIR/$1/wepkey2_128_asc
+ echo $wep128_a_key4 > $CONFIG_ROOT_DIR/$1/wepkey3_128_asc
+
+ echo "1" > $CONFIG_ROOT_DIR/$1/wsc_configured
+ echo "1" > $CONFIG_ROOT_DIR/$1/wsc_auth
+ echo "2" > $CONFIG_ROOT_DIR/$1/wsc_enc
+ echo "0" > $CONFIG_ROOT_DIR/$1/wsc_configbyextreg
+}
+
+set_wpa_tkip() {
+ echo "2" > $CONFIG_ROOT_DIR/$1/encrypt
+ echo "0" > $CONFIG_ROOT_DIR/$1/enable_1x
+ echo "2" > $CONFIG_ROOT_DIR/$1/wpa_auth
+ echo "1" > $CONFIG_ROOT_DIR/$1/wpa_cipher
+ echo $wpa_psk > $CONFIG_ROOT_DIR/$1/wpa_psk
+
+ echo "1" > $CONFIG_ROOT_DIR/$1/wsc_configured
+ echo "2" > $CONFIG_ROOT_DIR/$1/wsc_auth
+ echo "4" > $CONFIG_ROOT_DIR/$1/wsc_enc
+ echo "0" > $CONFIG_ROOT_DIR/$1/wsc_configbyextreg
+ echo $wpa_psk > $CONFIG_ROOT_DIR/$1/wsc_psk
+}
+
+set_wpa_aes() {
+ echo "2" > $CONFIG_ROOT_DIR/$1/encrypt
+ echo "0" > $CONFIG_ROOT_DIR/$1/enable_1x
+ echo "2" > $CONFIG_ROOT_DIR/$1/wpa_auth
+ echo "2" > $CONFIG_ROOT_DIR/$1/wpa_cipher
+ echo $wpa_psk > $CONFIG_ROOT_DIR/$1/wpa_psk
+
+ echo "1" > $CONFIG_ROOT_DIR/$1/wsc_configured
+ echo "2" > $CONFIG_ROOT_DIR/$1/wsc_auth
+ echo "8" > $CONFIG_ROOT_DIR/$1/wsc_enc
+ echo "0" > $CONFIG_ROOT_DIR/$1/wsc_configbyextreg
+ echo $wpa_psk > $CONFIG_ROOT_DIR/$1/wsc_psk
+}
+
+set_wpa2_tkip () {
+ echo "4" > $CONFIG_ROOT_DIR/$1/encrypt
+ echo "0" > $CONFIG_ROOT_DIR/$1/enable_1x
+ echo "2" > $CONFIG_ROOT_DIR/$1/wpa_auth
+ echo "1" > $CONFIG_ROOT_DIR/$1/wpa2_cipher
+ echo $wpa_psk > $CONFIG_ROOT_DIR/$1/wpa_psk
+
+ echo "1" > $CONFIG_ROOT_DIR/$1/wsc_configured
+ echo "32" > $CONFIG_ROOT_DIR/$1/wsc_auth
+ echo "4" > $CONFIG_ROOT_DIR/$1/wsc_enc
+ echo "0" > $CONFIG_ROOT_DIR/$1/wsc_configbyextreg
+ echo $wpa_psk > $CONFIG_ROOT_DIR/$1/wsc_psk
+}
+
+set_wpa2_aes () {
+ echo "4" > $CONFIG_ROOT_DIR/$1/encrypt
+ echo "0" > $CONFIG_ROOT_DIR/$1/enable_1x
+ echo "2" > $CONFIG_ROOT_DIR/$1/wpa_auth
+ echo "2" > $CONFIG_ROOT_DIR/$1/wpa2_cipher
+ echo $wpa_psk > $CONFIG_ROOT_DIR/$1/wpa_psk
+
+ echo "1" > $CONFIG_ROOT_DIR/$1/wsc_configured
+ echo "32" > $CONFIG_ROOT_DIR/$1/wsc_auth
+ echo "8" > $CONFIG_ROOT_DIR/$1/wsc_enc
+ echo "0" > $CONFIG_ROOT_DIR/$1/wsc_configbyextreg
+ echo $wpa_psk > $CONFIG_ROOT_DIR/$1/wsc_psk
+}
+
+set_mixed() {
+ echo "6" > $CONFIG_ROOT_DIR/$1/encrypt
+ echo "0" > $CONFIG_ROOT_DIR/$1/enable_1x
+ echo "2" > $CONFIG_ROOT_DIR/$1/wpa_auth
+ echo "3" > $CONFIG_ROOT_DIR/$1/wpa_cipher
+ echo "3" > $CONFIG_ROOT_DIR/$1/wpa2_cipher
+ echo $wpa_psk > $CONFIG_ROOT_DIR/$1/wpa_psk
+
+ echo "1" > $CONFIG_ROOT_DIR/$1/wsc_configured
+ echo "34" > $CONFIG_ROOT_DIR/$1/wsc_auth
+ echo "12" > $CONFIG_ROOT_DIR/$1/wsc_enc
+ echo "0" > $CONFIG_ROOT_DIR/$1/wsc_configbyextreg
+ echo $wpa_psk > $CONFIG_ROOT_DIR/$1/wsc_psk
+}
+
+set_sae() {
+ echo "8" > $CONFIG_ROOT_DIR/$1/encrypt
+ echo "2" > $CONFIG_ROOT_DIR/$1/authtype
+ echo "2" > $CONFIG_ROOT_DIR/$1/encmode
+ echo "0" > $CONFIG_ROOT_DIR/$1/wpa_cipher
+ echo "8" > $CONFIG_ROOT_DIR/$1/wpa2_cipher
+ echo $wpa_psk > $CONFIG_ROOT_DIR/$1/wpa_psk
+}
+
+set_sae_mixed() {
+ echo "10" > $CONFIG_ROOT_DIR/$1/encrypt
+ echo "2" > $CONFIG_ROOT_DIR/$1/authtype
+ echo "2" > $CONFIG_ROOT_DIR/$1/encmode
+ echo "0" > $CONFIG_ROOT_DIR/$1/wpa_cipher
+ echo "8" > $CONFIG_ROOT_DIR/$1/wpa2_cipher
+ echo $wpa_psk > $CONFIG_ROOT_DIR/$1/wpa_psk
+}
+
+set_enc() {
+ # set_enc [enc] [intf]
+ set_open $2
+ case $1 in
+ open)
+ echo "do nothing"
+ ;;
+ wep)
+ set_wep $2
+ ;;
+ wpa_tkip)
+ set_wpa_tkip $2
+ ;;
+ wpa_aes)
+ set_wpa_aes $2
+ ;;
+ wpa2_tkip)
+ set_wpa2_tkip $2
+ ;;
+ wpa2_aes)
+ set_wpa2_aes $2
+ ;;
+ mixed)
+ set_mixed $2
+ ;;
+ sae-mixed)
+ set_sae_mixed $2
+ ;;
+ sae)
+ set_sae $2
+ ;;
+ 802.1x)
+ echo "not supported yet"
+ ;;
+ *)
+ echo "usage: enc: open, wep, wpa_tkip, wpa2_aes, mixed"
+ exit 1
+ esac
+}
+
+start_nat() {
+ EIF="eth0"
+ IIF="br-lan"
+ INNET="192.168.10.0/24"
+
+ echo "1" > /proc/sys/net/ipv4/ip_forward
+ iptables -F
+ iptables -X
+ iptables -t nat -F
+ iptables -t nat -X
+ iptables -P INPUT DROP
+ iptables -P OUTPUT ACCEPT
+ iptables -P FORWARD ACCEPT
+ iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
+ iptables -t nat -A POSTROUTING -o $EIF -s $INNET -j MASQUERADE
+}
+
+stop_nat() {
+ iptables -F
+ iptables -X
+ iptables -t nat -F
+ iptables -t nat -X
+}
+
+start_ap() {
+ local __ssid
+
+ if [ "$WPS" = "0" ]; then
+ for intf in $@; do
+ echo "0" > $CONFIG_ROOT_DIR/$intf/wlan_mode
+ set_enc $ENC $intf # [enc] [intf]
+
+ NUM=${intf#w*va};
+ echo "start my $NUM"
+ #echo "$AP_SSID-$intf" > $CONFIG_ROOT_DIR/$intf/ssid
+ eval "__ssid=\$ssid_${intf}"
+ echo $__ssid > $CONFIG_ROOT_DIR/$intf/ssid
+ echo $ap_channel > $CONFIG_ROOT_DIR/$intf/channel
+ done
+ #$IFCONFIG $INTF hw ether $MACID
+ fi
+
+ rtl_act_wlan_if start $@ # all if
+
+ if [ "$RP" = "0" ]; then
+ rtl_br_lan_if start $@ $LAN_INTF #all if
+ #$IFCONFIG $INTF hw ether $MACID
+ if [ "$ADD_BR" = "1" ]; then
+ $IFCONFIG $BR_INTF $LOCAL_IP up
+ fi
+ $START_WLAN_APP start $@ $BR_INTF
+ #start_nat
+ fi
+}
+
+start_cli() {
+ if [ "$WPS" = "0" ]; then
+ set_enc $1 $2
+
+ # auto channel
+ channel=0
+
+ #wlan_mode=0 : AP
+ #wlan_mode=1 : Client | Ad-hoc
+ # network_type=0 : Clien
+ # network_type=1 : Ad-hoc
+ wlan_mode=1
+ network_type=0
+
+ #1:B, 2:G, 4:A, 8:N, 64:AC
+ #band=11 : BGN
+ band=11
+
+ #phyBandSelect=1 : 2G
+ #phyBandSelect=2 : 5G
+ phyBandSelect=1
+
+ echo $channel > $CONFIG_ROOT_DIR/$2/channel
+ echo $wlan_mode > $CONFIG_ROOT_DIR/$2/wlan_mode
+ echo $network_type > $CONFIG_ROOT_DIR/$2/network_type
+ echo $STA_SSID > $CONFIG_ROOT_DIR/repeater_ssid
+ echo $STA_SSID > $CONFIG_ROOT_DIR/$2/ssid
+ echo $band > $CONFIG_ROOT_DIR/$2/band
+ echo $phyBandSelect > $CONFIG_ROOT_DIR/$2/phyBandSelect
+
+ #WPS_DISABLE=0
+ #echo $WPS_DISABLE > $CONFIG_ROOT_DIR/$2/wpa_auth
+ #echo 0 > $CONFIG_ROOT_DIR/$2/wsc_enc
+ fi
+
+ #$IFCONFIG $INTF down
+ #$START_WLAN_ORG $INTF
+ #$IFCONFIG $INTF hw ether $MACID
+ #$IFCONFIG $INTF $LOCAL_IP up
+
+ rtl_act_wlan_if start $2
+ #$IWPRIV $2 set_mib wsc_enable=1
+ if [ "$RP" = "0" ]; then
+ #$IFCONFIG $2 hw ether $MACID
+ rtl_br_lan_if start $2 $BR_INTF
+ #$IWRPIV $INTF set_mib nat25_disable=1
+ #$IFCONFIG $INTF hw ether $MACID
+ if [ "$ADD_BR" = "1" ]; then
+ $IFCONFIG $BR_INTF $LOCAL_IP up
+ fi
+ $START_WLAN_APP start $2 $BR_INTF
+ fi
+
+ #echo 1 > $CONFIG_ROOT_DIR/$2/wsc_enc
+ #$IWPRIV $2 set_mib wsc_enable=1
+ cat /var/run/wscd-wlan0.pid
+}
+
+start_rp() {
+ echo 1 > $CONFIG_ROOT_DIR/repeater_enabled
+ echo $AP_SSID > $CONFIG_ROOT_DIR/repeater_ssid
+
+ ENC=$1
+ VAP=0
+ RP=1
+
+ start_ap $ALL_AP_INTF
+ #$IFCONFIG $INTF up
+ VXD_INTF="$INTF-vxd"
+ start_cli $1 $VXD_INTF
+ $IFCONFIG $VXD_INTF up
+ $IFCONFIG $INTF up
+ rtl_br_lan_if start $VXD_INTF $INTF
+ if [ "$ADD_BR" = "1" ]; then
+ $IFCONFIG $BR_INTF $LOCAL_IP up
+ fi
+}
+
+start_rp11() {
+ echo 1 > $CONFIG_ROOT_DIR/repeater_enabled
+ echo $AP_SSID > $CONFIG_ROOT_DIR/repeater_ssid
+
+ VXD_INTF="$INTF-vxd"
+ start_cli $1 $VXD_INTF
+ set_enc $1 $INTF
+ wlan_mode=0
+ network_type=0
+ repeater_enabled=1
+
+ echo $wlan_mode > $CONFIG_ROOT_DIR/$INTF/wlan_mode
+ echo $network_type > $CONFIG_ROOT_DIR/$INTF/network_type
+ echo $repeater_enabled > $CONFIG_ROOT_DIR/repeater_enabled
+ echo $AP_SSID > $CONFIG_ROOT_DIR/$INTF/ssid
+
+ rtl_act_wlan_if start $INTF
+ $IFCONFIG $INTF 0.0.0.0 up
+ $BRCTL addif $BR_INTF $INTF
+}
+
+start_rp1() {
+ start_cli $1 $INTF
+
+ VXD_INTF="$INTF-vxd"
+ set_enc $1 $VXD_INTF
+
+ wlan_mode=0
+ network_type=0
+ repeater_enabled=1
+
+ echo $wlan_mode > $CONFIG_ROOT_DIR/$VXD_INTF/wlan_mode
+ echo $network_type > $CONFIG_ROOT_DIR/$VXD_INTF/network_type
+ echo $repeater_enabled > $CONFIG_ROOT_DIR/repeater_enabled
+ echo $AP_SSID > $CONFIG_ROOT_DIR/$VXD_INTF/ssid
+
+ rtl_act_wlan_if start $VXD_INTF
+ MACID1="00:01:73:01:FF:11"
+ MACID2="00:22:88:77:33:27"
+ #$IFCONFIG $VXD_INTF hw ether $MACID1
+ #iwpriv wlan0-vxd set_mib ssid="cliff-test"
+ $IWPRIV $VXD_INTF set_mib ssid=$AP_SSID
+ #rtl_br_lan_if start $ALL_RP_INTF
+ #$IFCONFIG $BR_INTF $LOCAL_IP up
+ $IFCONFIG $VXD_INTF 0.0.0.0 up
+ $BRCTL addif $BR_INTF $VXD_INTF
+}
+
+rtl_br_lan_if() {
+ # func args: cmd lan0 lan1 ...
+ # shutdown LAN interface (ethernt, wlan)
+
+ if [ "$1" = "start" ]; then
+ if [ "$ADD_BR" = "1" ]; then
+ $BRCTL addbr $BR_INTF
+ $IFCONFIG $BR_INTF up
+ fi
+ fi
+ for ARG in $@ ; do
+ #INTF=`$IFCONFIG $ARG`
+ #echo "$1 $INTF"
+ if [ "$ARG" = "start" ] || [ "$ARG" = "stop" ]; then
+ continue;
+ fi
+
+ if [ "$1" = "stop" ]; then
+ $IFCONFIG $ARG down
+ if [ $ARG != $1 ]; then
+ $BRCTL delif $BR_INTF $ARG 2> /dev/null
+ fi
+ else
+ if [ $ARG != $1 ]; then
+ $IFCONFIG $ARG 0.0.0.0 up
+ $BRCTL addif $BR_INTF $ARG 2> /dev/null
+ fi
+ fi
+ done
+ if [ "$1" = "stop" ]; then
+ if [ "$ADD_BR" = "1" ]; then
+ $IFCONFIG $BR_INTF down
+ $BRCTL delbr $BR_INTF
+ fi
+ fi
+}
+
+# Start WLAN interface
+rtl_act_wlan_if() {
+ VA_INTF="$INTF-va*"
+ VXD_IF="$INTF-vxd*"
+
+ #echo "VAP:$VAP"
+ #$BIN_DIR/webs -x
+
+ #echo "$WLAN_PREFIX $WLAN_PREFIX_LEN $WLAN_NAME"
+ for WLAN in $@ ; do
+ case $WLAN in
+ $VA_INTF)
+ #echo "va: $WLAN"
+ #$IWPRIV $WLAN set_mib vap_enable=0
+ EXT="va"
+ ;;
+ $VXD_IF)
+ #echo "vxd: $WLAN"
+ #$IWPRIV $WLAN set_mib vap_enable=0
+ $IWPRIV $WLAN copy_mib
+ EXT="vxd"
+ ;;
+ $INTF)
+ #echo "wlan intf: $WLAN"
+ $IWPRIV $WLAN set_mib vap_enable=$VAP
+ EXT="root"
+ ;;
+ *)
+ #echo "cmd: $WLAN"
+ continue
+ ;;
+ esac
+ $IFCONFIG $WLAN down
+ if [ "$1" = "start" ]; then
+ echo "Initialize $WLAN intf"
+ $START_WLAN $WLAN $INTF $EXT
+ fi
+ done
+}
+
+## kill 802.1x, autoconf and IAPP daemon ##
+rtl_kill_iwcontrol_pid() {
+ PIDFILE="$TOP_VAR_DIR/run/iwcontrol.pid"
+ if [ -f $PIDFILE ] ; then
+ PID=`cat $PIDFILE`
+ echo "IWCONTROL_PID=$PID"
+ if [ "$PID" != "0" ]; then
+ kill -9 $PID 2>/dev/null
+ fi
+ rm -f $PIDFILE
+ fi
+}
+
+rtl_kill_wlan_pid() {
+ for WLAN in $@ ; do
+ PIDFILE=$TOP_VAR_DIR/run/auth-$WLAN.pid
+ if [ -f $PIDFILE ] ; then
+ PID=`cat $PIDFILE`
+ echo "AUTH_PID=$PID"
+ if [ "$PID" != "0" ]; then
+ kill -9 $PID 2>/dev/null
+ fi
+ rm -f $PIDFILE
+
+ PIDFILE=$TOP_VAR_DIR/run/auth-$WLAN-vxd.pid
+ if [ -f $PIDFILE ] ; then
+ PID=`cat $PIDFILE`
+ if [ "$PID" != "0" ]; then
+ kill -9 $PID 2>/dev/null
+ fi
+ rm -f $PIDFILE
+ fi
+ fi
+
+ # for WPS ---------------------------------->>
+ PIDFILE=$TOP_VAR_DIR/run/wscd-$WLAN.pid
+ if [ "$both_band_ap" = "1" ]; then
+ PIDFILE=$TOP_VAR_DIR/run/wscd-wlan0-wlan1.pid
+ fi
+
+ if [ -f $PIDFILE ] ; then
+ PID=`cat $PIDFILE`
+ echo "WSCD_PID=$PID"
+ if [ "$PID" != "0" ]; then
+ kill -9 $PID 2>/dev/null
+ fi
+ rm -f $PIDFILE
+ fi
+ done
+ #<<----------------------------------- for WPS
+}
+
+stop_all() {
+ HAS_APP=1
+ if [ "$1" = "m-ap" ];then
+ ALL_INTF=$ALL_M_AP_INTF
+ elif [ "$1" = "ap" ];then
+ ALL_INTF=$INTF
+ #stop_nat
+ elif [ "$1" = "rp" ]; then
+ ALL_INTF=$ALL_RP_INTF
+ elif [ "$1" = "wds" ]; then
+ ALL_INTF=$ALL_WDS_INTF
+ HAS_APP=0
+ else
+ ALL_INTF=$INTF
+ HAS_APP=0
+ fi
+
+ $IWPRIV $INTF set_mib wsc_enable=0
+ rtl_act_wlan_if stop $ALL_INTF
+ rtl_br_lan_if stop $ALL_INTF $LAN_INTF
+ $START_WLAN_APP kill $ALL_INTF $BR_INTF
+ #killall webs 2> /dev/null
+ rtl_kill_iwcontrol_pid $ALL_INTF
+ rtl_kill_wlan_pid $ALL_INTF
+ rm -f $TOP_VAR_DIR/*.fifo
+}
+
+start_wds() {
+ if [ "$1" = "open"]; then
+ ENC_AUTH="0"
+ elif [ "$1" = "wep" ]; then
+ ENC_AUTH="1"
+ elif [ "$1" = "wpa-tkip" ]; then
+ ENC_AUTH="2"
+ elif [ "$1" = "wpa2_aes" ]; then
+ ENC_AUTH="4"
+ fi
+
+ $IWPRIV $INTF set_mib wds_enable=1
+ $IWPRIV $INTF set_mib wds_pure=0
+ $IWPRIV $INTF set_mib wds_priority=1
+ $IWPRIV $INTF set_mib wds_num=0
+ $IWPRIV $INTF set_mib wds_encrypt=$ENC_AUTH ## 0:none 1:wep40 2:tkip 4:aes 5:wep104
+ $IWPRIV $INTF set_mib wds_wepkey=$wep_key
+ $IWPRIV $INTF set_mib wds_passphrase=$wpa_psk
+ $IWPRIV $INTF set_mib wds_add=$WDS_PEER_MAC,0 ## peer mac address, rate
+
+ #$IWPRIV $INTF set_mib wsc_enable=0
+ rtl_act_wlan_if start $INTF
+ $IFCONFIG $WDS_INTF up
+ rtl_br_lan_if start $ALL_WDS_INTF
+ echo 1 > /proc/sys/net/ipv6/conf/$WDS_INTF/disable_ipv6
+ if [ "$ADD_BR" = "1" ]; then
+ $IFCONFIG $BR_INTF $WDS_IP
+ fi
+ #$IFCONFIG $INTF-wds0 up
+}
+
+wps_restart() {
+ MODE=`cat $CONFIG_ROOT_DIR/$2/wlan_mode`
+
+ if [ "$MODE" = "0" ];then
+ stop_all ap
+ start_ap $ALL_AP_INTF
+ else
+ stop_all cli
+ start_cli $INTF
+ fi
+}
+
+scan_realtek() {
+ local device="$1"
+ local vif vifs channel
+ local sta_if ap_if
+
+ IFCONFIG=ifconfig
+
+ if [ "$device" = "AP0_2G" ]; then
+ INTF="wlan0"
+ CONFIG_ROOT_DIR="/var/rtl8192c"
+ elif [ "$device" = "AP1_2G" ]; then
+ INTF="wlan1"
+ CONFIG_ROOT_DIR="/var/rtl8192cd"
+ elif [ "$device" = "AP1_5G" ]; then
+ INTF="wlan1"
+ CONFIG_ROOT_DIR="/var/rtl8192cd"
+ fi
+ ADD_BR=0
+ BR_INTF="br-lan"
+ #LAN_INTF="eth0"
+ LAN_INTF=
+
+ TOP_VAR_DIR="/var"
+
+ BRCTL="brctl"
+ IWPRIV="iwpriv"
+
+ LOCAL_IP="192.168.1.254"
+ #MACID="00:01:73:01:FF:AB"
+ #LOCAL=00:01:73:01:ff:10
+ WDS_PEER_MAC="002288773327"
+ WDS_IP="192.168.99.100"
+ ENC="wpa2_aes"
+ VAP=0
+ RP=0
+ WPS=0
+
+ ALL_AP_INTF=
+ ALL_RP_INTF=
+ ALL_WDS_INTF=
+ ALL_WLAN_INTF=
+ ALL_M_AP_INTF=
+ local _c=0
+
+ config_get channel "$device" channel
+ config_get vifs "$device" vifs
+ for vif in $vifs; do
+ config_get_bool disabled "$vif" disabled 0
+ [ $disabled -eq 0 ] || continue
+
+ local mode
+
+ config_get mode "$vif" mode
+ config_get ifname "$vif" ifname
+ config_get ssid "$vif" ssid
+
+ INTF=$ifname
+ WLAN_INTF=$INTF
+# VA_INTF="$INTF-va0"
+ VXD_INTF="$INTF-vxd"
+ WDS_INTF="$INTF-wds0"
+
+ ALL_AP_INTF="$ALL_AP_INTF $INTF"
+ ALL_M_AP_INTF="$ALL_M_AP_INTF $INTF $VA_INTF"
+ ALL_RP_INTF="$ALL_RP_INTF $INTF $VXD_INTF"
+ ALL_WDS_INTF="$ALL_WDS_INTF $INTF $WDS_INTF"
+ ALL_WLAN_INTF="$ALL_WLAN_INTF $WLAN_INTF $VXD_INTF"
+ case "$mode" in
+ sta)
+ sta=1
+ STA_SSID=$ssid
+ sta_if="$vif"
+ ;;
+ ap)
+ apmode=1
+ ap_if="${ap_if:+$ap_if }$vif"
+ ap_channel=$channel
+ eval "ssid_${ifname}=\"\$ssid\""
+ ALL_M_AP_INTF="$ALL_M_AP_INTF $ifname"
+ _c=$((${_c:-0} + 1))
+ ;;
+ wds)
+ wdsmode=1
+ ;;
+ *) echo "$device($vif): Invalid mode, ignored."; continue;;
+ esac
+ done
+
+ if [ "$_c" -gt 1 ]; then
+ VAP=1
+ else
+ VAP=0
+ fi
+
+ if [ -d /proc/wlan0 ] || [ -d /proc/wlan1 ]; then
+ if [ ! -d "$CONFIG_ROOT_DIR" ]; then
+ mkdir $CONFIG_ROOT_DIR
+ fi
+
+ if [ -f "$CONFIG_ROOT_DIR/wifi_script_dir" ]; then
+ SCRIPT_DIR=`cat $CONFIG_ROOT_DIR/wifi_script_dir`
+ else
+ SCRIPT_DIR=/root/wifi/script
+ echo $SCRIPT_DIR > $CONFIG_ROOT_DIR/wifi_script_dir
+ fi
+
+ if [ -f "$CONFIG_ROOT_DIR/wifi_bin_dir" ]; then
+ BIN_DIR=`cat $CONFIG_ROOT_DIR/wifi_bin_dir`
+ else
+ BIN_DIR="/bin"
+ echo $BIN_DIR > $CONFIG_ROOT_DIR/wifi_bin_dir
+ fi
+ fi
+
+ START_WLAN_ORG=$SCRIPT_DIR/wlan_8192c.sh
+ START_WLAN=$SCRIPT_DIR/mywlan_8192c.sh
+ START_WLAN_APP=$SCRIPT_DIR/wlanapp_8192c.sh
+
+ for intf in $ALL_WLAN_INTF; do
+ if [ -d /proc/wlan0 ] || [ -d /proc/wlan1 ]; then
+ if [ "$intf" == "wlan0" ] || [ "$intf" == "wlan0-vxd" ]; then
+ $SCRIPT_DIR/default_setting.sh $intf
+ fi
+ if [ "$intf" == "wlan1" ] || [ "$intf" == "wlan1-vxd" ]; then
+ grep -l "RTL8192F" /proc/wlan1/mib_rf 2> /dev/null
+ if [ $? -eq 0 ]; then
+ $SCRIPT_DIR/default_setting_rtl8192fr.sh $intf
+ fi
+ grep -l "RTL8812" /proc/wlan1/mib_rf 2> /dev/null
+ if [ $? -eq 0 ]; then
+ $SCRIPT_DIR/default_setting_ac.sh $intf
+ fi
+ fi
+ fi
+ done
+}
+
+disable_realtek() {
+ local device="$1"
+
+ if [ -d /proc/wlan0 ] || [ -d /proc/wlan1 ]; then
+ set_wifi_down "$device"
+
+ if [ "$apmode" == "1" ]; then
+ if [ "VAP" == "1" ]; then
+ stop_all m_ap
+ else
+ stop_all ap
+ fi
+ else
+ stop_all cli
+ fi
+ fi
+}
+
+enable_realtek() {
+ local device="$1"
+ local country vifs macaddr hidden
+ local hwmode htmode
+ local if_up
+
+ if [ -d /proc/wlan0 ] || [ -d /proc/wlan1 ]; then
+
+ hidden=0
+ config_get country "$device" country
+ config_get vifs "$device" vifs
+ config_get hwmode "$device" hwmode
+ config_get htmode "$device" htmode
+ config_get hidden "$device" hidden
+
+ echo $hidden > $CONFIG_ROOT_DIR/$INTF/hidden_ssid
+
+ hwmode="${hwmode##11}"
+ case "$hwmode" in
+ ac) BAND=76;;
+ n) BAND=11;;
+ ng|na) BAND=8;;
+ a) BAND=4;;
+ g) BAND=2;;
+ b) BAND=1;;
+ *) BAND=11;;
+ esac
+ echo $BAND > $CONFIG_ROOT_DIR/$INTF/band
+
+ case "$htmode" in
+ HT80-) USE_40M=2; UPPER_SIDE=0;;
+ HT80+) USE_40M=2; UPPER_SIDE=1;;
+ HT40-) USE_40M=1; UPPER_SIDE=0;;
+ HT40+) USE_40M=1; UPPER_SIDE=1;;
+ HT20) USE_40M=0; UPPER_SIDE=0;;
+ *) USE_40M=0; UPPER_SIDE=0;;
+ esac
+ echo $USE_40M > $CONFIG_ROOT_DIR/$INTF/channel_bonding
+ echo $UPPER_SIDE > $CONFIG_ROOT_DIR/$INTF/control_sideband
+
+ [ -n "$country" ] && {
+ echo "1" > $CONFIG_ROOT_DIR/$INTF/countrycode_enable
+ echo $country > $CONFIG_ROOT_DIR/$INTF/countrycode
+ }
+
+ for vif in $vifs; do
+ config_get_bool disabled "$vif" disabled 0
+ [ $disabled -eq 0 ] || continue
+
+ config_get ifname "$vif" ifname
+ config_get macaddr "$vif" macaddr
+ [ -n "$macaddr" ] && {
+ echo $macaddr > $CONFIG_ROOT_DIR/$ifname/wlan0_addr
+ }
+
+ config_get enc "$vif" encryption
+ case "$enc" in
+ *wep*)
+ local enc_bits key_type
+
+ config_get wep_type "$vif" encmode
+ # 0:wep disabled 1:wep-64bit 2:wep-128bit
+ [ -n $wep_type ] && wep_type=1
+ case "$wep_type" in
+ 1) bits=64;;
+ 2) bits=128;;
+ *) bits=64;;
+ esac
+
+ # wep_key_type - 1: hex mode 0: ascii
+ config_get wep_key_type "$vif" key_type
+ [ -n $wep_key_type ] && wep_key_type=0
+ case "$wep_key_type" in
+ 0) key_type=a;;
+ 1) key_type=h;;
+ *) key_type=a;;
+ esac
+
+ config_get wep_key_type "$vif" key_type
+ config_get key "$vif" key
+ case "$key" in
+ [1234])
+ local idx
+ for idx in 1 2 3 4; do
+ config_get ikey "$vif" key$idx
+ [ -n $ikey ] && {
+ eval "wep${bits}_${key_type}_key${key}=\"\$ikey\""
+ }
+ done
+
+ wep_key_idx=$key
+ ;;
+ esac
+
+ ENC=wep
+ ;;
+ *psk*)
+ case "$enc" in
+ *mixed*|*psk+psk2*) ENC=mixed;;
+ *psk2*) ENC=wpa2_aes;;
+ *) ENC=wpa_tkip;;
+ esac
+ case "$enc" in
+ *tkip+aes*|*tkip+ccmp*|*aes+tkip*|*ccmp+tkip*) ENC=mixed;;
+ *aes*|*ccmp*) ENC=wpa_aes;;
+ *tkip*) ENC=wpa_tkip;;
+ esac
+ config_get key "$vif" key
+ wpa_psk=$key
+ ;;
+ *sae*)
+ case "$enc" in
+ *sae-mixed*) ENC=sae-mixed;;
+ *) ENC=sae;;
+ esac
+ config_get key "$vif" key
+ wpa_psk=$key
+ ;;
+ *wpa*)
+ case "$enc" in
+ *mixed*|*wpa+wpa2*) ENC=mixed;;
+ *wpa2*) ENC=wpa2_aes;;
+ *) ENC=wpa_tkip;;
+ esac
+ case "$enc" in
+ *tkip+aes*|*tkip+ccmp*|*aes+tkip*|*ccmp+tkip*) ENC=mixed;;
+ *aes*|*ccmp*) ENC=wpa_aes;;
+ *tkip*) ENC=wpa_tkip;;
+ esac
+ config_get key "$vif" key
+ wpa_psk=$key
+ ;;
+ *)
+ ENC=open
+ ;;
+ esac
+
+ local net_cfg="$(find_net_config "$vif")"
+ [ -z "$net_cfg" ] || {
+ append if_up "set_wifi_up '$vif' '$ifname'" ";$N"
+ append if_up "start_net '$ifname' '$net_cfg'" ";$N"
+ }
+ done
+
+ ubus -t 5 wait_for network.interface.lan
+ if [ "$apmode" == "1" ]; then
+ start_ap $ALL_M_AP_INTF
+ fi
+
+ if [ "$sta" == "1" ]; then
+ start_cli $ENC $INTF
+ fi
+
+ eval "$if_up"
+
+ fi
+}
+
+detect_realtek() {
+ local i=-1
+
+ while grep -qs "^ *wl$((++i)):" /proc/net/dev; do
+ local channel type
+
+ config_get type wl${i} type
+ [ "$type" = realtek ] && continue
+ channel=1
+ cat <<EOF
+config wifi-device rtl${i}
+ option type realtek
+ option channel ${channel:-11}
+ # REMOVE THIS LINE TO ENABLE WIFI:
+ option disabled 1
+
+config wifi-iface
+ option device rtl${i}
+ option network lan
+ option mode ap
+ option ssid ASR-OWRT${i#0}
+ option encryption none
+
+EOF
+ done
+}
diff --git a/package/kernel/realtek-wl/files/lib/wifi/rtk_flash.txt b/package/kernel/realtek-wl/files/lib/wifi/rtk_flash.txt
new file mode 100644
index 0000000..2ce02a7
--- /dev/null
+++ b/package/kernel/realtek-wl/files/lib/wifi/rtk_flash.txt
@@ -0,0 +1,34 @@
+HW_WLAN1_WLAN_ADDR=001122334455
+HW_WLAN0_11N_TRSWPAPE_CC=0
+HW_WLAN0_11N_TRSWPAPE_C9=0
+HW_WLAN0_WLAN_ADDR=001122334455
+HW_WLAN0_WLAN_ADDR1=223344556677
+HW_NIC1_ADDR=001122334455
+HW_NIC0_ADDR=001122334455
+HW_WLAN0_REG_DOMAIN=1
+HW_WLAN0_11N_THER=34
+HW_WLAN0_11N_XCAP=57
+HW_WLAN0_REG_DOMAIN=1
+HW_WLAN0_TX_POWER_CCK_A=2323232323232323232323232323
+HW_WLAN0_TX_POWER_CCK_B=2323232323232323232323232323
+HW_WLAN0_TX_POWER_HT40_1S_A=2323232323232323232323232323
+HW_WLAN0_TX_POWER_HT40_1S_B=2323232323232323232323232323
+HW_WLAN0_TX_POWER_DIFF_HT40_2S=0000000000000000000000000000
+HW_WLAN0_TX_POWER_DIFF_HT20=0000000000000000000000000000
+HW_WLAN0_TX_POWER_DIFF_OFDM=0000000000000000000000000000
+RF_DPK_PWSF_2G_A=18191a
+RF_DPK_PWSF_2G_B=1c1c1d
+RF_DPK_LUT_2G_EVEN_A0=0cefea0ce7ea0cefea0cf7ec0d1fee0d2fee0d47ef0d6ff20d87f30daff60dc7f80deffb0e07fd0df7fd0ecffd0fa7ff0d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d7800
+RF_DPK_LUT_2G_ODD_A0=0ce7e90ce7ea0cefeb0d0fed0d2fed0d37ef0d5ff00d77f30d8ff50dbff70dd7f90e07fd0dfffd0e17fd0f47fe1000000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d7800
+RF_DPK_LUT_2G_EVEN_B0=0d1fcc0d1fcf0d17d20d2fd40d4fd60d67d80d87da0dafdb0ddfde0e0fe20e27e40e87ea0ea7ef0ee7f20f3ff60faffc0d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d7800
+RF_DPK_LUT_2G_ODD_B0=0d1fce0d17cf0d1fd40d3fd60d5fd70d77d90d9fdb0dc7dc0de7de0e17e30e47e60e87ed0ec7f10f27f40f7ff81000000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d7800
+RF_DPK_LUT_2G_EVEN_A1=0cc7eb0ce7ed0cefec0cefef0cfff00d1ff10d37f30d47f30d6ff50d87f80db7fb0dd7fd0dd7fd0e77fc0f0ffe0fcfff0d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d7800
+RF_DPK_LUT_2G_ODD_A1=0ccfec0cefee0ce7ee0cf7ef0d17f00d27f20d3ff30d67f40d77f70daff90dbffc0ddffd0e0ffc0eaffd0f67ff1000000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d7800
+RF_DPK_LUT_2G_EVEN_B1=0d6fd10d67d20d67d40d87d80da7d90dbfdb0dd7de0df7df0e0fe10e47e50e6fe70eafed0ee7f20f07f50f6ff80fc7fe0d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d7800
+RF_DPK_LUT_2G_ODD_B1=0d67d00d6fd30d77d70d97d80dafdb0ddfdd0ddfde0e0fe00e27e20e57e60e9fea0ecfef0ef7f40f2ff60f97fb1000000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d7800
+RF_DPK_LUT_2G_EVEN_A2=0cd7e30ccfe40cd7e50cefe80d07e70d1fe80d37ea0d5fed0d8fef0daff20dc7f50dcff50de7f80e4ffc0e8ffe0fb0000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d7800
+RF_DPK_LUT_2G_ODD_A2=0ccfe40cd7e40cdfe70cf7e70d17e80d27e90d47ec0d7fee0d9ff10dbff40dc7f40dcff50e0ffb0e6ffd0f4ffe1000000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d7800
+RF_DPK_LUT_2G_EVEN_B2=0d1fcc0d1fd00d27d30d47d40d57d60d6fd80d97db0da7dd0dd7df0e07e30e3fe70e67eb0e97ef0edff20f47f60fbffc0d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d7800
+RF_DPK_LUT_2G_ODD_B2=0d1fcf0d1fd20d2fd40d4fd50d67d80d8fda0d97dc0dd7dd0defe10e2fe60e5fe90e7fee0ea7f00f0ff40f6ff91000000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d7800
+RF_DPK_DP_PATH_A_OK=1
+RF_DPK_DP_PATH_B_OK=1
diff --git a/package/kernel/realtek-wl/files/lib/wifi/rtk_flash_ac.txt b/package/kernel/realtek-wl/files/lib/wifi/rtk_flash_ac.txt
new file mode 100644
index 0000000..e5361fe
--- /dev/null
+++ b/package/kernel/realtek-wl/files/lib/wifi/rtk_flash_ac.txt
@@ -0,0 +1,21 @@
+HW_WLAN1_WLAN_ADDR=001122334455
+HW_WLAN1_WLAN_ADDR1=001122334411
+HW_NIC1_ADDR=001122334455
+HW_NIC0_ADDR=001122334455
+HW_WLAN1_11N_PA_TYPE=0
+HW_WLAN1_REG_DOMAIN=1
+HW_WLAN1_11N_THER=33
+HW_WLAN1_11N_THER_2=33
+HW_WLAN1_11N_XCAP=8
+HW_WLAN1_TX_POWER_5G_HT40_1S_A=00000000000000000000000000000000000000000000000000000000000000000000000b0b0b0b0b0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f101010101010101011111111111111110b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f10101010101010101111111111111111
+HW_WLAN1_TX_POWER_5G_HT40_1S_B=00000000000000000000000000000000000000000000000000000000000000000000000b0b0b0b0b0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f101010101010101011111111111111110b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f10101010101010101111111111111111
+HW_WLAN1_TX_POWER_DIFF_5G_20BW1S_OFDM1T_A=0000000000000000000000000000
+HW_WLAN1_TX_POWER_DIFF_5G_40BW2S_20BW2S_A=0000000000000000000000000000
+HW_WLAN1_TX_POWER_DIFF_5G_80BW1S_160BW1S_A=0000000000000000000000000000
+HW_WLAN1_TX_POWER_DIFF_5G_80BW2S_160BW2S_A=0000000000000000000000000000
+HW_WLAN1_TX_POWER_DIFF_5G_20BW1S_OFDM1T_B=0000000000000000000000000000
+HW_WLAN1_TX_POWER_DIFF_5G_40BW2S_20BW2S_B=0000000000000000000000000000
+HW_WLAN1_TX_POWER_DIFF_5G_80BW1S_160BW1S_B=0000000000000000000000000000
+HW_WLAN1_TX_POWER_DIFF_5G_80BW2S_160BW2S_B=0000000000000000000000000000
+HW_WLAN1_TX_POWER_TSSI_5G_HT40_1S_A=0000000000000000000000000000000000000000000000000000000000000000000000707070707050505050505050502020202020202020404040404040404080808080808080808080808080808080808080808080808080808080808080808080808080808080909090909090909050505050505050509090909090909090a0a0a0a0a0a0a0a0505050505050505080808080808080808080808080808080808080808080808080303030303030303000000000000000000000000000000000000000
+HW_WLAN1_TX_POWER_TSSI_5G_HT40_1S_B=000000000000000000000000000000000000000000000000000000000000000000000006060606060707070707070707050505050505050506060606060606060a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0a0a0a0a0a0a0a0a08080808080808080909090909090909080808080808080807070707070707070708080808080808080808080808080808060606060606060600000000000000000000000000000000000000
diff --git a/package/kernel/realtek-wl/files/script/default_setting.sh b/package/kernel/realtek-wl/files/script/default_setting.sh
new file mode 100755
index 0000000..afc0bf9
--- /dev/null
+++ b/package/kernel/realtek-wl/files/script/default_setting.sh
@@ -0,0 +1,227 @@
+#!/bin/sh
+
+## error code
+ERROR_SUCCESS=0
+ERROR_INVALID_PARAMETERS=1
+
+if [ $# -lt 1 ]; then echo "Usage: $0 iface"; exit 1; fi
+
+CONFIG_ROOT_DIR="/var/rtl8192c"
+CONFIG_DIR=$CONFIG_ROOT_DIR/$1
+
+if [ ! -d "$CONFIG_ROOT_DIR" ]; then
+ mkdir $CONFIG_ROOT_DIR
+fi
+
+if [ ! -d "$CONFIG_DIR" ]; then
+ mkdir $CONFIG_DIR
+fi
+
+if [ ! -f "$CONFIG_ROOT_DIR/wifi_script_dir" ]; then
+ echo "/root/wifi/script" > $CONFIG_ROOT_DIR/wifi_script_dir
+fi
+if [ ! -f "$CONFIG_ROOT_DIR/wifi_bin_dir" ]; then
+ echo "/bin" > $CONFIG_ROOT_DIR/wifi_bin_dir
+fi
+
+WLAN_PREFIX=wlan
+
+case $1 in
+$WLAN_PREFIX[0-9]*)
+ EXT=${1#$WLAN_PREFIX[0-9]}
+ ;;
+*)
+ echo "invalid WLAN interface!($1)"
+ exit $ERROR_INVALID_PARAMETERS
+ ;;
+esac
+
+echo "1" > $CONFIG_DIR/board_ver
+echo "00017301FF10" > $CONFIG_DIR/nic0_addr
+echo "00017301FF19" > $CONFIG_DIR/nic1_addr
+echo "00017301FF10" > $CONFIG_DIR/wlan0_addr
+echo "00017301FF11" > $CONFIG_DIR/wlan1_addr
+echo "00017301FF12" > $CONFIG_DIR/wlan2_addr
+echo "00017301FF13" > $CONFIG_DIR/wlan3_addr
+echo "00017301FF14" > $CONFIG_DIR/wlan4_addr
+echo "00017301FF15" > $CONFIG_DIR/wlan5_addr
+echo "00017301FF16" > $CONFIG_DIR/wlan6_addr
+echo "00017301FF17" > $CONFIG_DIR/wlan7_addr
+
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_cck_a
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_cck_b
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_ht40_1s_a
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_ht40_1s_b
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_diff_ht40_2s
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_diff_ht20
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_diff_ofdm
+echo "3" > $CONFIG_DIR/reg_domain
+echo "0" > $CONFIG_DIR/11n_xcap
+echo "0" > $CONFIG_DIR/led_type
+echo "0" > $CONFIG_DIR/tssi_1
+echo "0" > $CONFIG_DIR/tssi_2
+echo "0" > $CONFIG_DIR/11n_ther
+echo "0" > $CONFIG_DIR/trswitch
+#2.4G RFE Type : 0: Other(Default), 2: 8821C, 3: 8192F and 8822B.
+echo "0" > $CONFIG_DIR/rfe_type
+
+#wlan_mode: 0: AP, 1: Client(network_type=0)/AD-Hoc(network_type=1)
+echo "0" > $CONFIG_DIR/wlan_mode
+echo "0" > $CONFIG_DIR/wlan_disabled
+echo "family-test$EXT" > $CONFIG_DIR/ssid
+#MIMO: 1: 1T2R, 2: 2T4R, 3: 2T2R, 4: 1T1R, 5: 3T3R, 6: 4T4R
+echo "3" > $CONFIG_DIR/MIMO_TR_mode
+
+#channel: default channel
+echo "1" > $CONFIG_DIR/channel
+#ch_hi: Available highest channel
+echo "0" > $CONFIG_DIR/ch_hi
+#ch_low: Available lowest channel
+echo "0" > $CONFIG_DIR/ch_low
+#band: 64: 11AC, 8: 11N, 4: 11A, 2: 11G, 1: 11B; ex. 11 = 8 + 2 + 1 => BGN mode
+echo "11" > $CONFIG_DIR/band
+#basic_rate: 15=0x0f -> bit0-bit11 as 1,2,5.5,11,6,9,12,18,24,36,48,54
+echo "15" > $CONFIG_DIR/basic_rates
+echo "4095" > $CONFIG_DIR/supported_rate
+echo "1" > $CONFIG_DIR/rate_adaptive_enabled
+echo "0" > $CONFIG_DIR/fix_rate
+echo "2347" > $CONFIG_DIR/rts_threshold
+echo "2346" > $CONFIG_DIR/frag_threshold
+echo "30000" > $CONFIG_DIR/inactivity_time #unit:10ms
+echo "100" > $CONFIG_DIR/beacon_interval
+echo "1" > $CONFIG_DIR/dtim_period
+echo "0" > $CONFIG_DIR/preamble_type
+echo "0" > $CONFIG_DIR/hidden_ssid
+echo "0" > $CONFIG_DIR/supported_sta_num
+echo "0" > $CONFIG_DIR/protection_disabled
+echo "0" > $CONFIG_DIR/macclone_enable
+echo "2" > $CONFIG_DIR/wifi_specific
+echo "0" > $CONFIG_DIR/vap_enable
+echo "0" > $CONFIG_DIR/group_id
+echo "0" > $CONFIG_DIR/block_relay
+echo "1" > $CONFIG_DIR/wmm_enabled
+echo "0" > $CONFIG_DIR/guest_access
+
+echo "0" > $CONFIG_DIR/wds_enable
+echo "0" > $CONFIG_DIR/wds_pure
+
+echo "0" > $CONFIG_DIR/macac_enabled
+echo "0" > $CONFIG_DIR/macac_num
+#echo "001122334455" > $CONFIG_DIR/macac_addr1
+#echo "001234567890" > $CONFIG_DIR/macac_addr2
+
+echo "0" > $CONFIG_DIR/countrycode_enable
+echo "US" > $CONFIG_DIR/countrycode
+
+echo "2" > $CONFIG_DIR/auth_type
+echo "0" > $CONFIG_DIR/encrypt
+echo "2" > $CONFIG_DIR/wpa_auth
+echo "87654321" > $CONFIG_DIR/wpa_psk
+echo "2" > $CONFIG_DIR/wpa_cipher
+echo "2" > $CONFIG_DIR/wpa2_cipher
+echo "0" > $CONFIG_DIR/psk_enable
+echo "86400" > $CONFIG_DIR/gk_rekey
+echo "0" > $CONFIG_DIR/psk_format
+
+echo "0" > $CONFIG_DIR/wpa11w
+echo "0" > $CONFIG_DIR/wpa2EnableSHA256
+
+echo "0" > $CONFIG_DIR/wep
+echo "0" > $CONFIG_DIR/wep_default_key
+echo "1" > $CONFIG_DIR/wep_key_type
+echo "0987654321" > $CONFIG_DIR/wepkey1_64_hex
+echo "0987654321" > $CONFIG_DIR/wepkey2_64_hex
+echo "0987654321" > $CONFIG_DIR/wepkey3_64_hex
+echo "0987654321" > $CONFIG_DIR/wepkey4_64_hex
+echo "3534333231" > $CONFIG_DIR/wepkey1_64_asc
+echo "3534333231" > $CONFIG_DIR/wepkey2_64_asc
+echo "3534333231" > $CONFIG_DIR/wepkey3_64_asc
+echo "3534333231" > $CONFIG_DIR/wepkey4_64_asc
+echo "12345678901234567890123456" > $CONFIG_DIR/wepkey1_128_hex
+echo "12345678901234567890123456" > $CONFIG_DIR/wepkey2_128_hex
+echo "12345678901234567890123456" > $CONFIG_DIR/wepkey3_128_hex
+echo "12345678901234567890123456" > $CONFIG_DIR/wepkey4_128_hex
+echo "31323334353637383930313233" > $CONFIG_DIR/wepkey1_128_asc
+echo "31323334353637383930313233" > $CONFIG_DIR/wepkey2_128_asc
+echo "31323334353637383930313233" > $CONFIG_DIR/wepkey3_128_asc
+echo "31323334353637383930313233" > $CONFIG_DIR/wepkey4_128_asc
+#network_type: 0 - Client mode, 1 - AD-Hoc mode
+echo "0" > $CONFIG_DIR/network_type
+echo "" > $CONFIG_DIR/default_ssid
+echo "0" > $CONFIG_DIR/power_scale
+
+# channel_bonding: BW: 0 - 20M mode, 1 - 40M, 2 - 80M mode
+echo "0" > $CONFIG_DIR/channel_bonding
+#control_sideband: BW: 0 - lower 2nd channel offset , 1 - higher 2nd channel offset
+echo "0" > $CONFIG_DIR/control_sideband
+echo "1" > $CONFIG_DIR/aggregation
+echo "1" > $CONFIG_DIR/short_gi
+echo "1" > $CONFIG_DIR/stbc_enabled
+echo "0" > $CONFIG_DIR/coexist_enabled
+
+echo "0" > $CONFIG_DIR/enable_1x
+echo "0.0.0.0" > $CONFIG_DIR/rs_ip
+echo "1812" > $CONFIG_DIR/rs_port
+echo "" > $CONFIG_DIR/rs_password
+echo "3" > $CONFIG_DIR/rs_maxretry
+echo "5" > $CONFIG_DIR/rs_interval_time
+echo "0" > $CONFIG_DIR/mac_auth_enabled
+echo "0" > $CONFIG_DIR/enable_supp_nonwpa
+echo "0" > $CONFIG_DIR/supp_nonwpa
+echo "0" > $CONFIG_DIR/wpa2_pre_auth
+
+echo "0" > $CONFIG_DIR/account_rs_enabled
+echo "0.0.0.0" > $CONFIG_DIR/account_rs_ip
+echo "0" > $CONFIG_DIR/account_rs_port
+echo "" > $CONFIG_DIR/account_rs_password
+echo "0" > $CONFIG_DIR/account_rs_update_enabled
+echo "0" > $CONFIG_DIR/account_rs_update_delay
+echo "0" > $CONFIG_DIR/account_rs_maxretry
+echo "0" > $CONFIG_DIR/account_rs_interval_time
+
+echo "0" > $CONFIG_DIR/wsc_disabled
+echo "3" > $CONFIG_DIR/wsc_method
+echo "0" > $CONFIG_DIR/wsc_configured
+echo "1" > $CONFIG_DIR/wsc_auth
+echo "1" > $CONFIG_DIR/wsc_enc
+echo "0" > $CONFIG_DIR/wsc_manual_enabled
+echo "1" > $CONFIG_DIR/wsc_upnp_enabled
+echo "1" > $CONFIG_DIR/wsc_registrar_enabled
+echo "" > $CONFIG_DIR/wsc_ssid
+echo "" > $CONFIG_DIR/wsc_psk
+echo "0" > $CONFIG_DIR/wsc_configbyextreg
+echo "27006672" > $CONFIG_DIR/wsc_pin
+
+### 802.11k mib ###
+# The following mibs will work if CONFIG_RTL_DOT11K_SUPPORT is y
+# enable 802.11k: 1=enable, 0=disable
+echo "0" > $CONFIG_DIR/rm_activated
+echo "1" > $CONFIG_DIR/rm_link_measure
+echo "1" > $CONFIG_DIR/rm_beacon_passive
+echo "1" > $CONFIG_DIR/rm_beacon_active
+echo "1" > $CONFIG_DIR/rm_beacon_table
+echo "1" > $CONFIG_DIR/rm_neighbor_report
+echo "1" > $CONFIG_DIR/rm_ap_channel_report
+### 802.11k deamon setting ###
+# enable 802.11k deamon: 1=enable, 0=disable
+echo "0" > $CONFIG_DIR/rm_deamon_enable
+# time interval for deamon to wake up
+echo "60" > $CONFIG_DIR/rm_deamon_time_interval
+# debug mode
+echo "0" > $CONFIG_DIR/rm_deamon_debug
+
+### 802.11k mib ###
+# The following mibs will work if CONFIG_RTL_11V_SUPPORT is y
+echo "1" > $CONFIG_DIR/BssTransEnable
+echo "3" > $CONFIG_DIR/BssReqMode
+echo "0" > $CONFIG_DIR/BssDiassocDeadline
+echo "0" > $CONFIG_DIR/BssDiassocImminent
+
+echo "0.0.0.0" > $CONFIG_DIR/ip_addr
+echo "255.255.255.0" > $CONFIG_DIR/net_mask
+
+echo "192.168.1.250" > $CONFIG_ROOT_DIR/ip_addr
+echo "255.255.255.0" > $CONFIG_ROOT_DIR/net_mask
+echo "RTL8192CD" > $CONFIG_ROOT_DIR/device_name
+echo "0" > $CONFIG_ROOT_DIR/band2g5g_select
+
diff --git a/package/kernel/realtek-wl/files/script/default_setting_ac.sh b/package/kernel/realtek-wl/files/script/default_setting_ac.sh
new file mode 100755
index 0000000..2eb95e0
--- /dev/null
+++ b/package/kernel/realtek-wl/files/script/default_setting_ac.sh
@@ -0,0 +1,223 @@
+#!/bin/sh
+
+## error code
+ERROR_SUCCESS=0
+ERROR_INVALID_PARAMETERS=1
+
+if [ $# -lt 1 ]; then echo "Usage: $0 iface"; exit 1; fi
+
+CONFIG_ROOT_DIR="/var/rtl8192cd"
+CONFIG_DIR=$CONFIG_ROOT_DIR/$1
+
+if [ ! -d "$CONFIG_ROOT_DIR" ]; then
+ mkdir $CONFIG_ROOT_DIR
+fi
+
+if [ ! -d "$CONFIG_DIR" ]; then
+ mkdir $CONFIG_DIR
+fi
+
+if [ ! -f "$CONFIG_ROOT_DIR/wifi_script_dir" ]; then
+ echo "/root/script" > $CONFIG_ROOT_DIR/wifi_script_dir
+fi
+if [ ! -f "$CONFIG_ROOT_DIR/wifi_bin_dir" ]; then
+ echo "/bin" > $CONFIG_ROOT_DIR/wifi_bin_dir
+fi
+
+WLAN_PREFIX=wlan
+
+case $1 in
+$WLAN_PREFIX[0-9]*)
+ EXT=${1#$WLAN_PREFIX[0-9]}
+ ;;
+*)
+ echo "invalid WLAN interface!($1)"
+ exit $ERROR_INVALID_PARAMETERS
+ ;;
+esac
+
+echo "1" > $CONFIG_DIR/board_ver
+echo "00017301FF10" > $CONFIG_DIR/nic0_addr
+echo "00017301FF19" > $CONFIG_DIR/nic1_addr
+echo "00017301FF10" > $CONFIG_DIR/wlan0_addr
+echo "00017301FF11" > $CONFIG_DIR/wlan1_addr
+echo "00017301FF12" > $CONFIG_DIR/wlan2_addr
+echo "00017301FF13" > $CONFIG_DIR/wlan3_addr
+echo "00017301FF14" > $CONFIG_DIR/wlan4_addr
+echo "00017301FF15" > $CONFIG_DIR/wlan5_addr
+echo "00017301FF16" > $CONFIG_DIR/wlan6_addr
+echo "00017301FF17" > $CONFIG_DIR/wlan7_addr
+
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_cck_a
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_cck_b
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_ht40_1s_a
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_ht40_1s_b
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_diff_ht40_2s
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_diff_ht20
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_diff_ofdm
+echo "1" > $CONFIG_DIR/reg_domain
+echo "0" > $CONFIG_DIR/11n_xcap
+echo "0" > $CONFIG_DIR/led_type
+echo "0" > $CONFIG_DIR/tssi_1
+echo "0" > $CONFIG_DIR/tssi_2
+echo "0" > $CONFIG_DIR/11n_ther
+echo "0" > $CONFIG_DIR/trswitch
+echo "0" > $CONFIG_DIR/rfe_type
+
+#wlan_mode: 0: AP, 1: Client(network_type=0)/AD-Hoc(network_type=1)
+echo "0" > $CONFIG_DIR/wlan_mode
+echo "0" > $CONFIG_DIR/wlan_disabled
+echo "family-test$EXT" > $CONFIG_DIR/ssid
+#MIMO: 1: 1T2R, 2: 2T4R, 3: 2T2R, 4: 1T1R, 5: 3T3R, 6: 4T4R
+echo "3" > $CONFIG_DIR/MIMO_TR_mode
+
+#channel: default channel
+echo "44" > $CONFIG_DIR/channel
+#ch_hi: Available highest channel
+echo "165" > $CONFIG_DIR/ch_hi
+#ch_low: Available lowest channel
+echo "0" > $CONFIG_DIR/ch_low
+#band: 64: 11AC, 8: 11N, 4: 11A, 2: 11G, 1: 11B; ex. 11 = 8 + 2 + 1 => BGN mode
+echo "76" > $CONFIG_DIR/band
+#basic_rate: 15=0x0f -> bit0-bit11 as 1,2,5.5,11,6,9,12,18,24,36,48,54
+echo "4095" > $CONFIG_DIR/basic_rates
+echo "4095" > $CONFIG_DIR/supported_rate
+echo "1" > $CONFIG_DIR/rate_adaptive_enabled
+echo "0" > $CONFIG_DIR/fix_rate
+echo "2347" > $CONFIG_DIR/rts_threshold
+echo "2346" > $CONFIG_DIR/frag_threshold
+echo "30000" > $CONFIG_DIR/inactivity_time #unit:10ms
+echo "100" > $CONFIG_DIR/beacon_interval
+echo "1" > $CONFIG_DIR/dtim_period
+echo "0" > $CONFIG_DIR/preamble_type
+echo "0" > $CONFIG_DIR/hidden_ssid
+echo "0" > $CONFIG_DIR/supported_sta_num
+echo "0" > $CONFIG_DIR/protection_disabled
+echo "0" > $CONFIG_DIR/macclone_enable
+echo "2" > $CONFIG_DIR/wifi_specific
+echo "0" > $CONFIG_DIR/vap_enable
+echo "0" > $CONFIG_DIR/group_id
+echo "0" > $CONFIG_DIR/block_relay
+echo "1" > $CONFIG_DIR/wmm_enabled
+echo "0" > $CONFIG_DIR/guest_access
+
+echo "0" > $CONFIG_DIR/wds_enable
+echo "0" > $CONFIG_DIR/wds_pure
+
+echo "0" > $CONFIG_DIR/macac_enabled
+echo "0" > $CONFIG_DIR/macac_num
+#echo "001122334455" > $CONFIG_DIR/macac_addr1
+#echo "001234567890" > $CONFIG_DIR/macac_addr2
+
+echo "2" > $CONFIG_DIR/auth_type
+echo "0" > $CONFIG_DIR/encrypt
+echo "2" > $CONFIG_DIR/wpa_auth
+echo "87654321" > $CONFIG_DIR/wpa_psk
+echo "2" > $CONFIG_DIR/wpa_cipher
+echo "2" > $CONFIG_DIR/wpa2_cipher
+echo "0" > $CONFIG_DIR/psk_enable
+echo "86400" > $CONFIG_DIR/gk_rekey
+echo "0" > $CONFIG_DIR/psk_format
+
+echo "0" > $CONFIG_DIR/wpa11w
+echo "0" > $CONFIG_DIR/wpa2EnableSHA256
+
+echo "0" > $CONFIG_DIR/wep
+echo "0" > $CONFIG_DIR/wep_default_key
+echo "1" > $CONFIG_DIR/wep_key_type
+echo "0987654321" > $CONFIG_DIR/wepkey1_64_hex
+echo "0987654321" > $CONFIG_DIR/wepkey2_64_hex
+echo "0987654321" > $CONFIG_DIR/wepkey3_64_hex
+echo "0987654321" > $CONFIG_DIR/wepkey4_64_hex
+echo "3534333231" > $CONFIG_DIR/wepkey1_64_asc
+echo "3534333231" > $CONFIG_DIR/wepkey2_64_asc
+echo "3534333231" > $CONFIG_DIR/wepkey3_64_asc
+echo "3534333231" > $CONFIG_DIR/wepkey4_64_asc
+echo "12345678901234567890123456" > $CONFIG_DIR/wepkey1_128_hex
+echo "12345678901234567890123456" > $CONFIG_DIR/wepkey2_128_hex
+echo "12345678901234567890123456" > $CONFIG_DIR/wepkey3_128_hex
+echo "12345678901234567890123456" > $CONFIG_DIR/wepkey4_128_hex
+echo "31323334353637383930313233" > $CONFIG_DIR/wepkey1_128_asc
+echo "31323334353637383930313233" > $CONFIG_DIR/wepkey2_128_asc
+echo "31323334353637383930313233" > $CONFIG_DIR/wepkey3_128_asc
+echo "31323334353637383930313233" > $CONFIG_DIR/wepkey4_128_asc
+echo "89" > $CONFIG_DIR/network_type
+echo "" > $CONFIG_DIR/default_ssid
+echo "0" > $CONFIG_DIR/power_scale
+
+# channel_bonding: BW: 0 - 20M mode, 1 - 40M, 2 - 80M mode
+echo "2" > $CONFIG_DIR/channel_bonding
+#control_sideband: BW: 0 - lower 2nd channel offset , 1 - higher 2nd channel offset
+echo "1" > $CONFIG_DIR/control_sideband
+echo "1" > $CONFIG_DIR/aggregation
+echo "1" > $CONFIG_DIR/short_gi
+echo "1" > $CONFIG_DIR/stbc_enabled
+echo "0" > $CONFIG_DIR/coexist_enabled
+
+echo "0" > $CONFIG_DIR/enable_1x
+echo "0.0.0.0" > $CONFIG_DIR/rs_ip
+echo "1812" > $CONFIG_DIR/rs_port
+echo "" > $CONFIG_DIR/rs_password
+echo "3" > $CONFIG_DIR/rs_maxretry
+echo "5" > $CONFIG_DIR/rs_interval_time
+echo "0" > $CONFIG_DIR/mac_auth_enabled
+echo "0" > $CONFIG_DIR/enable_supp_nonwpa
+echo "0" > $CONFIG_DIR/supp_nonwpa
+echo "0" > $CONFIG_DIR/wpa2_pre_auth
+
+echo "0" > $CONFIG_DIR/account_rs_enabled
+echo "0.0.0.0" > $CONFIG_DIR/account_rs_ip
+echo "0" > $CONFIG_DIR/account_rs_port
+echo "" > $CONFIG_DIR/account_rs_password
+echo "0" > $CONFIG_DIR/account_rs_update_enabled
+echo "0" > $CONFIG_DIR/account_rs_update_delay
+echo "0" > $CONFIG_DIR/account_rs_maxretry
+echo "0" > $CONFIG_DIR/account_rs_interval_time
+
+echo "0" > $CONFIG_DIR/wsc_disabled
+echo "3" > $CONFIG_DIR/wsc_method
+echo "0" > $CONFIG_DIR/wsc_configured
+echo "1" > $CONFIG_DIR/wsc_auth
+echo "1" > $CONFIG_DIR/wsc_enc
+echo "0" > $CONFIG_DIR/wsc_manual_enabled
+echo "1" > $CONFIG_DIR/wsc_upnp_enabled
+echo "1" > $CONFIG_DIR/wsc_registrar_enabled
+echo "" > $CONFIG_DIR/wsc_ssid
+echo "" > $CONFIG_DIR/wsc_psk
+echo "0" > $CONFIG_DIR/wsc_configbyextreg
+echo "27006672" > $CONFIG_DIR/wsc_pin
+
+### 802.11k mib ###
+# The following mibs will work if CONFIG_RTL_DOT11K_SUPPORT is y
+# enable 802.11k: 1=enable, 0=disable
+echo "0" > $CONFIG_DIR/rm_activated
+echo "1" > $CONFIG_DIR/rm_link_measure
+echo "1" > $CONFIG_DIR/rm_beacon_passive
+echo "1" > $CONFIG_DIR/rm_beacon_active
+echo "1" > $CONFIG_DIR/rm_beacon_table
+echo "1" > $CONFIG_DIR/rm_neighbor_report
+echo "1" > $CONFIG_DIR/rm_ap_channel_report
+### 802.11k deamon setting ###
+# enable 802.11k deamon: 1=enable, 0=disable
+echo "0" > $CONFIG_DIR/rm_deamon_enable
+# time interval for deamon to wake up
+echo "60" > $CONFIG_DIR/rm_deamon_time_interval
+# debug mode
+echo "0" > $CONFIG_DIR/rm_deamon_debug
+
+### 802.11k mib ###
+# The following mibs will work if CONFIG_RTL_11V_SUPPORT is y
+echo "1" > $CONFIG_DIR/BssTransEnable
+echo "3" > $CONFIG_DIR/BssReqMode
+echo "0" > $CONFIG_DIR/BssDiassocDeadline
+echo "0" > $CONFIG_DIR/BssDiassocImminent
+
+echo "0.0.0.0" > $CONFIG_DIR/ip_addr
+echo "255.255.255.0" > $CONFIG_DIR/net_mask
+
+echo "192.168.1.250" > $CONFIG_ROOT_DIR/ip_addr
+echo "255.255.255.0" > $CONFIG_ROOT_DIR/net_mask
+echo "RTL8192CD" > $CONFIG_ROOT_DIR/device_name
+echo "0" > $CONFIG_ROOT_DIR/band2g5g_select
+echo "0" > $CONFIG_ROOT_DIR/beamforming_support
+
diff --git a/package/kernel/realtek-wl/files/script/default_setting_rtl8192fr.sh b/package/kernel/realtek-wl/files/script/default_setting_rtl8192fr.sh
new file mode 100755
index 0000000..0dd2e80
--- /dev/null
+++ b/package/kernel/realtek-wl/files/script/default_setting_rtl8192fr.sh
@@ -0,0 +1,232 @@
+#!/bin/sh
+
+## error code
+ERROR_SUCCESS=0
+ERROR_INVALID_PARAMETERS=1
+
+if [ $# -lt 1 ]; then echo "Usage: $0 iface"; exit 1; fi
+
+grep -l "RTL8192F" /proc/wlan0/mib_rf
+if [ $? -eq 0 ]; then
+ CONFIG_ROOT_DIR="/var/rtl8192c"
+else
+ CONFIG_ROOT_DIR="/var/rtl8192cd"
+fi
+CONFIG_DIR=$CONFIG_ROOT_DIR/$1
+
+if [ ! -d "$CONFIG_ROOT_DIR" ]; then
+ mkdir $CONFIG_ROOT_DIR
+fi
+
+if [ ! -d "$CONFIG_DIR" ]; then
+ mkdir $CONFIG_DIR
+fi
+
+if [ ! -f "$CONFIG_ROOT_DIR/wifi_script_dir" ]; then
+ echo "/root/wifi/script" > $CONFIG_ROOT_DIR/wifi_script_dir
+fi
+if [ ! -f "$CONFIG_ROOT_DIR/wifi_bin_dir" ]; then
+ echo "/bin" > $CONFIG_ROOT_DIR/wifi_bin_dir
+fi
+
+WLAN_PREFIX=wlan
+
+case $1 in
+$WLAN_PREFIX[0-9]*)
+ EXT=${1#$WLAN_PREFIX[0-9]}
+ ;;
+*)
+ echo "invalid WLAN interface!($1)"
+ exit $ERROR_INVALID_PARAMETERS
+ ;;
+esac
+
+echo "1" > $CONFIG_DIR/board_ver
+echo "00017301FF10" > $CONFIG_DIR/nic0_addr
+echo "00017301FF19" > $CONFIG_DIR/nic1_addr
+echo "00017301FF10" > $CONFIG_DIR/wlan0_addr
+echo "00017301FF11" > $CONFIG_DIR/wlan1_addr
+echo "00017301FF12" > $CONFIG_DIR/wlan2_addr
+echo "00017301FF13" > $CONFIG_DIR/wlan3_addr
+echo "00017301FF14" > $CONFIG_DIR/wlan4_addr
+echo "00017301FF15" > $CONFIG_DIR/wlan5_addr
+echo "00017301FF16" > $CONFIG_DIR/wlan6_addr
+echo "00017301FF17" > $CONFIG_DIR/wlan7_addr
+
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_cck_a
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_cck_b
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_ht40_1s_a
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_ht40_1s_b
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_diff_ht40_2s
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_diff_ht20
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_diff_ofdm
+echo "3" > $CONFIG_DIR/reg_domain
+echo "0" > $CONFIG_DIR/11n_xcap
+echo "0" > $CONFIG_DIR/led_type
+echo "0" > $CONFIG_DIR/tssi_1
+echo "0" > $CONFIG_DIR/tssi_2
+echo "0" > $CONFIG_DIR/11n_ther
+echo "0" > $CONFIG_DIR/trswitch
+echo "3" > $CONFIG_DIR/rfe_type
+
+#wlan_mode: 0: AP, 1: Client(network_type=0)/AD-Hoc(network_type=1)
+echo "0" > $CONFIG_DIR/wlan_mode
+echo "0" > $CONFIG_DIR/wlan_disabled
+echo "family-test$EXT" > $CONFIG_DIR/ssid
+#MIMO: 1: 1T2R, 2: 2T4R, 3: 2T2R, 4: 1T1R, 5: 3T3R, 6: 4T4R
+echo "3" > $CONFIG_DIR/MIMO_TR_mode
+
+echo "1" > $CONFIG_DIR/rc_enable
+#channel: default channel
+echo "1" > $CONFIG_DIR/channel
+#ch_hi: Available highest channel
+echo "0" > $CONFIG_DIR/ch_hi
+#ch_low: Available lowest channel
+echo "0" > $CONFIG_DIR/ch_low
+#band: 64: 11AC, 8: 11N, 4: 11A, 2: 11G, 1: 11B; ex. 11 = 8 + 2 + 1 => BGN mode
+echo "11" > $CONFIG_DIR/band
+#basic_rate: 15=0x0f -> bit0-bit11 as 1,2,5.5,11,6,9,12,18,24,36,48,54
+echo "15" > $CONFIG_DIR/basic_rates
+echo "4095" > $CONFIG_DIR/supported_rate
+echo "1" > $CONFIG_DIR/rate_adaptive_enabled
+echo "0" > $CONFIG_DIR/fix_rate
+echo "2347" > $CONFIG_DIR/rts_threshold
+echo "2346" > $CONFIG_DIR/frag_threshold
+echo "30000" > $CONFIG_DIR/inactivity_time #unit:10ms
+echo "100" > $CONFIG_DIR/beacon_interval
+echo "1" > $CONFIG_DIR/dtim_period
+echo "0" > $CONFIG_DIR/preamble_type
+echo "0" > $CONFIG_DIR/hidden_ssid
+echo "0" > $CONFIG_DIR/supported_sta_num
+echo "1" > $CONFIG_DIR/protection_disabled
+echo "0" > $CONFIG_DIR/macclone_enable
+echo "2" > $CONFIG_DIR/wifi_specific
+echo "0" > $CONFIG_DIR/vap_enable
+echo "0" > $CONFIG_DIR/group_id
+echo "0" > $CONFIG_DIR/block_relay
+echo "1" > $CONFIG_DIR/wmm_enabled
+echo "0" > $CONFIG_DIR/guest_access
+
+echo "0" > $CONFIG_DIR/wds_enable
+echo "0" > $CONFIG_DIR/wds_pure
+
+echo "0" > $CONFIG_DIR/macac_enabled
+echo "0" > $CONFIG_DIR/macac_num
+#echo "001122334455" > $CONFIG_DIR/macac_addr1
+#echo "001234567890" > $CONFIG_DIR/macac_addr2
+
+echo "0" > $CONFIG_DIR/countrycode_enable
+echo "US" > $CONFIG_DIR/countrycode
+
+echo "2" > $CONFIG_DIR/auth_type
+echo "0" > $CONFIG_DIR/encrypt
+echo "2" > $CONFIG_DIR/wpa_auth
+echo "87654321" > $CONFIG_DIR/wpa_psk
+echo "2" > $CONFIG_DIR/wpa_cipher
+echo "2" > $CONFIG_DIR/wpa2_cipher
+echo "0" > $CONFIG_DIR/psk_enable
+echo "86400" > $CONFIG_DIR/gk_rekey
+echo "0" > $CONFIG_DIR/psk_format
+
+echo "0" > $CONFIG_DIR/wpa11w
+echo "0" > $CONFIG_DIR/wpa2EnableSHA256
+
+echo "0" > $CONFIG_DIR/wep
+echo "0" > $CONFIG_DIR/wep_default_key
+echo "1" > $CONFIG_DIR/wep_key_type
+echo "0987654321" > $CONFIG_DIR/wepkey1_64_hex
+echo "0987654321" > $CONFIG_DIR/wepkey2_64_hex
+echo "0987654321" > $CONFIG_DIR/wepkey3_64_hex
+echo "0987654321" > $CONFIG_DIR/wepkey4_64_hex
+echo "3534333231" > $CONFIG_DIR/wepkey1_64_asc
+echo "3534333231" > $CONFIG_DIR/wepkey2_64_asc
+echo "3534333231" > $CONFIG_DIR/wepkey3_64_asc
+echo "3534333231" > $CONFIG_DIR/wepkey4_64_asc
+echo "12345678901234567890123456" > $CONFIG_DIR/wepkey1_128_hex
+echo "12345678901234567890123456" > $CONFIG_DIR/wepkey2_128_hex
+echo "12345678901234567890123456" > $CONFIG_DIR/wepkey3_128_hex
+echo "12345678901234567890123456" > $CONFIG_DIR/wepkey4_128_hex
+echo "31323334353637383930313233" > $CONFIG_DIR/wepkey1_128_asc
+echo "31323334353637383930313233" > $CONFIG_DIR/wepkey2_128_asc
+echo "31323334353637383930313233" > $CONFIG_DIR/wepkey3_128_asc
+echo "31323334353637383930313233" > $CONFIG_DIR/wepkey4_128_asc
+echo "0" > $CONFIG_DIR/network_type
+echo "" > $CONFIG_DIR/default_ssid
+echo "0" > $CONFIG_DIR/power_scale
+
+# channel_bonding: BW: 0 - 20M mode, 1 - 40M, 2 - 80M mode
+echo "0" > $CONFIG_DIR/channel_bonding
+#control_sideband: BW: 0 - lower 2nd channel offset , 1 - higher 2nd channel offset
+echo "0" > $CONFIG_DIR/control_sideband
+echo "1" > $CONFIG_DIR/aggregation
+echo "1" > $CONFIG_DIR/short_gi
+echo "1" > $CONFIG_DIR/stbc_enabled
+echo "0" > $CONFIG_DIR/coexist_enabled
+
+echo "0" > $CONFIG_DIR/enable_1x
+echo "0.0.0.0" > $CONFIG_DIR/rs_ip
+echo "1812" > $CONFIG_DIR/rs_port
+echo "" > $CONFIG_DIR/rs_password
+echo "3" > $CONFIG_DIR/rs_maxretry
+echo "5" > $CONFIG_DIR/rs_interval_time
+echo "0" > $CONFIG_DIR/mac_auth_enabled
+echo "0" > $CONFIG_DIR/enable_supp_nonwpa
+echo "0" > $CONFIG_DIR/supp_nonwpa
+echo "0" > $CONFIG_DIR/wpa2_pre_auth
+
+echo "0" > $CONFIG_DIR/account_rs_enabled
+echo "0.0.0.0" > $CONFIG_DIR/account_rs_ip
+echo "0" > $CONFIG_DIR/account_rs_port
+echo "" > $CONFIG_DIR/account_rs_password
+echo "0" > $CONFIG_DIR/account_rs_update_enabled
+echo "0" > $CONFIG_DIR/account_rs_update_delay
+echo "0" > $CONFIG_DIR/account_rs_maxretry
+echo "0" > $CONFIG_DIR/account_rs_interval_time
+
+echo "0" > $CONFIG_DIR/wsc_disabled
+echo "3" > $CONFIG_DIR/wsc_method
+echo "0" > $CONFIG_DIR/wsc_configured
+echo "1" > $CONFIG_DIR/wsc_auth
+echo "1" > $CONFIG_DIR/wsc_enc
+echo "0" > $CONFIG_DIR/wsc_manual_enabled
+echo "1" > $CONFIG_DIR/wsc_upnp_enabled
+echo "1" > $CONFIG_DIR/wsc_registrar_enabled
+echo "" > $CONFIG_DIR/wsc_ssid
+echo "" > $CONFIG_DIR/wsc_psk
+echo "0" > $CONFIG_DIR/wsc_configbyextreg
+echo "27006672" > $CONFIG_DIR/wsc_pin
+
+### 802.11k mib ###
+# The following mibs will work if CONFIG_RTL_DOT11K_SUPPORT is y
+# enable 802.11k: 1=enable, 0=disable
+echo "0" > $CONFIG_DIR/rm_activated
+echo "1" > $CONFIG_DIR/rm_link_measure
+echo "1" > $CONFIG_DIR/rm_beacon_passive
+echo "1" > $CONFIG_DIR/rm_beacon_active
+echo "1" > $CONFIG_DIR/rm_beacon_table
+echo "1" > $CONFIG_DIR/rm_neighbor_report
+echo "1" > $CONFIG_DIR/rm_ap_channel_report
+### 802.11k deamon setting ###
+# enable 802.11k deamon: 1=enable, 0=disable
+echo "0" > $CONFIG_DIR/rm_deamon_enable
+# time interval for deamon to wake up
+echo "60" > $CONFIG_DIR/rm_deamon_time_interval
+# debug mode
+echo "0" > $CONFIG_DIR/rm_deamon_debug
+
+### 802.11k mib ###
+# The following mibs will work if CONFIG_RTL_11V_SUPPORT is y
+echo "1" > $CONFIG_DIR/BssTransEnable
+echo "3" > $CONFIG_DIR/BssReqMode
+echo "0" > $CONFIG_DIR/BssDiassocDeadline
+echo "0" > $CONFIG_DIR/BssDiassocImminent
+
+echo "0.0.0.0" > $CONFIG_DIR/ip_addr
+echo "255.255.255.0" > $CONFIG_DIR/net_mask
+
+echo "192.168.1.250" > $CONFIG_ROOT_DIR/ip_addr
+echo "255.255.255.0" > $CONFIG_ROOT_DIR/net_mask
+echo "RTL8192CD" > $CONFIG_ROOT_DIR/device_name
+echo "0" > $CONFIG_ROOT_DIR/band2g5g_select
+
+
diff --git a/package/kernel/realtek-wl/files/script/mywlan_8192c.sh b/package/kernel/realtek-wl/files/script/mywlan_8192c.sh
new file mode 100755
index 0000000..c2a325a
--- /dev/null
+++ b/package/kernel/realtek-wl/files/script/mywlan_8192c.sh
@@ -0,0 +1,460 @@
+#!/bin/sh
+#
+# script file to start WLAN
+#
+if [ $# -lt 3 ]; then echo "Usage: $0 wlan root type"; exit 1 ; fi
+
+#echo "my: [$1] [$2] [$3]"
+
+if [ "$1" == "wlan0" ]; then
+ CONFIG_ROOT_DIR="/var/rtl8192c"
+elif [ "$1" == "wlan1" ]; then
+ CONFIG_ROOT_DIR="/var/rtl8192cd"
+else
+ echo "--interface is not right $1"
+fi
+CONFIG_DIR=$CONFIG_ROOT_DIR/$1
+
+if [ -z "$SCRIPT_DIR" ]; then
+ SCRIPT_DIR=`cat $CONFIG_ROOT_DIR/wifi_script_dir`
+fi
+START_WLAN_APP=$SCRIPT_DIR/wlanapp_8192c.sh
+
+#if [ -z "$ROOT_WLAN" ]; then
+# ROOT_WLAN=`echo $1 | cut -b -5`
+#fi
+
+OP_INTF=$1
+ROOT_WLAN=$2
+EXT=$3
+
+ROOT_CONFIG_DIR=$CONFIG_ROOT_DIR/$ROOT_WLAN
+
+SET_WLAN="iwpriv $1"
+SET_WLAN_PARAM="$SET_WLAN set_mib"
+IFCONFIG=ifconfig
+
+## Disable WLAN MAC driver and shutdown interface first ##
+$IFCONFIG $OP_INTF down
+
+GET_VALUE=
+GET_VALUE_TMP=
+GET_VALUE_WLAN_DISABLED=`cat $CONFIG_DIR/wlan_disabled`
+GET_VALUE_WLAN_MODE=`cat $CONFIG_DIR/wlan_mode`
+
+##$SET_WLAN set_mib vap_enable=0
+
+## kill wlan application daemon ##
+
+##$START_WLAN_APP kill $1
+
+## Set parameters to driver ##
+
+GET_VALUE=`cat $ROOT_CONFIG_DIR/reg_domain`
+$SET_WLAN set_mib regdomain=$GET_VALUE
+
+#EXT=`echo $1 | cut -b 7-8`
+NUM=0
+if [ "$EXT" = "va" ] ; then
+ NUM=${1#w*va};
+ NUM=$((NUM +1))
+# NUM=`echo $1 | cut -b 9`
+# NUM=`expr $NUM + 1`
+fi
+
+GET_VALUE=`cat $ROOT_CONFIG_DIR/wlan${NUM}_addr`
+$IFCONFIG $OP_INTF hw ether $GET_VALUE
+
+IS_ROOT_WLAN=0;
+if [ "$EXT" = "root" ] ; then
+ IS_ROOT_WLAN=1;
+fi
+
+if [ "$GET_VALUE_WLAN_MODE" = '1' ]; then
+ ## client mode
+ GET_VALUE=`cat $CONFIG_DIR/network_type`
+ if [ "$GET_VALUE" = '0' ]; then
+ $SET_WLAN set_mib opmode=8
+ else
+ $SET_WLAN set_mib opmode=32
+ GET_VALUE_TMP=`cat $CONFIG_DIR/default_ssid`
+ $SET_WLAN set_mib defssid="$GET_VALUE_TMP"
+ fi
+else
+ ## AP mode
+ $SET_WLAN set_mib opmode=16
+fi
+##$IFCONFIG $OP_INTF hw ether $WLAN_MAC_ADDR
+
+##if [ "$GET_VALUE_WLAN_MODE" = '2' ]; then
+## $SET_WLAN set_mib wds_pure=1
+##else
+## $SET_WLAN set_mib wds_pure=0
+##fi
+
+# set RF parameters
+if [ $IS_ROOT_WLAN = 1 ]; then
+ GET_VALUE=`cat $CONFIG_DIR/channel`
+ $SET_WLAN set_mib channel=$GET_VALUE
+
+ GET_VALUE=`cat $CONFIG_DIR/ch_hi`
+ $SET_WLAN set_mib ch_hi=$GET_VALUE
+
+ GET_VALUE=`cat $CONFIG_DIR/ch_low`
+ $SET_WLAN set_mib ch_low=$GET_VALUE
+
+ GET_VALUE=`cat $CONFIG_DIR/led_type`
+ $SET_WLAN set_mib led_type=$GET_VALUE
+
+ GET_VALUE=`cat $CONFIG_DIR/MIMO_TR_mode`
+ $SET_WLAN set_mib MIMO_TR_mode=$GET_VALUE
+
+ GET_TX_POWER_CCK_A=`cat $CONFIG_DIR/tx_power_cck_a`
+ GET_TX_POWER_CCK_B=`cat $CONFIG_DIR/tx_power_cck_b`
+ GET_TX_POWER_HT40_1S_A=`cat $CONFIG_DIR/tx_power_ht40_1s_a`
+ GET_TX_POWER_HT40_1S_B=`cat $CONFIG_DIR/tx_power_ht40_1s_b`
+
+ GET_TX_POWER_DIFF_HT40_2S=`cat $CONFIG_DIR/tx_power_diff_ht40_2s`
+ GET_TX_POWER_DIFF_HT20=`cat $CONFIG_DIR/tx_power_diff_ht20`
+ GET_TX_POWER_DIFF_OFDM=`cat $CONFIG_DIR/tx_power_diff_ofdm`
+
+ $SET_WLAN set_mib pwrlevelCCK_A=$GET_TX_POWER_CCK_A
+ $SET_WLAN set_mib pwrlevelCCK_B=$GET_TX_POWER_CCK_B
+ $SET_WLAN set_mib pwrlevelHT40_1S_A=$GET_TX_POWER_HT40_1S_A
+ $SET_WLAN set_mib pwrlevelHT40_1S_B=$GET_TX_POWER_HT40_1S_B
+ $SET_WLAN set_mib pwrdiffHT40_2S=$GET_TX_POWER_DIFF_HT40_2S
+ $SET_WLAN set_mib pwrdiffHT20=$GET_TX_POWER_DIFF_HT20
+ $SET_WLAN set_mib pwrdiffOFDM=$GET_TX_POWER_DIFF_OFDM
+
+ GET_11N_TSSI1=`cat $CONFIG_DIR/tssi_1`
+ $SET_WLAN set_mib tssi1=$GET_11N_TSSI1
+ GET_11N_TSSI2=`cat $CONFIG_DIR/tssi_2`
+ $SET_WLAN set_mib tssi2=$GET_11N_TSSI2
+
+ GET_VALUE=`cat $CONFIG_DIR/11n_ther`
+ $SET_WLAN set_mib ther=$GET_VALUE
+
+ GET_VALUE=`cat $CONFIG_DIR/trswitch`
+ $SET_WLAN set_mib trswitch=$GET_VALUE
+
+ GET_VALUE=`cat $CONFIG_DIR/11n_xcap`
+ $SET_WLAN set_mib xcap=$GET_VALUE
+
+ GET_VALUE=`cat $ROOT_CONFIG_DIR/beacon_interval`
+ $SET_WLAN set_mib bcnint=$GET_VALUE
+
+ GET_VALUE=`cat $CONFIG_DIR/dtim_period`
+ $SET_WLAN set_mib dtimperiod=$GET_VALUE
+fi # [ $IS_ROOT_WLAN = 1 ]
+
+GET_VALUE=`cat $CONFIG_DIR/basic_rates`
+$SET_WLAN set_mib basicrates=$GET_VALUE
+
+GET_VALUE=`cat $CONFIG_DIR/supported_rate`
+$SET_WLAN set_mib oprates=$GET_VALUE
+
+GET_RATE_ADAPTIVE_VALUE=`cat $CONFIG_DIR/rate_adaptive_enabled`
+if [ "$GET_RATE_ADAPTIVE_VALUE" = '0' ]; then
+ $SET_WLAN set_mib autorate=0
+ GET_FIX_RATE_VALUE=`cat $CONFIG_DIR/fix_rate`
+ $SET_WLAN set_mib fixrate=$GET_FIX_RATE_VALUE
+else
+ $SET_WLAN set_mib autorate=1
+fi
+
+GET_VALUE=`cat $CONFIG_DIR/rts_threshold`
+$SET_WLAN set_mib rtsthres=$GET_VALUE
+
+GET_VALUE=`cat $CONFIG_DIR/frag_threshold`
+$SET_WLAN set_mib fragthres=$GET_VALUE
+
+GET_VALUE=`cat $CONFIG_DIR/inactivity_time`
+$SET_WLAN set_mib expired_time=$GET_VALUE
+
+GET_VALUE=`cat $CONFIG_DIR/preamble_type`
+$SET_WLAN set_mib preamble=$GET_VALUE
+
+
+GET_VALUE=`cat $CONFIG_DIR/hidden_ssid`
+$SET_WLAN set_mib hiddenAP=$GET_VALUE
+
+
+if [ "$OP_INTF" = "$ROOT_WLAN-vxd" ]; then
+ GET_VALUE=`cat $CONFIG_ROOT_DIR/repeater_ssid`
+else
+ GET_VALUE=`cat $CONFIG_DIR/ssid`
+fi
+$SET_WLAN set_mib ssid=$GET_VALUE
+
+GET_VALUE=`cat $CONFIG_DIR/macac_enabled`
+$SET_WLAN set_mib aclmode=$GET_VALUE
+$SET_WLAN set_mib aclnum=0
+
+ACL_NUM=`cat $CONFIG_DIR/macac_num`
+ITEM="1 2 3 4 5 6 7 8 9 10"
+#for (( i=1; i<=$ACL_NUM; i=i+1 ))
+if [ "0" != "$ACL_NUM" ]; then
+ for i in $ITEM
+ do
+ #echo "acl $i"
+ GET_VALUE=`cat $CONFIG_DIR/macac_addr$i`
+ $SET_WLAN set_mib acladdr=$GET_VALUE
+ if [ "$i" = "$ACL_NUM" ]; then
+ break;
+ fi
+ done
+fi
+
+GET_WLAN_AUTH_TYPE=`cat $CONFIG_DIR/auth_type`
+AUTH_TYPE=$GET_WLAN_AUTH_TYPE
+GET_WLAN_ENCRYPT=`cat $CONFIG_DIR/encrypt`
+if [ "$GET_WLAN_AUTH_TYPE" = "1" ] && [ "$GET_WLAN_ENCRYPT" != "1" ]; then
+ # shared-key and not WEP enabled, force to open-system
+ AUTH_TYPE=0
+fi
+$SET_WLAN set_mib authtype=$AUTH_TYPE
+
+if [ "$GET_WLAN_ENCRYPT" = "0" ]; then
+ $SET_WLAN set_mib encmode=0
+elif [ "$GET_WLAN_ENCRYPT" = "1" ]; then
+ ### WEP mode ##
+ GET_WEP=`cat $CONFIG_DIR/wep`
+ GET_WEP_KEY_TYPE=`cat $CONFIG_DIR/wep_key_type`
+ GET_WEP_KEY_ID=`cat $CONFIG_DIR/wep_default_key`
+ if [ "$GET_WEP" = "1" ]; then
+ if [ "$GET_WEP_KEY_TYPE" = "0" ]; then
+ GET_WEP_KEY_1=`cat $CONFIG_DIR/wepkey1_64_asc`
+ GET_WEP_KEY_2=`cat $CONFIG_DIR/wepkey2_64_asc`
+ GET_WEP_KEY_3=`cat $CONFIG_DIR/wepkey3_64_asc`
+ GET_WEP_KEY_4=`cat $CONFIG_DIR/wepkey4_64_asc`
+ else
+ GET_WEP_KEY_1=`cat $CONFIG_DIR/wepkey1_64_hex`
+ GET_WEP_KEY_2=`cat $CONFIG_DIR/wepkey2_64_hex`
+ GET_WEP_KEY_3=`cat $CONFIG_DIR/wepkey3_64_hex`
+ GET_WEP_KEY_4=`cat $CONFIG_DIR/wepkey4_64_hex`
+ fi
+
+ $SET_WLAN set_mib encmode=1
+ $SET_WLAN set_mib wepkey1=$GET_WEP_KEY_1
+ $SET_WLAN set_mib wepkey2=$GET_WEP_KEY_2
+ $SET_WLAN set_mib wepkey3=$GET_WEP_KEY_3
+ $SET_WLAN set_mib wepkey4=$GET_WEP_KEY_4
+ $SET_WLAN set_mib wepdkeyid=$GET_WEP_KEY_ID
+ else
+ if [ "$GET_WEP_KEY_TYPE" = "0" ]; then
+ GET_WEP_KEY_1=`cat $CONFIG_DIR/wepkey1_128_asc`
+ GET_WEP_KEY_2=`cat $CONFIG_DIR/wepkey2_128_asc`
+ GET_WEP_KEY_3=`cat $CONFIG_DIR/wepkey3_128_asc`
+ GET_WEP_KEY_4=`cat $CONFIG_DIR/wepkey4_128_asc`
+ else
+ GET_WEP_KEY_1=`cat $CONFIG_DIR/wepkey1_128_hex`
+ GET_WEP_KEY_2=`cat $CONFIG_DIR/wepkey2_128_hex`
+ GET_WEP_KEY_3=`cat $CONFIG_DIR/wepkey3_128_hex`
+ GET_WEP_KEY_4=`cat $CONFIG_DIR/wepkey4_128_hex`
+ fi
+ $SET_WLAN set_mib encmode=5
+ $SET_WLAN set_mib wepkey1=$GET_WEP_KEY_1
+ $SET_WLAN set_mib wepkey2=$GET_WEP_KEY_2
+ $SET_WLAN set_mib wepkey3=$GET_WEP_KEY_3
+ $SET_WLAN set_mib wepkey4=$GET_WEP_KEY_4
+ $SET_WLAN set_mib wepdkeyid=$GET_WEP_KEY_ID
+ fi
+else
+ ## WPA mode ##
+ $SET_WLAN set_mib encmode=2
+fi
+##$SET_WLAN set_mib wds_enable=0
+##$SET_WLAN set_mib wds_encrypt=0
+
+## Set 802.1x flag ##
+_ENABLE_1X=0
+if [ $GET_WLAN_ENCRYPT -lt 2 ]; then
+ GET_ENABLE_1X=`cat $CONFIG_DIR/enable_1x`
+ GET_MAC_AUTH_ENABLED=`cat $CONFIG_DIR/mac_auth_enabled`
+ if [ "$GET_ENABLE_1X" != 0 ] || [ "$GET_MAC_AUTH_ENABLED" != 0 ]; then
+ _ENABLE_1X=1
+ fi
+else
+ _ENABLE_1X=1
+fi
+$SET_WLAN set_mib 802_1x=$_ENABLE_1X
+
+
+#set band
+GET_BAND=`cat $ROOT_CONFIG_DIR/band`
+GET_WIFI_SPECIFIC=`cat $ROOT_CONFIG_DIR/wifi_specific`
+if [ "$GET_VALUE_WLAN_MODE" != '1' ] && [ "$GET_WIFI_SPECIFIC" = 1 ] && [ "$GET_BAND" = '2' ] ; then
+ GET_BAND=3
+fi
+if [ "$GET_BAND" = '8' ]; then
+ GET_BAND=11
+ $SET_WLAN set_mib deny_legacy=3
+elif [ "$GET_BAND" = '2' ]; then
+ GET_BAND=3
+ $SET_WLAN set_mib deny_legacy=1
+elif [ "$GET_BAND" = '10' ]; then
+ GET_BAND=11
+ $SET_WLAN set_mib deny_legacy=1
+else
+ $SET_WLAN set_mib deny_legacy=0
+fi
+$SET_WLAN set_mib band=$GET_BAND
+
+###Set 11n parameter
+if [ $IS_ROOT_WLAN = 1 ]; then
+if [ $GET_BAND = 10 ] || [ $GET_BAND = 11 ] || [ $GET_BAND = 76 ] ; then
+ GET_CHANNEL_BONDING=`cat $CONFIG_DIR/channel_bonding`
+ $SET_WLAN set_mib use40M=$GET_CHANNEL_BONDING
+
+ GET_CONTROL_SIDEBAND=`cat $CONFIG_DIR/control_sideband`
+
+ if [ "$GET_CHANNEL_BONDING" = 0 ]; then
+ $SET_WLAN set_mib 2ndchoffset=0
+ else
+ if [ "$GET_CONTROL_SIDEBAND" = 0 ]; then
+ $SET_WLAN set_mib 2ndchoffset=1
+ fi
+ if [ "$GET_CONTROL_SIDEBAND" = 1 ]; then
+ $SET_WLAN set_mib 2ndchoffset=2
+ fi
+ fi
+
+ GET_SHORT_GI=`cat $CONFIG_DIR/short_gi`
+ $SET_WLAN set_mib shortGI20M=$GET_SHORT_GI
+ $SET_WLAN set_mib shortGI40M=$GET_SHORT_GI
+
+ if [ $GET_BAND = 76 ] ; then
+ $SET_WLAN set_mib shortGI80M=$GET_SHORT_GI
+ fi
+ GET_AGGREGATION=`cat $CONFIG_DIR/aggregation`
+
+ if [ "$GET_AGGREGATION" = 0 ]; then
+ $SET_WLAN set_mib ampdu=$GET_AGGREGATION
+ $SET_WLAN set_mib amsdu=$GET_AGGREGATION
+ elif [ "$GET_AGGREGATION" = 1 ]; then
+ $SET_WLAN set_mib ampdu=1
+ $SET_WLAN set_mib amsdu=0
+ elif [ "$GET_AGGREGATION" = 2 ]; then
+ $SET_WLAN set_mib ampdu=0
+ $SET_WLAN set_mib amsdu=1
+ elif [ "$GET_AGGREGATION" = 3 ]; then
+ $SET_WLAN set_mib ampdu=1
+ $SET_WLAN set_mib amsdu=1
+ fi
+
+ GET_STBC_ENABLED=`cat $CONFIG_DIR/stbc_enabled`
+ $SET_WLAN set_mib stbc=$GET_STBC_ENABLED
+ GET_COEXIST_ENABLED=`cat $CONFIG_DIR/coexist_enabled`
+ $SET_WLAN set_mib coexist=$GET_COEXIST_ENABLED
+fi # [ $GET_BAND = 10 ] || [ $GET_BAND = 11 ]
+fi # [ $IS_ROOT_WLAN = 1 ]
+##########
+
+#set nat2.5 disable when client and mac clone is set
+GET_MACCLONE_ENABLED=`cat $CONFIG_DIR/macclone_enable`
+if [ "$GET_MACCLONE_ENABLED" = '1' -a "$GET_VALUE_WLAN_MODE" = '1' ]; then
+ $SET_WLAN set_mib nat25_disable=1
+ $SET_WLAN set_mib macclone_enable=1
+else
+ $SET_WLAN set_mib nat25_disable=0
+ $SET_WLAN set_mib macclone_enable=0
+fi
+
+# set 11g protection mode
+GET_PROTECTION_DISABLED=`cat $CONFIG_DIR/protection_disabled`
+if [ "$GET_PROTECTION_DISABLED" = '1' ] ;then
+ $SET_WLAN set_mib disable_protection=1
+else
+ $SET_WLAN set_mib disable_protection=0
+fi
+
+# set block relay
+GET_BLOCK_RELAY=`cat $CONFIG_DIR/block_relay`
+$SET_WLAN set_mib block_relay=$GET_BLOCK_RELAY
+
+# set WiFi specific mode
+GET_WIFI_SPECIFIC=`cat $ROOT_CONFIG_DIR/wifi_specific`
+$SET_WLAN set_mib wifi_specific=$GET_WIFI_SPECIFIC
+
+# for WMM
+GET_WMM_ENABLED=`cat $CONFIG_DIR/wmm_enabled`
+$SET_WLAN set_mib qos_enable=$GET_WMM_ENABLED
+
+# for guest access
+GET_ACCESS=`cat $CONFIG_DIR/guest_access`
+$SET_WLAN set_mib guest_access=$GET_ACCESS
+
+
+#
+# following settings is used when driver WPA module is included
+#
+
+GET_WPA_AUTH=`cat $CONFIG_DIR/wpa_auth`
+#if [ $GET_VALUE_WLAN_MODE != 1 ] && [ $GET_WLAN_ENCRYPT -ge 2 ] && [ $GET_WLAN_ENCRYPT -lt 7 ] && [ $GET_WPA_AUTH = 2 ]; then
+if [ $GET_WLAN_ENCRYPT -ge 2 ] && [ $GET_WLAN_ENCRYPT -lt 11 ] && [ $GET_WPA_AUTH = 2 ]; then
+ if [ $GET_WLAN_ENCRYPT = 2 ]; then
+ ENABLE=1
+ elif [ $GET_WLAN_ENCRYPT = 4 ]; then
+ ENABLE=2
+ elif [ $GET_WLAN_ENCRYPT = 6 ]; then
+ ENABLE=3
+ elif [ $GET_WLAN_ENCRYPT = 8 ]; then
+ ENABLE=8
+ elif [ $GET_WLAN_ENCRYPT = 10 ]; then
+ ENABLE=10
+ else
+ echo "invalid ENCRYPT value!"; exit
+ fi
+ $SET_WLAN set_mib psk_enable=$ENABLE
+
+ if [ $GET_WLAN_ENCRYPT = 2 ] || [ $GET_WLAN_ENCRYPT = 6 ] || [ $GET_WLAN_ENCRYPT = 8 ] || [ $GET_WLAN_ENCRYPT = 10 ]; then
+ GET_WPA_CIPHER_SUITE=`cat $CONFIG_DIR/wpa_cipher`
+ if [ $GET_WPA_CIPHER_SUITE = 1 ]; then
+ CIPHER=2
+ elif [ $GET_WPA_CIPHER_SUITE = 2 ]; then
+ CIPHER=8
+ elif [ $GET_WPA_CIPHER_SUITE = 3 ]; then
+ CIPHER=10
+ elif [ $GET_WPA_CIPHER_SUITE = 0 ]; then
+ CIPHER=0
+ else
+ echo "invalid WPA_CIPHER_SUITE value!"; exit 1
+ fi
+ fi
+ $SET_WLAN set_mib wpa_cipher=$CIPHER
+
+ if [ $GET_WLAN_ENCRYPT = 4 ] || [ $GET_WLAN_ENCRYPT = 6 ] || [ $GET_WLAN_ENCRYPT = 8 ] || [ $GET_WLAN_ENCRYPT = 10 ]; then
+ GET_WPA2_CIPHER_SUITE=`cat $CONFIG_DIR/wpa2_cipher`
+ if [ $GET_WPA2_CIPHER_SUITE = 1 ]; then
+ CIPHER=2
+ elif [ $GET_WPA2_CIPHER_SUITE = 2 ]; then
+ CIPHER=8
+ elif [ $GET_WPA2_CIPHER_SUITE = 3 ]; then
+ CIPHER=10
+ elif [ $GET_WPA2_CIPHER_SUITE = 8 ]; then
+ CIPHER=8
+ else
+ echo "invalid WPA2_CIPHER_SUITE value!"; exit 1
+ fi
+ fi
+
+ if [ $GET_WLAN_ENCRYPT = 8 ] || [ $GET_WLAN_ENCRYPT = 10 ]; then
+ if [ $GET_WLAN_ENCRYPT = 8 ]; then
+ $SET_WLAN set_mib dot11IEEE80211W=2
+ else
+ $SET_WLAN set_mib dot11IEEE80211W=1
+ fi
+ $SET_WLAN set_mib enableSHA256=1
+ fi
+
+ $SET_WLAN set_mib wpa2_cipher=$CIPHER
+
+ GET_WPA_PSK=`cat $CONFIG_DIR/wpa_psk`
+ $SET_WLAN set_mib passphrase=$GET_WPA_PSK
+
+
+ GET_WPA_GROUP_REKEY_TIME=`cat $CONFIG_DIR/gk_rekey`
+ $SET_WLAN set_mib gk_rekey=$GET_WPA_GROUP_REKEY_TIME
+else
+ $SET_WLAN set_mib psk_enable=0
+fi
diff --git a/package/kernel/realtek-wl/files/script/wlanapp_8192c.sh b/package/kernel/realtek-wl/files/script/wlanapp_8192c.sh
new file mode 100755
index 0000000..50ff659
--- /dev/null
+++ b/package/kernel/realtek-wl/files/script/wlanapp_8192c.sh
@@ -0,0 +1,476 @@
+#!/bin/sh
+#
+# script file to start wlan applications (IAPP, Auth, Autoconf) daemon
+#
+# Usage: wlanapp.sh [start|kill] wlan_interface...br_interface
+#
+
+## error code
+ERROR_WSCD_START_FAIL=8
+
+if [ $# -lt 2 ] || [ $1 != 'start' -a $1 != 'kill' ] ; then
+ echo "Usage: $0 [start|kill] wlan_interface...br_interface"
+ exit 1
+fi
+
+TOP_VAR_DIR="/var"
+TOP_ETC_DIR="/etc"
+TOP_TMP_DIR="/tmp"
+if [ "$2" == "wlan0" ]; then
+ CONFIG_ROOT_DIR="/var/rtl8192c"
+elif [ "$2" == "wlan1" ]; then
+ CONFIG_ROOT_DIR="/var/rtl8192cd"
+fi
+
+if [ ! -d "$TOP_TMP_DIR" ]; then
+ mkdir $TOP_TMP_DIR
+fi
+
+if [ -z "$BIN_DIR" ]; then
+ BIN_DIR=`cat $CONFIG_ROOT_DIR/wifi_bin_dir`
+fi
+
+if [ -z "$WLAN_PREFIX" ]; then
+ WLAN_PREFIX=wlan
+fi
+#WLAN_PREFIX_LEN=${#WLAN_PREFIX}
+#WLAN_NAME_LEN=$((WLAN_PREFIX_LEN + 1))
+
+if [ -z "$ROOT_WLAN" ]; then
+# ROOT_WLAN=${2:0:$WLAN_NAME_LEN}
+ ROOT_WLAN=${2%%-*}
+fi
+ROOT_CONFIG_DIR=$CONFIG_ROOT_DIR/$ROOT_WLAN
+
+GET_VALUE=
+GET_VALUE_TMP=
+KILLALL=killall
+FLASH_PROG=flash
+SLEEP=sleep
+
+START=1
+PARAM_NUM=$#
+PARAM_ALL=$*
+PARAM1=$1
+PARAM_BR=
+WLAN_INTERFACE=
+
+WLAN0_MODE=
+WLAN0_DISABLED=
+WLAN0_WSC_DISABLED=
+
+WLAN1_MODE=0
+WLAN1_DISABLED=1
+WLAN1_WSC_DISABLED=1
+both_band_ap=0
+
+rtl_check_wlan_band(){
+
+ WLAN0_MODE=`cat $CONFIG_ROOT_DIR/wlan0/wlan_mode`
+ WLAN0_DISABLED=`cat $CONFIG_ROOT_DIR/wlan0/wlan_disabled`
+ WLAN0_WSC_DISABLED=`cat $CONFIG_ROOT_DIR/wlan0/wsc_disabled`
+
+ if [ -d "$CONFIG_ROOT_DIR/wlan1" ] ; then
+ WLAN1_MODE=`cat $CONFIG_ROOT_DIR/wlan1/wlan_mode`
+ WLAN1_DISABLED=`cat $CONFIG_ROOT_DIR/wlan1/wlan_disabled`
+ WLAN1_WSC_DISABLED=`cat $CONFIG_ROOT_DIR/wlan1/wsc_disabled`
+ fi
+
+ if [ "$WLAN0_MODE" = "0" -o "$WLAN0_MODE" = "3" ] && [ "$WLAN1_MODE" = "0" -o "$WLAN1_MODE" = "3" ] && [ "$WLAN0_DISABLED" = "0" ] && [ "$WLAN1_DISABLED" = "0" ] && [ "$WLAN0_WSC_DISABLED" = "0" ] && [ "$WLAN1_WSC_DISABLED" = "0" ]; then
+ both_band_ap = 1
+ fi
+}
+
+rtl_check_wlan_if() {
+ if [ $PARAM_NUM -ge 1 ]; then
+ for ARG in $PARAM_ALL ; do
+ case $ARG in
+ $WLAN_PREFIX*)
+ if [ -z "$WLAN_INTERFACE" ]; then
+ WLAN_INTERFACE="$ARG"
+ else
+ WLAN_INTERFACE="$WLAN_INTERFACE $ARG"
+ fi
+ ;;
+ *)
+ PARAM_BR=$ARG
+ ;;
+ esac
+ done
+ fi
+}
+
+DEBUG_EASYCONF=
+VXD_INTERFACE=
+
+
+## kill 802.1x, autoconf and IAPP daemon ##
+rtl_kill_iwcontrol_pid() {
+ PIDFILE="$TOP_VAR_DIR/run/iwcontrol.pid"
+ if [ -f $PIDFILE ] ; then
+ PID=`cat $PIDFILE`
+ echo "IWCONTROL_PID=$PID"
+ if [ "$PID" != "0" ]; then
+ kill -9 $PID 2>/dev/null
+ fi
+ rm -f $PIDFILE
+ fi
+}
+
+
+rtl_kill_wlan_pid() {
+ for WLAN in $WLAN_INTERFACE ; do
+ PIDFILE=$TOP_VAR_DIR/run/auth-$WLAN.pid
+ if [ -f $PIDFILE ] ; then
+ PID=`cat $PIDFILE`
+ echo "AUTH_PID=$PID"
+ if [ "$PID" != "0" ]; then
+ kill -9 $PID 2>/dev/null
+ fi
+ rm -f $PIDFILE
+
+ PIDFILE=$TOP_VAR_DIR/run/auth-$WLAN-vxd.pid
+ if [ -f $PIDFILE ] ; then
+ PID=`cat $PIDFILE`
+ if [ "$PID" != "0" ]; then
+ kill -9 $PID 2>/dev/null
+ fi
+ rm -f $PIDFILE
+ fi
+ fi
+
+ # for WPS ---------------------------------->>
+ PIDFILE=$TOP_VAR_DIR/run/wscd-$WLAN.pid
+ if [ "$both_band_ap" = "1" ]; then
+ PIDFILE=$TOP_VAR_DIR/run/wscd-wlan0-wlan1.pid
+ fi
+
+ if [ -f $PIDFILE ] ; then
+ PID=`cat $PIDFILE`
+ echo "WSCD_PID=$PID"
+ if [ "$PID" != "0" ]; then
+ kill -9 $PID 2>/dev/null
+ fi
+ rm -f $PIDFILE
+ fi
+ done
+ #<<----------------------------------- for WPS
+}
+
+## start 802.1x daemon ##
+DEAMON_CREATED=0
+VALID_WLAN_INTERFACE=
+
+
+rtl_start_wlan() {
+ for WLAN in $WLAN_INTERFACE ; do
+ CONFIG_DIR=$CONFIG_ROOT_DIR/$WLAN
+ GET_VALUE_WLAN_DISABLED=`cat $CONFIG_DIR/wlan_disabled`
+ if [ "$GET_VALUE_WLAN_DISABLED" != 0 ]; then
+ continue
+ fi
+
+ GET_VALUE_WLAN_MODE=`cat $CONFIG_DIR/wlan_mode`
+ GET_WLAN_WPA_AUTH_TYPE=`cat $CONFIG_DIR/wpa_auth`
+ GET_WLAN_ENCRYPT=`cat $CONFIG_DIR/encrypt`
+ GET_WLAN_AUTH_TYPE=`cat $CONFIG_DIR/auth_type`
+
+ EXT=${WLAN#$WLAN_PREFIX[0-9]}
+ EXT=${EXT#-}
+ VAP_AUTH_ENABLE=0
+ ROOT_AUTH_ENABLE=0
+
+ _ENABLE_1X=0
+ _USE_RS=0
+
+ if [ "$GET_WLAN_ENCRYPT" -lt 2 ]; then
+ GET_ENABLE_1X=`cat $CONFIG_DIR/enable_1x`
+ GET_MAC_AUTH_ENABLED=`cat $ROOT_CONFIG_DIR/mac_auth_enabled`
+ if [ "$GET_WLAN_AUTH_TYPE" = 1 ] && [ "$GET_WLAN_ENCRYPT" = 1 ] ; then
+ echo "8021x don't work in WEP-shared!!"
+ elif [ "$GET_ENABLE_1X" != 0 ] || [ "$GET_MAC_AUTH_ENABLED" != 0 ]; then
+ _ENABLE_1X=1
+ _USE_RS=1
+ fi
+ else
+ _ENABLE_1X=1
+ if [ "$GET_WLAN_WPA_AUTH_TYPE" = 1 ]; then
+ _USE_RS=1
+ fi
+ fi
+
+
+ ROLE=
+ if [ "$_ENABLE_1X" != 0 ]; then
+ $BIN_DIR/$FLASH_PROG wpa $WLAN $TOP_VAR_DIR/wpa-$WLAN.conf $WLAN
+ $BIN_DIR/$FLASH_PROG config_file_path $CONFIG_ROOT_DIR wpa $WLAN $TOP_VAR_DIR/wpa-$WLAN.conf $WLAN
+ if [ "$GET_VALUE_WLAN_MODE" = '1' ]; then
+ GET_VALUE=`cat $CONFIG_DIR/network_type`
+ if [ "$GET_VALUE" = '0' ]; then
+ ROLE=client-infra
+ else
+ ROLE=client-adhoc
+ fi
+ else
+ ROLE=auth
+ fi
+
+ VAP_NOT_IN_PURE_AP_MODE=0
+
+
+ if [ "$GET_VALUE_WLAN_MODE" = '0' ] && [ "$VAP_NOT_IN_PURE_AP_MODE" = '0' ]; then
+ if [ "$GET_WLAN_WPA_AUTH_TYPE" != 2 ] || [ "$_USE_RS" != 0 ]; then
+ $BIN_DIR/auth $WLAN $PARAM_BR $ROLE $TOP_VAR_DIR/wpa-$WLAN.conf
+ DEAMON_CREATED=1
+ ROOT_AUTH_ENABLE=1
+ fi
+
+ fi
+ fi
+
+ if [ "$EXT" = "vxd" ]; then
+ if [ "$ROLE" != "auth" ] || [ "$ROLE" = "auth" -a "$_USE_RS" != 0 ]; then
+ VXD_INTERFACE=$WLAN
+ fi
+ else
+ GET_WSC_DISABLE=`cat $CONFIG_DIR/wsc_disabled`
+ GET_IEEE80211K_DEAMON=`cat $CONFIG_DIR/rm_deamon_enable`
+ if [ $ROOT_AUTH_ENABLE = 1 ] || [ $GET_WSC_DISABLE = 0 ] || [ $GET_IEEE80211K_DEAMON = 1 ]; then
+ if [ -z "$VALID_WLAN_INTERFACE" ]; then
+ VALID_WLAN_INTERFACE="$WLAN"
+ else
+ VALID_WLAN_INTERFACE="$VALID_WLAN_INTERFACE $WLAN"
+ fi
+ fi
+ fi
+
+ done
+
+}
+
+#end of start wlan
+
+
+# for WPS ------------------------------------------------->>
+rtl_start_wps() {
+ if [ ! -e $BIN_DIR/wscd ]; then
+ return;
+ fi
+ for WLAN in $VALID_WLAN_INTERFACE ; do
+ EXT=${WLAN#$WLAN_PREFIX[0-9]}
+ EXT=${EXT#-}
+ if [ "$EXT" = "" ] || [ "$EXT" = "vxd" ]; then
+
+ USE_IWCONTROL=1
+ DEBUG_ON=0
+ _ENABLE_1X=0
+ WSC=1
+ CONFIG_DIR=$CONFIG_ROOT_DIR/$WLAN
+ CONF_FILE=$TOP_VAR_DIR/wsc-$WLAN.conf
+ FiFO_File=$TOP_VAR_DIR/wscd-$WLAN.fifo
+
+
+ GET_WSC_DISABLE=`cat $CONFIG_DIR/wsc_disabled`
+ GET_VALUE_WLAN_DISABLED=`cat $CONFIG_DIR/wlan_disabled`
+ GET_VALUE_WLAN_MODE=`cat $CONFIG_DIR/wlan_mode`
+ GET_WLAN_ENCRYPT=`cat $CONFIG_DIR/encrypt`
+ GET_WLAN_WPA_AUTH_TYPE=`cat $CONFIG_DIR/wpa_auth`
+ GET_ENABLE_1X=`cat $CONFIG_DIR/enable_1x`
+ GET_WSC_AUTH=`cat $CONFIG_DIR/wsc_auth`
+
+ if [ "$GET_WLAN_ENCRYPT" -lt 2 ]; then
+ GET_MAC_AUTH_ENABLED=`cat $CONFIG_DIR/mac_auth_enabled`
+ if [ "$GET_ENABLE_1X" != 0 ] || [ "$GET_MAC_AUTH_ENABLED" != 0 ]; then
+ _ENABLE_1X=1
+ fi
+ else
+ if [ "$GET_ENABLE_1X" != 0 ]; then
+ _ENABLE_1X=1
+ fi
+ fi
+
+ ## WSC: WPA and WPA2 authentication
+ if [ "$GET_WSC_AUTH" = 8 ] || [ "$GET_WSC_AUTH" = 0x10 ]; then
+ _ENABLE_1X=1
+ fi
+
+ if [ "$_ENABLE_1X" = "1" ]; then
+ echo "stop wscd if 1x is enabled"
+ continue
+ fi
+
+ if [ "$EXT" = "vxd" ]; then
+ GET_VALUE_WLAN_CURR_MODE=`cat $CONFIG_DIR/wlan_mode`
+ if [ $GET_VALUE_WLAN_CURR_MODE = 1 ]; then
+ GET_WSC_DISABLE = 1
+ fi
+ fi
+
+ if [ $GET_WSC_DISABLE != 0 ]; then
+ WSC=0
+ else
+ if [ "$GET_VALUE_WLAN_DISABLED" != 0 ] || [ "$GET_VALUE_WLAN_MODE" = 2 ]; then
+ WSC=0
+ else
+ if [ $GET_VALUE_WLAN_MODE = 1 ]; then
+ GET_VALUE=`cat $CONFIG_DIR/network_type`
+ if [ "$GET_VALUE" != 0 ]; then
+ WSC=0
+ fi
+ fi
+ if [ $GET_VALUE_WLAN_MODE = 0 ]; then
+ if [ $GET_WLAN_ENCRYPT = 0 ] && [ $_ENABLE_1X != 0 ]; then
+ WSC=0
+ fi
+ if [ $GET_WLAN_ENCRYPT = 1 ]; then
+ WSC=0
+ fi
+ if [ $GET_WLAN_ENCRYPT -ge 2 ] && [ $GET_WLAN_WPA_AUTH_TYPE = 1 ]; then
+ WSC=0
+ fi
+ fi
+ fi
+ fi
+
+ if [ $WSC = 1 ]; then
+ if [ ! -f $TOP_VAR_DIR/wps/simplecfgservice.xml ]; then
+ if [ -e $TOP_VAR_DIR/wps ]; then
+ rm $TOP_VAR_DIR/wps -rf
+ fi
+ mkdir $TOP_VAR_DIR/wps
+ #cp $TOP_ETC_DIR/simplecfg*.xml $TOP_VAR_DIR/wps
+ cat $TOP_ETC_DIR/simplecfgservice.xml > $TOP_VAR_DIR/wps/simplecfgservice.xml
+ fi
+
+ if [ $GET_VALUE_WLAN_MODE = 1 ]; then
+ UPNP=0
+ _CMD="-mode 2"
+ else
+ GET_WSC_UPNP_ENABLED=`cat $CONFIG_DIR/wsc_upnp_enabled`
+ UPNP=$GET_WSC_UPNP_ENABLED
+ _CMD="-start"
+ fi
+
+ if [ $UPNP = 1 ]; then
+ route del -net 239.255.255.250 netmask 255.255.255.255 dev "$PARAM_BR"
+ route add -net 239.255.255.250 netmask 255.255.255.255 dev "$PARAM_BR"
+ fi
+
+ if [ "$both_band_ap" = "1" ]; then
+ _CMD="$_CMD -both_band_ap"
+ fi
+
+ $BIN_DIR/$FLASH_PROG config_file_path $CONFIG_ROOT_DIR upd-wsc-conf $TOP_ETC_DIR/wscd.conf $CONF_FILE $WLAN
+
+ _CMD="$_CMD -c $CONF_FILE -w $WLAN"
+
+ if [ $DEBUG_ON = 1 ]; then
+ _CMD="$_CMD -debug"
+ fi
+ if [ $USE_IWCONTROL = 1 ]; then
+ _CMD="$_CMD -fi $FiFO_File"
+ DEAMON_CREATED=1
+ fi
+
+ if [ -f "$TOP_VAR_DIR/wps_start_pbc" ]; then
+ _CMD="$_CMD -start_pbc"
+ rm -f $TOP_VAR_DIR/wps_start_pbc
+ fi
+ if [ -f "$TOP_VAR_DIR/wps_start_pin" ]; then
+ _CMD="$_CMD -start"
+ rm -f $TOP_VAR_DIR/wps_start_pin
+ fi
+ if [ -f "$TOP_VAR_DIR/wps_local_pin" ]; then
+ PIN=`cat $TOP_VAR_DIR/wps_local_pin`
+ _CMD="$_CMD -local_pin $PIN"
+ rm -f $TOP_VAR_DIR/wps_local_pin
+ fi
+ if [ -f "$TOP_VAR_DIR/wps_peer_pin" ]; then
+ PIN=`cat $TOP_VAR_DIR/wps_peer_pin`
+ _CMD="$_CMD -peer_pin $PIN"
+ rm -f $TOP_VAR_DIR/wps_peer_pin
+ fi
+ WSC_CMD=$_CMD
+ echo "cmd: wscd $WSC_CMD"
+ $BIN_DIR/wscd $WSC_CMD -daemon
+
+ WAIT=5
+ while [ $USE_IWCONTROL != 0 -a $WAIT != 0 ]
+ do
+ if [ -e $FiFO_File ]; then
+ break;
+ else
+ $SLEEP 1
+ WAIT=$((WAIT - 1))
+ fi
+ done
+ if [ $WAIT = 0 ]; then
+ exit $ERROR_WSCD_START_FAIL;
+ fi
+ fi
+ fi
+ done
+}
+#<<--------------------------------------------------- for WPS
+
+rtl_start_iwcontrol() {
+ if [ $DEAMON_CREATED = 1 ]; then
+ $BIN_DIR/iwcontrol $VALID_WLAN_INTERFACE $VXD_INTERFACE $POLL
+ fi
+}
+
+rtl_start_dot11k_deamon() {
+
+
+ IEEE80211K_DEAMON_BRING_UP=`cat $CONFIG_DIR/rm_deamon_enable`
+
+ if [ $IEEE80211K_DEAMON_BRING_UP = 1 ]; then
+ IEEE80211K_ENABLE=`cat $CONFIG_DIR/rm_activated`
+ if [ $IEEE80211K_ENABLE = 1 ]; then
+ IEEE80211K_DEAMON_DEBUG_ENABLE=`cat $CONFIG_DIR/rm_deamon_debug`
+ IEEE80211K_DEAMON_DEBUG_OPTION=""
+ IEEE80211K_DEAMON_TIME_INTERVAL=`cat $CONFIG_DIR/rm_deamon_time_interval`
+
+ if [ $IEEE80211K_DEAMON_DEBUG_ENABLE = 1 ]; then
+ IEEE80211K_DEAMON_DEBUG_OPTION="$IEEE80211K_DEAMON_DEBUG_OPTION -d"
+ fi
+
+ IEEE80211K_DEAMON_DEBUG_OPTION="-i $VALID_WLAN_INTERFACE -t $IEEE80211K_DEAMON_TIME_INTERVAL $IEEE80211K_DEAMON_DEBUG_OPTION"
+
+ echo "dot11k_deamon $IEEE80211K_DEAMON_DEBUG_OPTION"
+ $BIN_DIR/dot11k_deamon $IEEE80211K_DEAMON_DEBUG_OPTION
+ else
+ echo "get_mib rm_actived=$IEEE80211K_ENABLE, 802.11k deamon is not enabled"
+ fi
+ fi
+}
+
+rtl_wlanapp() {
+ if [ $PARAM1 = 'kill' ]; then
+ START=0
+ fi
+
+ rtl_check_wlan_if
+
+ if [ -z "$WLAN_INTERFACE" ]; then
+ echo "Error in $0, no wlan interface is given!"
+ exit 0
+ fi
+
+ rtl_kill_iwcontrol_pid
+ rtl_kill_wlan_pid
+
+ rm -f $TOP_VAR_DIR/*.fifo
+
+ if [ $START = 0 ]; then
+ return;
+ fi
+
+# rtl_check_wlan_band
+ rtl_start_wlan
+ rtl_start_wps
+ rtl_start_iwcontrol
+ rtl_start_dot11k_deamon
+}
+
+rtl_wlanapp
diff --git a/package/kernel/realtek-wl/files/wireless_mac80211 b/package/kernel/realtek-wl/files/wireless_mac80211
new file mode 100644
index 0000000..9bbe45c
--- /dev/null
+++ b/package/kernel/realtek-wl/files/wireless_mac80211
@@ -0,0 +1,62 @@
+
+config wifi-device AP0_2G
+ option phy phy0
+ option type mac80211
+ option channel 0
+ option hwmode 11ng
+ list supported_rates '1000'
+ list supported_rates '2000'
+ list supported_rates '5500'
+ list supported_rates '11000'
+ list supported_rates '6000'
+ list supported_rates '9000'
+ list supported_rates '12000'
+ list supported_rates '18000'
+ list supported_rates '2400'
+ list supported_rates '36000'
+ list supported_rates '48000'
+ list supported_rates '54000'
+ list basic_rate '1000'
+ list basic_rate '2000'
+ list basic_rate '5500'
+ list basic_rate '11000'
+ option country US
+ option path virtual/RTKWiFi0/RTKWiFi0
+ option htmode HT20
+ option disabled 0
+ option unsupport_multi_ssid 1
+ option serialize 1
+
+config wifi-iface AP0_2G_if
+ option device AP0_2G
+ option network lan
+ option ifname wlan0
+ option mode ap
+ option ssid ASR-OWRT
+ option encryption psk2
+ option key 12345678
+ option hidden 0
+ option isolate 0
+ option macfilter disable
+ option wps_pushbutton 1
+ option wpa_group_rekey 600
+
+config wifi-device STA0_2G
+ option type mac80211
+ option hwmode 11ng
+ option path virtual/RTKWiFi0/RTKWiFi0
+ option disabled 1
+ option serialize 1
+
+config wifi-iface STA0_2G_if
+ option device STA0_2G
+ option network wlan
+ option ifname wlan0-vxd
+ option mode sta
+ option ssid asr-guest
+ option encryption psk2
+ option key asr123456
+
+config wifi-settings AP0
+ option auto_off_enable 0
+ option auto_off_timeout 600
diff --git a/package/kernel/realtek-wl/files/wireless_mac80211_multiple_ap b/package/kernel/realtek-wl/files/wireless_mac80211_multiple_ap
new file mode 100644
index 0000000..f55d993
--- /dev/null
+++ b/package/kernel/realtek-wl/files/wireless_mac80211_multiple_ap
@@ -0,0 +1,75 @@
+
+config wifi-device AP0_2G
+ option type mac80211
+ option channel 0
+ option hwmode 11ng
+ list supported_rates '1000'
+ list supported_rates '2000'
+ list supported_rates '5500'
+ list supported_rates '11000'
+ list supported_rates '6000'
+ list supported_rates '9000'
+ list supported_rates '12000'
+ list supported_rates '18000'
+ list supported_rates '2400'
+ list supported_rates '36000'
+ list supported_rates '48000'
+ list supported_rates '54000'
+ list basic_rate '1000'
+ list basic_rate '2000'
+ list basic_rate '5500'
+ list basic_rate '11000'
+ option country US
+ option path virtual/RTKWiFi0/RTKWiFi0
+ option htmode HT20
+ option disabled 0
+ option unsupport_multi_ssid 1
+ option serialize 1
+
+config wifi-iface AP0_2G_if
+ option device AP0_2G
+ option network lan
+ option ifname wlan0
+ option mode ap
+ option ssid ASR-OWRT
+ option encryption psk2
+ option key 12345678
+ option hidden 0
+ option isolate 0
+ option macfilter disable
+ option wps_pushbutton 1
+ option wpa_group_rekey 600
+
+config wifi-iface AP1_2G_if
+ option device AP0_2G
+ option network lan
+ option ifname wlan0-va0
+ option mode ap
+ option ssid ASR-OWRT-guest
+ option encryption psk2
+ option key 12345678
+ option hidden 0
+ option isolate 0
+ option macfilter disable
+ option wps_pushbutton 1
+ option wpa_group_rekey 600
+
+config wifi-device STA0_2G
+ option type mac80211
+ option hwmode 11ng
+ option path virtual/RTKWiFi0/RTKWiFi0
+ option disabled 1
+ option serialize 1
+
+config wifi-iface STA0_2G_if
+ option device STA0_2G
+ option network wlan
+ option ifname wlan0-vxd
+ option mode sta
+ option ssid asr-guest
+ option encryption psk2
+ option key asr123456
+
+config wifi-settings AP0
+ option auto_off_enable 0
+ option auto_off_timeout 600
diff --git a/package/kernel/realtek-wl/files/wireless_mac80211_rtl8822bs b/package/kernel/realtek-wl/files/wireless_mac80211_rtl8822bs
new file mode 100644
index 0000000..dee0dff
--- /dev/null
+++ b/package/kernel/realtek-wl/files/wireless_mac80211_rtl8822bs
@@ -0,0 +1,46 @@
+
+config wifi-device AP0_2G
+ option type mac80211
+ option channel 11
+ option hwmode 11ng
+ option country US
+ option path virtual/RTKWiFi0/RTKWiFi0
+ option htmode HT40
+ option disabled 1
+ option unsupport_multi_ssid 1
+
+config wifi-iface AP0_2G_if
+ option device AP0_2G
+ option network lan
+ option ifname wlan0
+ option mode ap
+ option ssid ASR-OWRT
+ option encryption psk2
+ option key 12345678
+ option hidden 0
+ option isolate 0
+ option macfilter disable
+ option wps_pushbutton 1
+ option wpa_group_rekey 600
+
+config wifi-device AP0_5G
+ option type mac80211
+ option channel auto
+ option hwmode 11a
+ option country US
+ option path virtual/RTKWiFi0/RTKWiFi0
+ option htmode VHT80
+ option disabled 0
+ option channel 36
+
+config wifi-iface AP0_5G_if
+ option device AP0_5G
+ option network lan
+ option mode ap
+ option ifname wlan0
+ option ssid ASR-OWRT
+ option encryption psk2
+ option key 12345678
+ option hidden 0
+ option isolate 0
+ option macfilter disable
diff --git a/package/kernel/realtek-wl/files/wireless_wext b/package/kernel/realtek-wl/files/wireless_wext
new file mode 100644
index 0000000..39ab0c6
--- /dev/null
+++ b/package/kernel/realtek-wl/files/wireless_wext
@@ -0,0 +1,18 @@
+
+config wifi-device AP0_2G
+ option type realtek
+ option channel 1
+ option hwmode 11ng
+ option country US
+ option htmode HT20
+ option disabled 0
+
+config wifi-iface AP0_2G_if
+ option device AP0_2G
+ option network lan
+ option ifname wlan0
+ option mode ap
+ option ssid ASR-OWRT
+ option encryption psk2
+ option key 12345678
+ option wpa_group_rekey 600
diff --git a/package/kernel/realtek-wl/files/wireless_wext_rtl8192fr b/package/kernel/realtek-wl/files/wireless_wext_rtl8192fr
new file mode 100644
index 0000000..9eceb41
--- /dev/null
+++ b/package/kernel/realtek-wl/files/wireless_wext_rtl8192fr
@@ -0,0 +1,18 @@
+
+config wifi-device AP1_2G
+ option type realtek
+ option channel 1
+ option hwmode 11n
+ option country US
+ option htmode HT40+
+ option disabled 0
+
+config wifi-iface AP1_2G_if
+ option device AP1_2G
+ option network lan
+ option ifname wlan1
+ option mode ap
+ option ssid ASR-OWRT
+ option encryption psk2
+ option key 12345678
+ option wpa_group_rekey 600
diff --git a/package/kernel/realtek-wl/files/wireless_wext_rtl8812fr b/package/kernel/realtek-wl/files/wireless_wext_rtl8812fr
new file mode 100644
index 0000000..24762da
--- /dev/null
+++ b/package/kernel/realtek-wl/files/wireless_wext_rtl8812fr
@@ -0,0 +1,18 @@
+
+config wifi-device AP1_5G
+ option type realtek
+ option channel 36
+ option hwmode 11ac
+ option country US
+ option htmode HT80+
+ option disabled 0
+
+config wifi-iface AP1_5G_if
+ option device AP1_5G
+ option network lan
+ option ifname wlan1
+ option mode ap
+ option ssid ASR-OWRT
+ option encryption psk2
+ option key 12345678
+ option wpa_group_rekey 600
diff --git a/package/kernel/realtek-wl/files/wireless_wext_rtl8822bs b/package/kernel/realtek-wl/files/wireless_wext_rtl8822bs
new file mode 100644
index 0000000..930e8ac
--- /dev/null
+++ b/package/kernel/realtek-wl/files/wireless_wext_rtl8822bs
@@ -0,0 +1,38 @@
+
+config wifi-device AP0_2G
+ option type realtek
+ option channel 1
+ option hwmode 11n
+ option country US
+ option htmode HT40+
+ option disabled 1
+
+config wifi-iface AP0_2G_if
+ option device AP0_2G
+ option network lan
+ option ifname wlan0
+ option mode ap
+ option ssid ASR-OWRT
+ option encryption psk2
+ option key 12345678
+ option wpa_group_rekey 600
+
+config wifi-device AP0_5G
+ option type realtek
+ option channel 36
+ option hwmode 11ac
+ option country US
+ option htmode HT80+
+ option disabled 0
+
+config wifi-iface AP0_5G_if
+ option device AP0_5G
+ option network lan
+ option ifname wlan0
+ option mode ap
+ option ssid ASR-OWRT
+ option encryption psk2
+ option key 12345678
+ option wpa_group_rekey 600
+
+
diff --git a/package/kernel/realtek-wl/files/wireless_wext_wlan0_rtl8192fr b/package/kernel/realtek-wl/files/wireless_wext_wlan0_rtl8192fr
new file mode 100644
index 0000000..9293896
--- /dev/null
+++ b/package/kernel/realtek-wl/files/wireless_wext_wlan0_rtl8192fr
@@ -0,0 +1,18 @@
+
+config wifi-device AP0_2G
+ option type realtek
+ option channel 1
+ option hwmode 11n
+ option country US
+ option htmode HT40+
+ option disabled 0
+
+config wifi-iface AP0_2G_if
+ option device AP0_2G
+ option network lan
+ option ifname wlan0
+ option mode ap
+ option ssid ASR-OWRT
+ option encryption psk2
+ option key 12345678
+ option wpa_group_rekey 600
diff --git a/package/kernel/realtek-wl/files/wpa_wps.conf b/package/kernel/realtek-wl/files/wpa_wps.conf
new file mode 100644
index 0000000..1c0d27b
--- /dev/null
+++ b/package/kernel/realtek-wl/files/wpa_wps.conf
@@ -0,0 +1,29 @@
+
+ctrl_interface=/var/run/wpa_supplicant
+ctrl_interface_group=0
+
+network={
+ ssid="RTL867x-ADSL-family"
+ key_mgmt=WPA-PSK # WPA-PSK WPA-EAP
+ proto=WPA # WPA RSN
+ pairwise=TKIP # TKIP CCMP
+ group=TKIP # TKIP CCMP
+ psk="12345678"
+}
+
+#network={
+# ssid="RTL867x-ADSL-family"
+# key_mgmt=NONE
+# auth_alg=OPEN
+#}
+
+#network={
+# ssid="RTL867x-ADSL-family"
+# key_mgmt=NONE
+# wep_key0="abcde"
+ #wep_key1=0102030405
+ #wep_key2="1234567890123"
+# wep_tx_keyidx=0
+# priority=5
+ #auth_alg=SHARED
+#}