├── Kconfig ├── dkms.conf ├── LICENSE ├── edit-options.sh ├── save-log.sh ├── supported-device-IDs ├── 8821au.conf ├── remove-driver.sh ├── install-driver.sh ├── README.md └── Makefile /Kconfig: -------------------------------------------------------------------------------- 1 | config RTL8821AU 2 | tristate "Realtek 8821A USB WiFi" 3 | depends on USB 4 | help 5 | Help message of RTL8821AU 6 | 7 | -------------------------------------------------------------------------------- /dkms.conf: -------------------------------------------------------------------------------- 1 | PACKAGE_NAME="rtl8821au" 2 | PACKAGE_VERSION="5.12.5.2" 3 | MAKE[0]="'make' -j$(nproc) KVER=${kernelver} KSRC=/lib/modules/${kernelver}/build" 4 | CLEAN="'make' clean" 5 | BUILT_MODULE_NAME[0]="8821au" 6 | DEST_MODULE_LOCATION[0]="/kernel/drivers/net/wireless" 7 | AUTOINSTALL="yes" 8 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright(c) 2007 - 2022 Realtek Corporation. 4 | * 5 | * This program is free software; you can redistribute it and/or modify it 6 | * under the terms of version 2 of the GNU General Public License as 7 | * published by the Free Software Foundation. 8 | * 9 | * This program is distributed in the hope that it will be useful, but WITHOUT 10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12 | * more details. 13 | * 14 | *****************************************************************************/ 15 | -------------------------------------------------------------------------------- /edit-options.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | OPTIONS_FILE="8821au.conf" 4 | SCRIPT_NAME="edit-options.sh" 5 | # 6 | # Purpose: Make it easier to edit the driver options file. 7 | # 8 | # To make this file executable: 9 | # 10 | # $ chmod +x edit-options.sh 11 | # 12 | # To execute this file: 13 | # 14 | # $ sudo ./edit-options.sh 15 | # 16 | if [[ $EUID -ne 0 ]] 17 | then 18 | echo "You must run this script with superuser (root) privileges." 19 | echo "Try: \"sudo ./${SCRIPT_NAME}\"" 20 | exit 1 21 | fi 22 | 23 | nano /etc/modprobe.d/${OPTIONS_FILE} 24 | 25 | read -p "Do you want to apply the new options by rebooting now? [y/N] " -n 1 -r 26 | echo # move to a new line 27 | if [[ $REPLY =~ ^[Yy]$ ]] 28 | then 29 | reboot 30 | fi 31 | 32 | exit 0 33 | -------------------------------------------------------------------------------- /save-log.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | SCRIPT_NAME="save-log.sh" 4 | # 5 | # Purpose: Save a log file with RTW lines only. 6 | # 7 | # To make this file executable: 8 | # 9 | # $ chmod +x save-log.sh 10 | # 11 | # To execute this file: 12 | # 13 | # $ sudo ./edit-options.sh 14 | # 15 | if [[ $EUID -ne 0 ]]; then 16 | echo "You must run this script with superuser (root) privileges." 17 | echo "Try: \"sudo ./${SCRIPT_NAME}\"" 18 | exit 1 19 | fi 20 | 21 | # Deletes existing log 22 | rm -f -- rtw.log 23 | 24 | dmesg | cut -d"]" -f2- | grep "RTW" >> rtw.log 25 | RESULT=$? 26 | 27 | if [[ "$RESULT" != "0" ]]; then 28 | echo "An error occurred while running: ${SCRIPT_NAME}" 29 | echo "Did you set a log level > 0 ?" 30 | exit 1 31 | else 32 | echo "rtw.log saved successfully." 33 | exit 0 34 | fi 35 | -------------------------------------------------------------------------------- /supported-device-IDs: -------------------------------------------------------------------------------- 1 | USB Vendor and Device ID List for rtl8811au and rtl8821au chipset based USB WiFi Adapters 2 | 3 | To determine your Device ID: 4 | 5 | $ lsusb 6 | 7 | Example output: 8 | 9 | Bus 003 Device 011: ID 0bda:b811 Realtek Semiconductor Corp. 10 | 11 | ID VendorID:DeviceID = 0bda:b811 12 | 13 | We can search the list of driver supported IDs shown below. 14 | 15 | Realtek default IDs 16 | 17 | ID 0BDA:0811 18 | ID 0BDA:0821 19 | ID 0BDA:8822 20 | ID 0BDA:A811 21 | ID 0BDA:0820 22 | ID 0BDA:0823 23 | 24 | Seller specific IDs 25 | 26 | ID 7392:A811 27 | ID 7392:A812 28 | ID 7392:A813 29 | ID 7392:B611 30 | ID 04BB:0953 31 | ID 2001:3314 32 | ID 2001:3318 33 | ID 0E66:0023 34 | ID 056E:400E 35 | ID 056E:400F 36 | ID 0411:0242 37 | ID 2019:AB32 38 | ID 0846:9052 39 | ID 0411:029B 40 | ID 056E:4007 41 | ID 3823:6249 42 | ID 2357:011E 43 | ID 2357:0120 44 | ID 2357:011F 45 | ID 20f4:804b 46 | 47 | If your adapter matches one of the default or seller specific 48 | IDs then this is the driver to use. 49 | 50 | Info: location of file that contains the IDs: /os_dep/linux/usb_intf.c 51 | 52 | If you are sure that your adapter contains a rtl8811au or rtl8821au 53 | chipset and the ID is not shown above, please provide 54 | the follow information so that I can include your adapter in the 55 | driver source code so that the driver will work with your adapter: 56 | 57 | 1. VendorID:DeviceID 58 | 2. Link to device on internet 59 | -------------------------------------------------------------------------------- /8821au.conf: -------------------------------------------------------------------------------- 1 | # /etc/modprobe.d/8821au.conf 2 | # 3 | # Purpose: Allow easy access to specific driver options. 4 | # 5 | # Edit the following line to change, add or delete options: 6 | options 8821au rtw_drv_log_level=1 rtw_led_ctrl=1 rtw_vht_enable=1 rtw_power_mgnt=1 7 | # 8 | # Note: The above `options` line is a good default for managed mode. Below is 9 | # an example for AP mode. Modify as required after reading the documentation: 10 | #options 8821acu rtw_drv_log_level=1 rtw_led_ctrl=1 rtw_vht_enable=2 rtw_power_mgnt=1 rtw_dfs_region_domain=1 11 | # 12 | # After editing is complete, save this file (if using nano: Ctrl + x, y, Enter) 13 | # and reboot to activate the changes. 14 | # 15 | # Documentation: 16 | # 17 | # ----- 18 | # 19 | # Log options ( rtw_drv_log_level ) 20 | # 21 | # 0 = NONE (default) 22 | # 1 = ALWAYS 23 | # 2 = ERROR 24 | # 3 = WARNING 25 | # 4 = INFO 26 | # 5 = DEBUG 27 | # 6 = MAX 28 | # 29 | # Note: You can save a log file that only includes RTW log entries by running 30 | # the following in a terminal: 31 | # 32 | # sudo ./save-log.sh 33 | # 34 | # Note: The name of the log file will be ```rtw.log```. 35 | # 36 | # ----- 37 | # 38 | # LED options ( rtw_led_ctrl ) 39 | # 40 | # 0 = Always off 41 | # 1 = Normal blink (default) 42 | # 2 = Always on 43 | # 44 | # ----- 45 | # 46 | # VHT options ( rtw_vht_enable ) 47 | # 48 | # 0 = Disable 49 | # 1 = Enable (default) 50 | # 2 = Force auto enable (use only for 5 GHz AP mode) 51 | # 52 | # Notes: 53 | # - A non-default setting can degrade performance greatly in managed mode. 54 | # - Option 2 allows 80 MHz channel width for 5GHz AP mode, such as when 55 | # you are using hostapd. 56 | # 57 | # ----- 58 | # 59 | # Power options ( rtw_power_mgnt ) 60 | # 61 | # 0 = Disable power saving 62 | # 1 = Power saving on, minPS (default) 63 | # 2 = Power saving on, maxPS (not recommended for AP mode) 64 | # 65 | # ----- 66 | # 67 | # DFS Options ( rtw_dfs_region_domain ) 68 | # 69 | # 0 = NONE (default) 70 | # 1 = FCC 71 | # 2 = MKK 72 | # 3 = ETSI 73 | # 74 | # Notes: 75 | # - Activates DFS channels in AP mode. 76 | # - DFS FCC 80 MHz channels for hostapd: 52(58), 100(106), 116(122) and 132(138) 77 | # - For more information: https://en.wikipedia.org/wiki/List_of_WLAN_channels 78 | # 79 | # Note: An AP needs to listen on a DFS channel for a period of 60 seconds 80 | # before transmitting on the channel. If any radar pulses are detected, 81 | # the AP cannot use that channel and will have to try a different channel. 82 | # 83 | # ----- 84 | # 85 | # Country Code options ( rtw_country_code ) 86 | # 87 | # Note: Allows the Country Code to be set in cases where it is unable to 88 | # be obtained otherwise. 89 | # 90 | # URL: http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 91 | # 92 | # Example for the US: rtw_country_code=US 93 | # Example for Panama: rtw_country_code=PA 94 | # Example for Norway: rtw_country_code=NO 95 | # Example for Kuwait: rtw_country_code=KW 96 | # Example for Taiwan: rtw_country_code=TW 97 | # 98 | # ----- 99 | # 100 | # To see all options that are available: 101 | # 102 | # $ ls /sys/module/8821au/parameters/ 103 | # 104 | # ----- 105 | # 106 | # To see the values that are in use: 107 | # 108 | # $ grep [[:alnum:]] /sys/module/8821au/parameters/* 109 | # 110 | # ----- 111 | # 112 | # hostapd setup information for rtl8821au 113 | # Note: The best settings can vary but the following may be a good place to start. 114 | # 115 | # /etc/modprobe.d/8821au.conf 116 | # options 8821au rtw_drv_log_level=0 rtw_led_ctrl=0 rtw_vht_enable=2 rtw_power_mgnt=1 rtw_beamform_cap=0 rtw_dfs_region_domain=1 117 | # 118 | # Note: The best setting for `rtw_dfs_region_domain=` will depend on your location. 119 | # 120 | # /etc/hostapd/hostapd.conf 121 | # 122 | # hw ht capab: 0x962 123 | # ht_capab=[HT40+][HT40-][SHORT-GI-20][SHORT-GI-40][RX-STBC1][MAX-AMSDU-7935] 124 | # 125 | # hw vht capab: 0x3c00122 126 | # vht_capab=[MAX-MPDU-11454][SHORT-GI-80][RX-STBC-1][HTC-VHT][MAX-A-MPDU-LEN-EXP7] 127 | # 128 | # ----- 129 | 130 | 131 | 132 | 133 | 134 | -------------------------------------------------------------------------------- /remove-driver.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Purpose: Remove Realtek out-of-kernel USB WiFi adapter drivers. 4 | # 5 | # Supports dkms and non-dkms removals. 6 | 7 | # Copyright(c) 2022 Nick Morrow 8 | # 9 | # This program is free software; you can redistribute it and/or modify 10 | # it under the terms of version 2 of the GNU General Public License as 11 | # published by the Free Software Foundation. 12 | # 13 | # This program is distributed in the hope that it will be useful, but 14 | # WITHOUT ANY WARRANTY; without even the implied warranty of 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | # GNU General Public License for more details. 17 | 18 | SCRIPT_NAME="remove-driver.sh" 19 | SCRIPT_VERSION="20230101" 20 | MODULE_NAME="8821au" 21 | DRV_VERSION="5.12.5.2" 22 | 23 | KVER="$(uname -r)" 24 | KARCH="$(uname -m)" 25 | KSRC="/lib/modules/${KVER}/build" 26 | MODDESTDIR="/lib/modules/${KVER}/kernel/drivers/net/wireless/" 27 | 28 | DRV_NAME="rtl${MODULE_NAME}" 29 | DRV_DIR="$(pwd)" 30 | OPTIONS_FILE="${MODULE_NAME}.conf" 31 | 32 | # check to ensure sudo was used 33 | if [[ $EUID -ne 0 ]] 34 | then 35 | echo "You must run this script with superuser (root) privileges." 36 | echo "Try: \"sudo ./${SCRIPT_NAME}\"" 37 | exit 1 38 | fi 39 | 40 | # support for the NoPrompt option allows non-interactive use of this script 41 | NO_PROMPT=0 42 | 43 | # get the script options 44 | while [ $# -gt 0 ] 45 | do 46 | case $1 in 47 | NoPrompt) 48 | NO_PROMPT=1 ;; 49 | *h|*help|*) 50 | echo "Syntax $0 " 51 | echo " NoPrompt - noninteractive mode" 52 | echo " -h|--help - Show help" 53 | exit 1 54 | ;; 55 | esac 56 | shift 57 | done 58 | 59 | # displays script name and version 60 | echo "Script: ${SCRIPT_NAME} v${SCRIPT_VERSION}" 61 | 62 | # check for and remove non-dkms installations 63 | # standard naming 64 | if [[ -f "${MODDESTDIR}${MODULE_NAME}.ko" ]] 65 | then 66 | echo "Removing a non-dkms installation: ${MODDESTDIR}${MODULE_NAME}.ko" 67 | rm -f ${MODDESTDIR}${MODULE_NAME}.ko 68 | /sbin/depmod -a ${KVER} 69 | fi 70 | 71 | # check for and remove non-dkms installations 72 | # with rtl added to module name (PClinuxOS) 73 | if [[ -f "${MODDESTDIR}rtl${MODULE_NAME}.ko" ]] 74 | then 75 | echo "Removing a non-dkms installation: ${MODDESTDIR}rtl${MODULE_NAME}.ko" 76 | rm -f ${MODDESTDIR}rtl${MODULE_NAME}.ko 77 | /sbin/depmod -a ${KVER} 78 | fi 79 | 80 | # check for and remove non-dkms installations 81 | # with compressed module in a unique non-standard location (Armbian) 82 | # Example: /usr/lib/modules/5.15.80-rockchip64/kernel/drivers/net/wireless/rtl8821cu/8821cu.ko.xz 83 | # Dear Armbiam, this is a really bad idea. 84 | if [[ -f "/usr/lib/modules/${KVER}/kernel/drivers/net/wireless/${DRV_NAME}/${MODULE_NAME}.ko.xz" ]] 85 | then 86 | echo "Removing a non-dkms installation: /usr/lib/modules/${KVER}/kernel/drivers/net/wireless/${DRV_NAME}/${MODULE_NAME}.ko.xz" 87 | rm -f /usr/lib/modules/${KVER}/kernel/drivers/net/wireless/${DRV_NAME}/${MODULE_NAME}.ko.xz 88 | /sbin/depmod -a ${KVER} 89 | fi 90 | 91 | # information that helps with bug reports 92 | 93 | # display kernel version 94 | echo "Kernel: ${KVER}" 95 | 96 | # display architecture 97 | echo "Arch : ${KARCH}" 98 | 99 | # determine if dkms is installed and run the appropriate routines 100 | if command -v dkms >/dev/null 2>&1 101 | then 102 | echo "Removing a dkms installation." 103 | # 2>/dev/null suppresses the output of dkms 104 | dkms remove -m ${DRV_NAME} -v ${DRV_VERSION} --all 2>/dev/null 105 | RESULT=$? 106 | #echo "Result=${RESULT}" 107 | 108 | # RESULT will be 3 if there are no instances of module to remove 109 | # however we still need to remove various files or the install script 110 | # may complain. 111 | if [[ ("$RESULT" = "0")||("$RESULT" = "3") ]] 112 | then 113 | if [[ ("$RESULT" = "0") ]] 114 | then 115 | echo "${DRV_NAME}/${DRV_VERSION} has been removed" 116 | fi 117 | else 118 | echo "An error occurred. dkms remove error: ${RESULT}" 119 | echo "Please report this error." 120 | exit $RESULT 121 | fi 122 | fi 123 | 124 | echo "Removing ${OPTIONS_FILE} from /etc/modprobe.d" 125 | rm -f /etc/modprobe.d/${OPTIONS_FILE} 126 | echo "Removing source files from /usr/src/${DRV_NAME}-${DRV_VERSION}" 127 | rm -rf /usr/src/${DRV_NAME}-${DRV_VERSION} 128 | make clean >/dev/null 2>&1 129 | echo "The driver was removed successfully." 130 | echo "You may now delete the driver directory if desired." 131 | 132 | # if NoPrompt is not used, ask user some questions 133 | if [ $NO_PROMPT -ne 1 ] 134 | then 135 | read -p "Do you want to reboot now? (recommended) [y/N] " -n 1 -r 136 | echo 137 | if [[ $REPLY =~ ^[Yy]$ ]] 138 | then 139 | reboot 140 | fi 141 | fi 142 | 143 | exit 0 144 | -------------------------------------------------------------------------------- /install-driver.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Purpose: Install Realtek out-of-kernel USB WiFi adapter drivers. 4 | # 5 | # Supports dkms and non-dkms installations. 6 | 7 | # Copyright(c) 2022 Nick Morrow 8 | # 9 | # This program is free software; you can redistribute it and/or modify 10 | # it under the terms of version 2 of the GNU General Public License as 11 | # published by the Free Software Foundation. 12 | # 13 | # This program is distributed in the hope that it will be useful, but 14 | # WITHOUT ANY WARRANTY; without even the implied warranty of 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | # GNU General Public License for more details. 17 | 18 | SCRIPT_NAME="install-driver.sh" 19 | SCRIPT_VERSION="20230101" 20 | MODULE_NAME="8821au" 21 | DRV_VERSION="5.12.5.2" 22 | 23 | KVER="$(uname -r)" 24 | KARCH="$(uname -m)" 25 | KSRC="/lib/modules/${KVER}/build" 26 | MODDESTDIR="/lib/modules/${KVER}/kernel/drivers/net/wireless/" 27 | 28 | DRV_NAME="rtl${MODULE_NAME}" 29 | DRV_DIR="$(pwd)" 30 | OPTIONS_FILE="${MODULE_NAME}.conf" 31 | 32 | # check to ensure sudo was used 33 | if [[ $EUID -ne 0 ]] 34 | then 35 | echo "You must run this script with superuser (root) privileges." 36 | echo "Try: \"sudo ./${SCRIPT_NAME}\"" 37 | exit 1 38 | fi 39 | 40 | # ensure /usr/sbin is in the PATH so iw can be found 41 | if ! echo "$PATH" | grep -qw sbin; then 42 | export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 43 | fi 44 | 45 | # check to ensure gcc is installed 46 | if ! command -v gcc >/dev/null 2>&1 47 | then 48 | echo "A required package is not installed." 49 | echo "Please install the following package: gcc" 50 | echo "Once the package is installed, please run \"sudo ./${SCRIPT_NAME}\"" 51 | exit 1 52 | fi 53 | 54 | # check to ensure make is installed 55 | if ! command -v make >/dev/null 2>&1 56 | then 57 | echo "A required package is not installed." 58 | echo "Please install the following package: make" 59 | echo "Once the package is installed, please run \"sudo ./${SCRIPT_NAME}\"" 60 | exit 1 61 | fi 62 | 63 | # check to see if header files are installed 64 | if [ ! -d "/lib/modules/$(uname -r)/build" ]; then 65 | echo "Your kernel header files aren't properly installed." 66 | echo "Please consult your distro documentation." 67 | echo "Once the header files are installed, please run \"sudo ./${SCRIPT_NAME}\"" 68 | exit 1 69 | fi 70 | 71 | # check to ensure iw is installed 72 | if ! command -v iw >/dev/null 2>&1 73 | then 74 | echo "A required package is not installed." 75 | echo "Please install the following package: iw" 76 | echo "Once the package is installed, please run \"sudo ./${SCRIPT_NAME}\"" 77 | exit 1 78 | fi 79 | 80 | # check to ensure rfkill is installed 81 | if ! command -v rfkill >/dev/null 2>&1 82 | then 83 | echo "A required package is not installed." 84 | echo "Please install the following package: rfkill" 85 | echo "Once the package is installed, please run \"sudo ./${SCRIPT_NAME}\"" 86 | exit 1 87 | fi 88 | 89 | # check to ensure nano is installed 90 | if ! command -v nano >/dev/null 2>&1 91 | then 92 | echo "A required package is not installed." 93 | echo "Please install the following package: nano" 94 | echo "Once the package is installed, please run \"sudo ./${SCRIPT_NAME}\"" 95 | exit 1 96 | fi 97 | 98 | # support for the NoPrompt option allows non-interactive use of this script 99 | NO_PROMPT=0 100 | 101 | # get the script options 102 | while [ $# -gt 0 ] 103 | do 104 | case $1 in 105 | NoPrompt) 106 | NO_PROMPT=1 ;; 107 | *h|*help|*) 108 | echo "Syntax $0 " 109 | echo " NoPrompt - noninteractive mode" 110 | echo " -h|--help - Show help" 111 | exit 1 112 | ;; 113 | esac 114 | shift 115 | done 116 | 117 | # displays script name and version 118 | echo "Script: ${SCRIPT_NAME} v${SCRIPT_VERSION}" 119 | 120 | # check for and remove non-dkms installations 121 | # standard naming 122 | if [[ -f "${MODDESTDIR}${MODULE_NAME}.ko" ]] 123 | then 124 | echo "Removing a non-dkms installation: ${MODDESTDIR}${MODULE_NAME}.ko" 125 | rm -f ${MODDESTDIR}${MODULE_NAME}.ko 126 | /sbin/depmod -a ${KVER} 127 | fi 128 | 129 | # check for and remove non-dkms installations 130 | # with rtl added to module name (PClinuxOS) 131 | if [[ -f "${MODDESTDIR}rtl${MODULE_NAME}.ko" ]] 132 | then 133 | echo "Removing a non-dkms installation: ${MODDESTDIR}rtl${MODULE_NAME}.ko" 134 | rm -f ${MODDESTDIR}rtl${MODULE_NAME}.ko 135 | /sbin/depmod -a ${KVER} 136 | fi 137 | 138 | # check for and remove non-dkms installations 139 | # with compressed module in a unique non-standard location (Armbian) 140 | # Example: /usr/lib/modules/5.15.80-rockchip64/kernel/drivers/net/wireless/rtl8821cu/8821cu.ko.xz 141 | # Dear Armbiam, this is a really bad idea. 142 | if [[ -f "/usr/lib/modules/${KVER}/kernel/drivers/net/wireless/${DRV_NAME}/${MODULE_NAME}.ko.xz" ]] 143 | then 144 | echo "Removing a non-dkms installation: /usr/lib/modules/${KVER}/kernel/drivers/net/wireless/${DRV_NAME}/${MODULE_NAME}.ko.xz" 145 | rm -f /usr/lib/modules/${KVER}/kernel/drivers/net/wireless/${DRV_NAME}/${MODULE_NAME}.ko.xz 146 | /sbin/depmod -a ${KVER} 147 | fi 148 | 149 | # check for existing dkms installations of any version of this driver 150 | if command -v dkms >/dev/null 2>&1 151 | then 152 | if dkms status | grep -i ${DRV_NAME}; then 153 | echo "The above driver needs to be removed before the installation can be successfull." 154 | echo "Example: $ sudo dkms remove ${DRV_NAME}/X.X.X.X --all" 155 | echo "Please replace X.X.X.X by the driver version number shown above." 156 | echo "Once the driver is removed, please run \"sudo ./${SCRIPT_NAME}\"" 157 | exit 1 158 | fi 159 | fi 160 | 161 | # information that helps with bug reports 162 | 163 | # display kernel version 164 | echo "Kernel: ${KVER}" 165 | 166 | # display architecture 167 | echo "Arch : ${KARCH}" 168 | 169 | # display gcc version 170 | gcc_ver=$(gcc --version | grep -i gcc) 171 | echo "gcc : "${gcc_ver} 172 | 173 | # display ISO 3166-1 alpha-2 Country Code 174 | #a2_country_code=$(iw reg get | grep -i country) 175 | #echo "Country: "${a2_country_code} 176 | #if [[ $a2_country_code == *"00"* ]]; 177 | #then 178 | # echo "The Country Code may not be properly set." 179 | # echo "File alpha-2_Country_Codes is located in the driver directory." 180 | # echo "Please read and follow the directions in the file after installation." 181 | #fi 182 | 183 | # display secure mode status 184 | # run if mokutil is installed 185 | if command -v mokutil >/dev/null 2>&1 186 | then 187 | mokutil --sb-state 188 | fi 189 | 190 | # sets module parameters (driver options) and blacklisted modules 191 | echo "Installing ${OPTIONS_FILE} to /etc/modprobe.d" 192 | cp -f ${OPTIONS_FILE} /etc/modprobe.d 193 | 194 | # determine if dkms is installed and run the appropriate routines 195 | if ! command -v dkms >/dev/null 2>&1 196 | then 197 | echo "The non-dkms installation routines are in use." 198 | 199 | make clean >/dev/null 2>&1 200 | 201 | make -j$(nproc) 202 | RESULT=$? 203 | 204 | if [[ "$RESULT" != "0" ]] 205 | then 206 | echo "An error occurred: ${RESULT}" 207 | echo "Please report this error." 208 | echo "Please copy all screen output and paste it into the problem report." 209 | echo "You will need to run the following before reattempting installation." 210 | echo "$ sudo ./remove-driver.sh" 211 | exit $RESULT 212 | fi 213 | 214 | # As shown in Makefile 215 | # install: 216 | # install -p -m 644 $(MODULE_NAME).ko $(MODDESTDIR) 217 | # /sbin/depmod -a ${KVER} 218 | make install 219 | RESULT=$? 220 | 221 | if [[ "$RESULT" = "0" ]] 222 | then 223 | make clean >/dev/null 2>&1 224 | echo "The driver was installed successfully." 225 | else 226 | echo "An error occurred: ${RESULT}" 227 | echo "Please report this error." 228 | echo "Please copy all screen output and paste it into the problem report." 229 | echo "You will need to run the following before reattempting installation." 230 | echo "$ sudo ./remove-driver.sh" 231 | exit $RESULT 232 | fi 233 | else 234 | echo "The dkms installation routines are in use." 235 | 236 | # the dkms add command requires source in /usr/src/${DRV_NAME}-${DRV_VERSION} 237 | echo "Copying source files to /usr/src/${DRV_NAME}-${DRV_VERSION}" 238 | cp -rf "${DRV_DIR}" /usr/src/${DRV_NAME}-${DRV_VERSION} 239 | 240 | dkms add -m ${DRV_NAME} -v ${DRV_VERSION} 241 | RESULT=$? 242 | 243 | # RESULT will be 3 if the DKMS tree already contains the same module/version 244 | # combo. You cannot add the same module/version combo more than once. 245 | if [[ "$RESULT" != "0" ]] 246 | then 247 | if [[ "$RESULT" = "3" ]] 248 | then 249 | echo "This driver may already be installed." 250 | echo "Run the following and then reattempt installation." 251 | echo "$ sudo ./remove-driver.sh" 252 | exit $RESULT 253 | else 254 | echo "An error occurred. dkms add error: ${RESULT}" 255 | echo "Please report this error." 256 | echo "Please copy all screen output and paste it into the problem report." 257 | echo "Run the following before reattempting installation." 258 | echo "$ sudo ./remove-driver.sh" 259 | exit $RESULT 260 | fi 261 | else 262 | echo "The driver was added to dkms successfully." 263 | fi 264 | 265 | if command -v /usr/bin/time >/dev/null 2>&1 266 | then 267 | /usr/bin/time -f "Compile time: %U seconds" dkms build -m ${DRV_NAME} -v ${DRV_VERSION} 268 | else 269 | dkms build -m ${DRV_NAME} -v ${DRV_VERSION} 270 | fi 271 | RESULT=$? 272 | 273 | if [[ "$RESULT" != "0" ]] 274 | then 275 | echo "An error occurred. dkms build error: ${RESULT}" 276 | echo "Please report this error." 277 | echo "Please copy all screen output and paste it into the problem report." 278 | echo "Run the following before reattempting installation." 279 | echo "$ sudo ./remove-driver.sh" 280 | exit $RESULT 281 | else 282 | echo "The driver was built by dkms successfully." 283 | fi 284 | 285 | dkms install -m ${DRV_NAME} -v ${DRV_VERSION} 286 | RESULT=$? 287 | 288 | if [[ "$RESULT" != "0" ]] 289 | then 290 | echo "An error occurred. dkms install error: ${RESULT}" 291 | echo "Please report this error." 292 | echo "Please copy all screen output and paste it into the problem report." 293 | echo "Run the following before reattempting installation." 294 | echo "$ sudo ./remove-driver.sh" 295 | exit $RESULT 296 | else 297 | echo "The driver was installed by dkms successfully." 298 | fi 299 | fi 300 | 301 | # unblock wifi 302 | if command -v rfkill >/dev/null 2>&1 303 | then 304 | rfkill unblock wlan 305 | else 306 | echo "Unable to run $ rfkill unblock wlan" 307 | fi 308 | 309 | # if NoPrompt is not used, ask user some questions 310 | if [ $NO_PROMPT -ne 1 ] 311 | then 312 | read -p "Do you want to edit the driver options file now? [y/N] " -n 1 -r 313 | echo 314 | if [[ $REPLY =~ ^[Yy]$ ]] 315 | then 316 | nano /etc/modprobe.d/${OPTIONS_FILE} 317 | fi 318 | 319 | read -p "Do you want to reboot now? (recommended) [y/N] " -n 1 -r 320 | echo 321 | if [[ $REPLY =~ ^[Yy]$ ]] 322 | then 323 | reboot 324 | fi 325 | fi 326 | 327 | exit 0 328 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # TP-Link AC600 DRIVER FOR LINUX 2 | ## PLEASE NOTE THAT [ DOWNLOAD FILES FROM RELEASES ] . TO WOKR PERFECT 3 | 4 | 5 | 6 | 7 | ## 8821au ( 8821au.ko ) :rocket: 8 | 9 | ## Linux Driver for USB WiFi Adapters that are based on the RTL8811AU and RTL8821AU Chipsets 10 | ## Download stable Release for all files >! 11 | **Thanks to morrownr** 12 | - v5.12.5.2 (Realtek) (20210708) plus updates from the Linux community 13 | 14 | 15 | 16 | Note: Please read "supported-device-IDs" for information about how to 17 | confirm that this is the correct driver for your adapter. 18 | 19 | ### Features 20 | 21 | - IEEE 802.11 b/g/n/ac WiFi compliant 22 | - 802.1x, WEP, WPA TKIP and WPA2 AES/Mixed mode for PSK and TLS (Radius) 23 | - WPA3 (see FAQ) 24 | - IEEE 802.11b/g/n/ac Client mode 25 | * Supports wireless security for WEP, WPA TKIP and WPA2 AES PSK 26 | * Supports site survey scan and manual connect 27 | * Supports WPA/WPA2 TLS client 28 | - Power saving modes 29 | - Miracast 30 | - Wireshark compatible 31 | - Aircrack-ng compatible 32 | - Packet injection 33 | - hostapd compatible 34 | - AP mode DFS channel support 35 | - Supported interface modes 36 | * Managed 37 | * Monitor (see FAQ) 38 | * AP 39 | * P2P-client 40 | * P2P-GO 41 | - Log level control 42 | - LED control 43 | - Power saving control 44 | - VHT control (allows 80 MHz channel width in AP mode) 45 | - AP mode DFS channel control 46 | 47 | ### A FAQ is available at the end of this document. 48 | 49 | ### Additional documentation is the file `8821au.conf`. 50 | 51 | ### Compatible CPU Architectures 52 | 53 | - x86, i686 54 | - x86-64, amd64 55 | - armv7l, armv6l (arm) 56 | - aarch64 (arm64) 57 | 58 | ### Compatible Kernels 59 | 60 | - Kernels: 4.19 - 5.11 (Realtek) 61 | - Kernels: 5.12 - 6.2 (community support) 62 | 63 | ### Tested Compilers 64 | 65 | - gcc 9, 10, 11 and 12 66 | 67 | ### Tested Linux Distributions 68 | 69 | Note: The information in this section depends largely on user reports which can 70 | be provided via PR or message in Issues. 71 | 72 | - Arch Linux (kernels 5.4 and 5.11) 73 | 74 | - Armbian_22.11.1 (kernel 5.15) (Rock 4 SE (Rock 4b image with xfce)) 75 | 76 | - Debian 11 (kernels 5.10 and 5.15) 77 | 78 | - Fedora (kernel 5.11) 79 | 80 | - Kali Linux (kernel 5.10) 81 | 82 | - Manjaro 21.1 (kernel 5.13) 83 | 84 | - openSUSE Tumbleweed (rolling) (kernel 5.15) 85 | 86 | - Raspberry Pi OS (2022-09-22) (ARM 32 bit and 64 bit) (kernel 5.15) 87 | 88 | - Raspberry Pi Desktop (2022-07-01) (x86 32 bit) (kernel 5.10) 89 | 90 | - SkiffOS for Odroid XU4 (ARM 32 bit) (kernel 6.0.7) 91 | 92 | - Ubuntu 22.04 (kernel 5.15) and 22.10 (kernel 5.19) (kernel 6.2) 93 | 94 | - Void Linux (kernel 5.18) 95 | 96 | Note: Red Hat Enterprise Linux (RHEL) and distros based on RHEL are not 97 | supported due to the way kernel patches are handled. I will support 98 | knowledgable RHEL developers if they want to merge the required 99 | support and keep it current. 100 | 101 | Note: Android is supported in the driver according to Realtek. I will support 102 | knowledgable Android developers if they want to merge and keep current the 103 | required support (most likely just instructions about how to compile and maybe 104 | a modification or two to the Makefile). 105 | 106 | 107 | ### Download Locations for Tested Linux Distributions 108 | 109 | - [Arch Linux](https://www.archlinux.org) 110 | - [Armbian](https://www.armbian.com/) 111 | - [Debian](https://www.debian.org/) 112 | - [Fedora](https://getfedora.org) 113 | - [Kali Linux](https://www.kali.org/) 114 | - [Manjaro](https://manjaro.org) 115 | - [openSUSE](https://www.opensuse.org/) 116 | - [Raspberry Pi OS](https://www.raspberrypi.org) 117 | - [SkiffOS](https://github.com/skiffos/skiffos/) 118 | - [Ubuntu](https://www.ubuntu.com) 119 | - [Void Linux](https://voidlinux.org/) 120 | 121 | ### Tested Hardware 122 | 123 | - [ALFA AWUS036ACS](https://store.rokland.com/collections/wi-fi-usb-adapters/products/alfa-awus036acs-802-11ac-ac600-dual-band-wifi-usb-adapter-rp-sma) 124 | - EDUP EP-1607 125 | 126 | ### Compatible Devices 127 | 128 | * [ALFA AWUS036ACS](https://store.rokland.com/collections/wi-fi-usb-adapters/products/alfa-awus036acs-802-11ac-ac600-dual-band-wifi-usb-adapter-rp-sma) 129 | * Buffalo WI-U2-433DHP 130 | * Edimax EW-7811UTC 131 | * [Edimax EW-7811UAC](https://www.amazon.com/Edimax-EW-7811UAC-Extension-Reception-Transmission/dp/B00LGN8I40) 132 | * Edimax EW-7811UCB 133 | * ELECOM WDC-433DU2H 134 | * GMYLE - AC450 135 | * Netgear A6100 136 | * Netis WF2180 137 | * Planex GW-450S 138 | * EDUP EP-1607 139 | * Numerous adapters that are based on the supported chipsets. 140 | 141 | Note: If you are looking for information about what adapter to buy, 142 | click [here](https://github.com/morrownr/USB-WiFi) and look for Main Menu 143 | item 2 which will show information about and links to recommended adapters. 144 | 145 | 146 | ### Installation Information 147 | 148 | Warning: Installing multiple out-of-kernel drivers for the same hardware 149 | usually does not end well. If a previous attempt to install this driver failed 150 | or if you have previously installed another driver for chipsets supported by 151 | this driver, you MUST remove anything that the previous attempt 152 | installed BEFORE attempting to install this driver. This driver can be 153 | removed with the script called `./remove-driver.sh`. Information is 154 | available in the section called `Removal of the Driver.` You can get a 155 | good idea as to whether you need to remove a previously installed 156 | driver by running the following command: 157 | 158 | ``` 159 | sudo dkms status 160 | ``` 161 | 162 | Warning: If you decide to upgrade to a new version of kernel such as 163 | 5.15 to 5.19, you need to remove the driver you have installed and 164 | install the newest available before installing the new kernel. Use the 165 | following commands in the driver directory: 166 | 167 | ``` 168 | $ sudo ./remove-driver.sh 169 | $ git pull 170 | $ sudo ./install-driver.sh 171 | ``` 172 | 173 | Temporary internet access is required for installation. There are numerous ways 174 | to enable temporary internet access depending on your hardware and situation. 175 | [One method is to use tethering from a phone.](https://www.makeuseof.com/tag/how-to-tether-your-smartphone-in-linux). 176 | Another method is to keep a [WiFi adapter that uses an in-kernel driver](https://github.com/morrownr/USB-WiFi) in your toolkit. 177 | 178 | You will need to use the terminal interface. The quick way to open a terminal: 179 | Ctrl+Alt+T (hold down on the Ctrl and Alt keys then press the T key). 180 | 181 | An alternative terminal is to use SSH (Secure Shell) from the same or from 182 | another computer, in which case you will be in a suitable terminal after logging 183 | in, but this step requires that an SSH daemon/server has already been 184 | configured. (There are lots of SSH guides available, e.g., for the [Raspberry Pi](https://www.raspberrypi.com/documentation/computers/remote-access.html#setting-up-an-ssh-server) and for [Ubuntu](https://linuxconfig.org/ubuntu-20-04-ssh-server). Do not forget [to secure the SSH server](https://www.howtogeek.com/443156/the-best-ways-to-secure-your-ssh-server/).) 185 | 186 | You will need to have sufficient access rights to use `sudo` so that commands 187 | can be executed as the `root` user. (If the command `sudo echo Yes` returns 188 | "Yes", with or without having to enter your password, you do have sufficient 189 | access rights.) 190 | 191 | DKMS is used for the installation if available. DKMS is a system utility 192 | which will automatically recompile and reinstall this driver when a new 193 | kernel is installed. DKMS is provided by and maintained by Dell. 194 | 195 | It is recommended that you do not delete the driver directory after 196 | installation as the directory contains information and scripts that you 197 | may need in the future. 198 | 199 | Secure Boot: The installation script, `install-driver.sh`, will 200 | automatically support secure boot... if your distro supports the method 201 | dkms uses. I regularly test the installation script on systems with 202 | secure boot on. It works seemlessly on modern Ubuntu based distros as 203 | long as secure boot was set up properly during the installation of the 204 | operating system. Some distros, such as the Raspberry Pi OS, do not 205 | support secure boot because the hardware they support does not support 206 | secure boot making it unnecessary to attempt to support it. There are 207 | distros that may require additional steps to sign the driver for secure 208 | boot operation. Fedora is an example. In installation Step 3, note that 209 | `openssl` must be installed as Fedora does not install it by default. 210 | There will also be another step for Fedora after `install-driver.sh` 211 | script is completed. This will be explained in the instructions at the 212 | appropriate time. Overall, secure boot requires that 213 | `openssl` and `mokutil` be installed and that additional steps be 214 | performed if necessary. To test if secure boot is the problem: If you 215 | install this driver and, after a reboot, the driver is not working, you 216 | can go into the BIOS and temporarily turn secure boot off to see if 217 | secure boot is the problem. 218 | 219 | ### Installation Steps 220 | 221 | Note: The installation instructions are for the novice user. Experienced users are 222 | welcome to alter the installation to meet their needs. Support will be provided, 223 | on a best effort basis, based on the steps below. 224 | 225 | #### Step 1: Open a terminal (e.g. Ctrl+Alt+T) 226 | 227 | #### Step 2: Update and upgrade system packages (select the option for the distro you are using) 228 | 229 | Note: If your Linux distro does not fall into one of options listed 230 | below, you will need to research how to update and upgrade your system 231 | packages. 232 | 233 | - Option for Debian based distributions such as Ubuntu, Kali, Armbian and Raspberry Pi OS 234 | 235 | ``` 236 | sudo apt update && sudo apt upgrade 237 | ``` 238 | 239 | - Option for Arch based distributions such as Manjaro 240 | 241 | ``` 242 | sudo pacman -Syu 243 | ``` 244 | 245 | - Option for Fedora based distributions 246 | 247 | ``` 248 | sudo dnf upgrade 249 | ``` 250 | 251 | - Option for openSUSE based distributions 252 | 253 | ``` 254 | sudo zypper update 255 | ``` 256 | 257 | - Option for Void Linux 258 | 259 | ``` 260 | sudo xbps-install -Syu 261 | ``` 262 | 263 | Note: It is recommended that you reboot your system at this point. The 264 | rest of the installation will appreciate having a fully up to date 265 | system to work with. The installation can then be continued with Step 3. 266 | 267 | ``` 268 | sudo reboot 269 | ``` 270 | 271 | #### Step 3: Install the required packages (select the option for the OS you are using) 272 | 273 | Note: If your Linux distro does not fall into one of options listed 274 | below, you will need to research how to properly setup up the development 275 | environment for your system. 276 | 277 | - Option for Armbian (arm64) 278 | 279 | ``` 280 | sudo apt install -y build-essential 281 | ``` 282 | 283 | - Option for Raspberry Pi OS (arm/arm64) 284 | 285 | ``` 286 | sudo apt install -y raspberrypi-kernel-headers build-essential bc dkms git 287 | ``` 288 | 289 | - Option for Debian, Kali, and Raspberry Pi Desktop (x86) 290 | 291 | ``` 292 | sudo apt install -y linux-headers-$(uname -r) build-essential bc dkms git libelf-dev rfkill iw 293 | ``` 294 | 295 | - Option for Ubuntu (all official flavors) and the numerous Ubuntu based distros 296 | 297 | ``` 298 | sudo apt install -y build-essential dkms git iw 299 | ``` 300 | 301 | - Option for Fedora 302 | 303 | Note: Installing `openssl` is only necessary for secure boot support. 304 | 305 | ``` 306 | sudo dnf -y install git dkms kernel-devel openssl 307 | ``` 308 | 309 | - Option for openSUSE 310 | 311 | ``` 312 | sudo zypper install -t pattern devel_kernel dkms 313 | ``` 314 | 315 | - Option for Alpine 316 | 317 | ``` 318 | sudo apk add linux-lts-dev make gcc 319 | ``` 320 | 321 | - Option for Void Linux 322 | 323 | ``` 324 | sudo xbps-install linux-headers dkms git make 325 | ``` 326 | 327 | - Options for Arch and Manjaro (if using Manjaro for RasPi4B, see note) 328 | 329 | If using pacman 330 | 331 | ``` 332 | sudo pacman -S --noconfirm linux-headers dkms git bc 333 | ``` 334 | 335 | Note: The following is needed if using Manjaro for RasPi4B. 336 | 337 | ``` 338 | sudo pacman -S --noconfirm linux-rpi4-headers dkms git bc 339 | ``` 340 | 341 | Note: If you are asked to choose a provider, make sure to choose the one 342 | that corresponds to your version of the linux kernel (for example, 343 | "linux510-headers" for Linux kernel version 5.10). If you install the 344 | incorrect version, you'll have to uninstall it and install the correct 345 | version. 346 | 347 | If using other methods, please follow the instructions provided by those 348 | methods. 349 | 350 | #### Step 4: Create a directory to hold the downloaded driver 351 | 352 | ``` 353 | mkdir -p ~/src 354 | ``` 355 | 356 | #### Step 5: Move to the newly created directory 357 | 358 | ``` 359 | cd ~/src 360 | ``` 361 | 362 | #### Step 6: Download the driver 363 | 364 | ``` 365 | git clone https://github.com/morrownr/8821au-20210708.git 366 | ``` 367 | 368 | #### Step 7: Move to the newly created driver directory 369 | 370 | ``` 371 | cd ~/src/8821au-20210708 372 | ``` 373 | 374 | #### Step 8: Run the installation script ( install-driver.sh ) 375 | 376 | Note: For automated builds (non-interactive), use _NoPrompt_ as an option. 377 | 378 | ``` 379 | sudo ./install-driver.sh 380 | ``` 381 | 382 | Note: If you elect to skip the reboot at the end of the installation 383 | script, the driver may not load immediately and the driver options will 384 | not be applied. Rebooting is strongly recommended. 385 | 386 | Note: Fedora users that have secure boot turned on should run the following to 387 | enroll the key: 388 | 389 | $ sudo mokutil --import /var/lib/dkms/mok.pub 390 | 391 | Manual build instructions: The above script automates the installation 392 | process, however, if you want to or need to do a command line 393 | installation, use the following: 394 | 395 | ``` 396 | make clean 397 | make 398 | sudo make install 399 | sudo reboot 400 | ``` 401 | 402 | Note: If you use the manual build instructions, you will need to repeat 403 | the process each time a new kernel is installed in your distro. 404 | 405 | ----- 406 | 407 | ### Driver Options ( edit-options.sh ) 408 | 409 | A file called `8821au.conf` will be installed in `/etc/modprobe.d` by 410 | default if you use the `./install-driver.sh` script. 411 | 412 | Note: The installation script will prompt you to edit the options. 413 | 414 | Location: `/etc/modprobe.d/8821au.conf` 415 | 416 | This file will be read and applied to the driver on each system boot. 417 | 418 | To edit the driver options file, run the `edit-options.sh` script 419 | 420 | ``` 421 | sudo ./edit-options.sh 422 | ``` 423 | 424 | Note: Documentation for Driver Options is included in the file `8821au.conf`. 425 | 426 | ----- 427 | 428 | ### Upgrading the Driver 429 | 430 | Note: Linux development is continuous therefore work on this driver is continuous. 431 | 432 | Note: Upgrading the driver is advised in the following situations: 433 | 434 | - if a new or updated version of the driver needs to be installed 435 | - if a distro version upgrade is going to be installed (i.e. going from kernel 5.10 to kernel 5.15) 436 | 437 | #### Step 1: Move to the driver directory 438 | 439 | ``` 440 | cd ~/src/8821au-20210708 441 | ``` 442 | 443 | #### Step 2: Remove the currently installed driver 444 | 445 | ``` 446 | sudo ./remove-driver.sh 447 | ``` 448 | 449 | #### Step 3: Pull updated code from this repo 450 | 451 | ``` 452 | git pull 453 | ``` 454 | 455 | #### Step 4: Install the driver 456 | 457 | ``` 458 | sudo ./install-driver.sh 459 | ``` 460 | 461 | ----- 462 | ### Removal of the Driver ( remove-driver.sh ) 463 | 464 | Note: Removing the driver is advised in the following situations: 465 | 466 | - if driver installation fails 467 | - if the driver is no longer needed 468 | 469 | Note: The following removes everything that has been installed, with the 470 | exception of the packages installed in Step 3 and the driver directory. 471 | The driver directory can be deleted after running this script. 472 | 473 | #### Step 1: Open a terminal (e.g. Ctrl+Alt+T) 474 | 475 | #### Step 2: Move to the driver directory 476 | 477 | ``` 478 | cd ~/src/8821au-20210708 479 | ``` 480 | 481 | #### Step 3: Run the removal script 482 | 483 | Note: For automated builds (non-interactive), use _NoPrompt_ as an option. 484 | 485 | ``` 486 | sudo ./remove-driver.sh 487 | ``` 488 | 489 | ----- 490 | 491 | ### Recommended WiFi Router/ Access Point Settings 492 | 493 | Note: These are general recommendations, some of which may not apply to your specific situation. 494 | 495 | - Security: Set WPA2-AES or WPA2/WPA3 mixed or WPA3. Do not set WPA2 mixed mode or WPA or TKIP. 496 | 497 | - Channel width for 2.4 GHz: Set 20 MHz fixed width. Do not use 40 MHz or 20/40 automatic. 498 | 499 | - Channels for 2.4 GHz: Set channel 1 or 6 or 11 depending on the congestion at your location. Do not set automatic channel selection. As time passes, if you notice poor performance, recheck congestion and set channel appropriately. The environment around you can and does change over time. 500 | 501 | - Mode for 2.4 GHz: For best performance, set "N only" if you no longer use B or G capable devices. 502 | 503 | - Network names: Do not set the 2.4 GHz Network and the 5 GHz Network to the same name. Note: Unfortunately many routers come with both networks set to the same name. You need to be able to control which network that is in use so changing the name of one of the networks is recommended. Since many IoT devices use the 2.4 GHz network, it may be better to change the name of the 5 GHz network. 504 | 505 | - Channels for 5 GHz: Not all devices are capable of using DFS channels (I'm looking at you Roku.) It may be necessary to set a fixed channel in the range of 36 to 48 or 149 to 165 in order for all of your devices to work on 5 GHz. (For US, other countries may vary.) 506 | 507 | - Best location for the WiFi router/access point: Near center of apartment or house, at least a couple of feet away from walls, in an elevated location. You may have to test to see what the best location is in your environment. 508 | 509 | - Check congestion: There are apps available for smart phones that allow you to get an idea of the congestion levels on WiFi channels. The apps generally go by the name of ```WiFi Analyzer``` or something similar. 510 | 511 | After making and saving changes, reboot the router. 512 | 513 | ----- 514 | 515 | ### Recommendations regarding USB 516 | 517 | - Moving your USB WiFi adapter to a different USB port has been known to fix a variety of problems. 518 | 519 | - If connecting your USB WiFi adapter to a desktop computer, use the USB ports on the rear of the computer. Why? The ports on the rear are directly connected to the motherboard which will reduce problems with interference and disconnection. 520 | 521 | - If your USB WiFi adapter is USB 3 capable and you want it to operate in USB3 mode, plug it into a USB 3 port. 522 | 523 | - Avoid USB 3.1 Gen 2 ports if possible as almost all currently available adapters have been tested with USB 3.1 Gen 1 (aka USB 3) and not with USB 3.1 Gen 2. 524 | 525 | - If you use an extension cable and your adapter is USB 3 capable, the cable needs to be USB 3 capable (if not, you will be limited to USB 2 speeds). 526 | 527 | - Extention cables can be problematic. A way to check if the extension cable is the problem is to plug the adapter temporarily into a USB port on the computer. 528 | 529 | - Some USB WiFi adapters require considerable electrical current and push the capabilities of the power available via USB port. One example is adapters that use the Realtek 8814au chipset. Using a powered multiport USB extension can be a good idea in cases like this. 530 | 531 | ----- 532 | 533 | ### How to disable onboard WiFi on Raspberry Pi 3B, 3B+, 3A+, 4B and Zero W 534 | 535 | Add the following line to /boot/config.txt 536 | 537 | ``` 538 | dtoverlay=disable-wifi 539 | ``` 540 | 541 | ----- 542 | 543 | ### How to forget a saved WiFi network on a Raspberry Pi 544 | 545 | #### Step 1: Edit wpa_supplicant.conf 546 | 547 | ``` 548 | sudo nano /etc/wpa_supplicant/wpa_supplicant.conf 549 | ``` 550 | 551 | #### Step 2: Delete the relevant WiFi network block (including the 'network=' and opening/closing braces. 552 | 553 | #### Step 3: Press ctrl-x followed by 'y' and enter to save the file. 554 | 555 | #### Step 4: Reboot 556 | 557 | ----- 558 | 559 | ### FAQ: 560 | 561 | Question: Is WPA3 supported? 562 | 563 | Answer: WPA3-SAE is supported. It works well on most modern Linux distros but 564 | not all. Generally the reason for WPA3 not working on Linux distros is that the 565 | distro has an old version of wpa_supplicant or Network Manager. Your options 566 | are to upgrade to a more modern distro (distros released after mid 2022) or 567 | compile and install new versions of wpa_supplicant and/or Network Manager. 568 | 569 | ----- 570 | 571 | Question: I bought two usb wifi adapters based on this chipset and am planning 572 | to use both in the same computer. How do I set that up? 573 | 574 | Answer: Realtek drivers do not support more than one adapter with the 575 | same chipset in the same computer. You can have multiple Realtek based 576 | adapters in the same computer as long as the adapters are based on 577 | different chipsets. 578 | 579 | ----- 580 | 581 | Question: Why do you recommend Mediatek based adapters when you maintain 582 | this repo for a Realtek driver? 583 | 584 | Answer: Many new and existing Linux users already have adapters based on 585 | Realtek chipsets. This repo is for Linux users to support their existing 586 | adapters but my STRONG recommendation is for Linux users to seek out USB 587 | WiFi solutions based on Mediatek chipsets: 588 | 589 | https://github.com/morrownr/USB-WiFi 590 | 591 | ----- 592 | 593 | Question: Will you put volunteers to work? 594 | 595 | Answer: Yes. Post a message in `Issues` or `Discussions` if interested. 596 | 597 | ----- 598 | 599 | Question: I am having problems with my adapter and I use Virtualbox? 600 | 601 | Answer: This [article](https://null-byte.wonderhowto.com/forum/wifi-hacking-attach-usb-wireless-adapter-with-virtual-box-0324433/) may help. 602 | 603 | ----- 604 | 605 | Question: The driver installation script completed successfully and the 606 | driver is installed but does not seem to be working. What is wrong? 607 | 608 | Answer: Turn secure boot off to see if that allows the driver to work. 609 | This driver is primarily tested on Debian based distros such as Ubuntu, 610 | Raspberry Pi OS and Kali. In an attempt to make this driver work well on 611 | many Linux distros, other distros, including the Arch based Manjaro is 612 | used for testing. Currently I do not have installations of Fedora or 613 | OpenSUSE available for testing and reply on user reports of success or 614 | failure. I have two test systems with secure boot on so as to test secure 615 | boot. I have not seen any secure boot problems with Debian based systems 616 | and I don't remember problems with Manjaro. 617 | 618 | dkms is used in the installation script. It helps with a lot of issues that 619 | will come up if a simple manual installation is used. dkms has the 620 | capability to handle the needs of secure boot. dkms was written by and is 621 | maintained by Dell. Dell has been offering some Ubuntu pre-loaded systems 622 | for years so their devs likely test on Ubuntu. I suspect Fedora and 623 | OpenSUSE may be handing their secure boot support differently than Debian 624 | based systems and this is leading to problems. This and the other repos 625 | I have are VERY heavily used and I am sure there are plenty of non-Debian 626 | users that use this driver. Are they all turning off secure boot and not 627 | reporting the problem? I don't know. What I do know is that reports like 628 | this are rare. 629 | 630 | For the driver to compile and install correctly but not be available 631 | tells me there is likely a key issue. Here is an interesting link 632 | regarding Debian systems and secure boot: 633 | 634 | https://wiki.debian.org/SecureBoot 635 | 636 | That document contains a lot of information that can help an investigation 637 | into what the real problem is and I invite you and other Fedora, OpemSUSE 638 | and users of other distros that show this problem to investigate and 639 | present what you know to the devs of your distro via their problem 640 | reporting system. Turning off secure boot is NOT a fix. A real fix needs 641 | to happen. 642 | 643 | ----- 644 | 645 | Question: Can you provide additional information about monitor mode? 646 | 647 | Answer: I have a repo that is setup to help with monitor mode: 648 | 649 | https://github.com/morrownr/Monitor_Mode 650 | 651 | Work to improve monitor mode is ongoing with this driver. Your 652 | reports of success or failure are needed. If you have yet to buy an 653 | adapter to use with monitor mode, there are adapters available that are 654 | known to work very well with monitor mode. My recommendation for those 655 | looking to buy an adapter for monitor mode is to buy adapters based on 656 | the following chipsets: mt7921au, mt7612u, mt7610u, rtl8812au and 657 | rtl8811au. My specific recommendations for adapters in order of 658 | preference are: 659 | 660 | ALFA AWUS036ACHM - long range - in-kernel driver 661 | 662 | ALFA AWUS036ACM - in-kernel driver 663 | 664 | ALFA AWUS036ACH - long range - [driver](https://github.com/morrownr/8812au-20210629) 665 | 666 | ALFA AWUS036ACS - [driver](https://github.com/morrownr/8821au-20210708) 667 | 668 | To ask questions, go to [USB-WiFi](https://github.com/morrownr/USB-WiFi) 669 | and post in `Discussions` or `Issues`. 670 | 671 | ----- 672 | 673 | #### [Go to Main Menu](https://github.com/morrownr/USB-WiFi) 674 | 675 | ----- 676 | 677 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | EXTRA_CFLAGS += $(USER_EXTRA_CFLAGS) 2 | EXTRA_CFLAGS += -O1 3 | #EXTRA_CFLAGS += -O3 4 | #EXTRA_CFLAGS += -Wall 5 | #EXTRA_CFLAGS += -Wextra 6 | #EXTRA_CFLAGS += -Werror 7 | #EXTRA_CFLAGS += -pedantic 8 | #EXTRA_CFLAGS += -Wshadow -Wpointer-arith -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes 9 | 10 | EXTRA_CFLAGS += -Wno-unused-variable 11 | #EXTRA_CFLAGS += -Wno-unused-value 12 | #EXTRA_CFLAGS += -Wno-unused-label 13 | #EXTRA_CFLAGS += -Wno-unused-parameter 14 | #EXTRA_CFLAGS += -Wno-unused-function 15 | #EXTRA_CFLAGS += -Wno-unused 16 | #EXTRA_CFLAGS += -Wno-uninitialized 17 | #EXTRA_CFLAGS += -Wno-vla 18 | #EXTRA_CFLAGS += -Wno-misleading-indentation 19 | EXTRA_CFLAGS += -Wno-implicit-fallthrough 20 | #EXTRA_CFLAGS += -Wno-return-type 21 | 22 | # Activates Concurrent Mode if uncommented 23 | #EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 24 | 25 | # LED Control 26 | EXTRA_CFLAGS += -DCONFIG_LED_CONTROL 27 | EXTRA_CFLAGS += -DCONFIG_SW_LED -DCONFIG_RTW_SW_LED 28 | EXTRA_CFLAGS += -DCONFIG_LED_ENABLE 29 | 30 | # gcc-12 31 | EXTRA_CFLAGS += -Wno-address 32 | EXTRA_CFLAGS += -Wframe-larger-than=1648 33 | 34 | GCC_VER_49 := $(shell echo `$(CC) -dumpversion | cut -f1-2 -d.` \>= 4.9 | bc ) 35 | ifeq ($(GCC_VER_49),1) 36 | EXTRA_CFLAGS += -Wno-date-time # Fix compile error && warning on gcc 4.9 and later 37 | endif 38 | 39 | EXTRA_CFLAGS += -I$(src)/include 40 | 41 | EXTRA_LDFLAGS += --strip-debug 42 | 43 | CONFIG_AUTOCFG_CP = n 44 | 45 | ########################## WIFI IC ############################ 46 | CONFIG_MULTIDRV = n 47 | CONFIG_RTL8188E = n 48 | CONFIG_RTL8812A = n 49 | CONFIG_RTL8821A = y 50 | CONFIG_RTL8192E = n 51 | CONFIG_RTL8723B = n 52 | CONFIG_RTL8814A = n 53 | CONFIG_RTL8723C = n 54 | CONFIG_RTL8188F = n 55 | CONFIG_RTL8188GTV = n 56 | CONFIG_RTL8822B = n 57 | CONFIG_RTL8723D = n 58 | CONFIG_RTL8821C = n 59 | CONFIG_RTL8710B = n 60 | CONFIG_RTL8192F = n 61 | CONFIG_RTL8822C = n 62 | CONFIG_RTL8814B = n 63 | CONFIG_RTL8723F = n 64 | ######################### Interface ########################### 65 | CONFIG_USB_HCI = y 66 | CONFIG_PCI_HCI = n 67 | CONFIG_SDIO_HCI = n 68 | CONFIG_GSPI_HCI = n 69 | ######################### Features ############################ 70 | CONFIG_AP_MODE = y 71 | CONFIG_P2P = y 72 | CONFIG_MP_INCLUDED = n 73 | CONFIG_POWER_SAVING = y 74 | CONFIG_IPS_MODE = default 75 | CONFIG_LPS_MODE = default 76 | CONFIG_USB_AUTOSUSPEND = n 77 | CONFIG_HW_PWRP_DETECTION = n 78 | CONFIG_BT_COEXIST = y 79 | CONFIG_WAPI_SUPPORT = n 80 | CONFIG_EFUSE_CONFIG_FILE = n 81 | CONFIG_EXT_CLK = n 82 | CONFIG_TRAFFIC_PROTECT = n 83 | CONFIG_LOAD_PHY_PARA_FROM_FILE = y 84 | CONFIG_TXPWR_BY_RATE = y 85 | CONFIG_TXPWR_BY_RATE_EN = n 86 | CONFIG_TXPWR_LIMIT = y 87 | CONFIG_TXPWR_LIMIT_EN = n 88 | CONFIG_RTW_CHPLAN = 0xFF 89 | CONFIG_RTW_ADAPTIVITY_EN = disable 90 | CONFIG_RTW_ADAPTIVITY_MODE = normal 91 | CONFIG_SIGNAL_SCALE_MAPPING = n 92 | # necessary for WPA3 support 93 | CONFIG_80211W = y 94 | CONFIG_REDUCE_TX_CPU_LOADING = n 95 | CONFIG_BR_EXT = y 96 | CONFIG_TDLS = y 97 | CONFIG_WIFI_MONITOR = y 98 | CONFIG_MCC_MODE = n 99 | CONFIG_APPEND_VENDOR_IE_ENABLE = n 100 | CONFIG_RTW_NAPI = y 101 | CONFIG_RTW_GRO = y 102 | CONFIG_RTW_NETIF_SG = y 103 | CONFIG_RTW_IPCAM_APPLICATION = n 104 | CONFIG_RTW_REPEATER_SON = n 105 | CONFIG_ICMP_VOQ = n 106 | CONFIG_IP_R_MONITOR = n #arp VOQ and high rate 107 | # user priority mapping rule : tos, dscp 108 | CONFIG_RTW_UP_MAPPING_RULE = tos 109 | CONFIG_RTW_MBO = n 110 | ########################## Android ########################### 111 | # CONFIG_RTW_ANDROID - 0: no Android, 4/5/6/7/8/9/10/11 : Android version 112 | CONFIG_RTW_ANDROID = 0 113 | 114 | ifeq ($(shell test $(CONFIG_RTW_ANDROID) -gt 0; echo $$?), 0) 115 | EXTRA_CFLAGS += -DCONFIG_RTW_ANDROID=$(CONFIG_RTW_ANDROID) 116 | endif 117 | 118 | ########################## Debug ########################### 119 | CONFIG_RTW_DEBUG = y 120 | # default log level is _DRV_INFO_ = 4, 121 | # please refer to "How_to_set_driver_debug_log_level.doc" to set the available level. 122 | CONFIG_RTW_LOG_LEVEL = 0 123 | 124 | # enable /proc/net/rtlxxxx/ debug interfaces 125 | CONFIG_PROC_DEBUG = y 126 | 127 | ######################## Wake On Lan ########################## 128 | CONFIG_WOWLAN = n 129 | #bit3: ARP enable, bit2: deauth, bit1: unicast, bit0: magic pkt. 130 | CONFIG_WAKEUP_TYPE = 0xf 131 | CONFIG_WOW_LPS_MODE = default 132 | #bit0: disBBRF off, #bit1: Wireless remote controller (WRC) 133 | CONFIG_SUSPEND_TYPE = 0 134 | CONFIG_WOW_STA_MIX = n 135 | CONFIG_GPIO_WAKEUP = n 136 | # Please contact with RTK support team first. After getting the agreement from RTK support team, 137 | # you are just able to modify the CONFIG_WAKEUP_GPIO_IDX with customized requirement. 138 | CONFIG_WAKEUP_GPIO_IDX = default 139 | CONFIG_HIGH_ACTIVE_DEV2HST = n 140 | ######### only for USB ######### 141 | CONFIG_ONE_PIN_GPIO = n 142 | CONFIG_HIGH_ACTIVE_HST2DEV = n 143 | CONFIG_PNO_SUPPORT = n 144 | CONFIG_PNO_SET_DEBUG = n 145 | CONFIG_AP_WOWLAN = n 146 | ######### Notify SDIO Host Keep Power During Syspend ########## 147 | CONFIG_RTW_SDIO_PM_KEEP_POWER = y 148 | ###################### MP HW TX MODE FOR VHT ####################### 149 | CONFIG_MP_VHT_HW_TX_MODE = n 150 | ###################### ROAMING ##################################### 151 | CONFIG_LAYER2_ROAMING = y 152 | #bit0: ROAM_ON_EXPIRED, #bit1: ROAM_ON_RESUME, #bit2: ROAM_ACTIVE 153 | CONFIG_ROAMING_FLAG = 0x3 154 | ###################### Platform Related ####################### 155 | CONFIG_PLATFORM_AUTODETECT = y 156 | CONFIG_PLATFORM_I386_PC = n 157 | CONFIG_PLATFORM_ANDROID_X86 = n 158 | CONFIG_PLATFORM_ANDROID_INTEL_X86 = n 159 | CONFIG_PLATFORM_JB_X86 = n 160 | CONFIG_PLATFORM_ARM_S3C2K4 = n 161 | CONFIG_PLATFORM_ARM_PXA2XX = n 162 | CONFIG_PLATFORM_ARM_S3C6K4 = n 163 | CONFIG_PLATFORM_MIPS_RMI = n 164 | CONFIG_PLATFORM_RTD2880B = n 165 | CONFIG_PLATFORM_MIPS_AR9132 = n 166 | CONFIG_PLATFORM_RTK_DMP = n 167 | CONFIG_PLATFORM_MIPS_PLM = n 168 | CONFIG_PLATFORM_MSTAR389 = n 169 | CONFIG_PLATFORM_MT53XX = n 170 | CONFIG_PLATFORM_ARM_MX51_241H = n 171 | CONFIG_PLATFORM_FS_MX61 = n 172 | CONFIG_PLATFORM_ACTIONS_ATJ227X = n 173 | CONFIG_PLATFORM_TEGRA3_CARDHU = n 174 | CONFIG_PLATFORM_TEGRA4_DALMORE = n 175 | CONFIG_PLATFORM_ARM_TCC8900 = n 176 | CONFIG_PLATFORM_ARM_TCC8920 = n 177 | CONFIG_PLATFORM_ARM_TCC8920_JB42 = n 178 | CONFIG_PLATFORM_ARM_TCC8930_JB42 = n 179 | CONFIG_PLATFORM_ARM_RK2818 = n 180 | CONFIG_PLATFORM_ARM_RK3066 = n 181 | CONFIG_PLATFORM_ARM_RK3188 = n 182 | CONFIG_PLATFORM_ARM_URBETTER = n 183 | CONFIG_PLATFORM_ARM_TI_PANDA = n 184 | CONFIG_PLATFORM_MIPS_JZ4760 = n 185 | CONFIG_PLATFORM_DMP_PHILIPS = n 186 | CONFIG_PLATFORM_MSTAR_TITANIA12 = n 187 | CONFIG_PLATFORM_MSTAR = n 188 | CONFIG_PLATFORM_SZEBOOK = n 189 | CONFIG_PLATFORM_ARM_SUNxI = n 190 | CONFIG_PLATFORM_ARM_SUN6I = n 191 | CONFIG_PLATFORM_ARM_SUN7I = n 192 | CONFIG_PLATFORM_ARM_SUN8I_W3P1 = n 193 | CONFIG_PLATFORM_ARM_SUN8I_W5P1 = n 194 | CONFIG_PLATFORM_ACTIONS_ATM702X = n 195 | CONFIG_PLATFORM_ACTIONS_ATV5201 = n 196 | CONFIG_PLATFORM_ACTIONS_ATM705X = n 197 | CONFIG_PLATFORM_ARM_SUN50IW1P1 = n 198 | CONFIG_PLATFORM_ARM_RTD299X = n 199 | CONFIG_PLATFORM_ARM_LGE = n 200 | CONFIG_PLATFORM_ARM_SPREADTRUM_6820 = n 201 | CONFIG_PLATFORM_ARM_SPREADTRUM_8810 = n 202 | CONFIG_PLATFORM_ARM_WMT = n 203 | CONFIG_PLATFORM_TI_DM365 = n 204 | CONFIG_PLATFORM_MOZART = n 205 | CONFIG_PLATFORM_RTK119X = n 206 | CONFIG_PLATFORM_RTK119X_AM = n 207 | CONFIG_PLATFORM_RTK129X = n 208 | CONFIG_PLATFORM_RTK1319 = n 209 | CONFIG_PLATFORM_RTK390X = n 210 | CONFIG_PLATFORM_NOVATEK_NT72668 = n 211 | CONFIG_PLATFORM_HISILICON = n 212 | CONFIG_PLATFORM_HISILICON_HI3798 = n 213 | CONFIG_PLATFORM_NV_TK1 = n 214 | CONFIG_PLATFORM_NV_TK1_UBUNTU = n 215 | CONFIG_PLATFORM_RTL8197D = n 216 | CONFIG_PLATFORM_AML_S905 = n 217 | CONFIG_PLATFORM_ZTE_ZX296716 = n 218 | ########### CUSTOMER ################################ 219 | CONFIG_CUSTOMER_HUAWEI_GENERAL = n 220 | 221 | CONFIG_DRVEXT_MODULE = n 222 | 223 | export TopDIR ?= $(shell pwd) 224 | 225 | ########### COMMON ################################# 226 | ifeq ($(CONFIG_GSPI_HCI), y) 227 | HCI_NAME = gspi 228 | endif 229 | 230 | ifeq ($(CONFIG_SDIO_HCI), y) 231 | HCI_NAME = sdio 232 | endif 233 | 234 | ifeq ($(CONFIG_USB_HCI), y) 235 | HCI_NAME = usb 236 | endif 237 | 238 | ifeq ($(CONFIG_PCI_HCI), y) 239 | HCI_NAME = pci 240 | endif 241 | 242 | 243 | _OS_INTFS_FILES := os_dep/osdep_service.o \ 244 | os_dep/linux/os_intfs.o \ 245 | os_dep/linux/$(HCI_NAME)_intf.o \ 246 | os_dep/linux/$(HCI_NAME)_ops_linux.o \ 247 | os_dep/linux/ioctl_linux.o \ 248 | os_dep/linux/xmit_linux.o \ 249 | os_dep/linux/mlme_linux.o \ 250 | os_dep/linux/recv_linux.o \ 251 | os_dep/linux/ioctl_cfg80211.o \ 252 | os_dep/linux/rtw_cfgvendor.o \ 253 | os_dep/linux/wifi_regd.o \ 254 | os_dep/linux/rtw_android.o \ 255 | os_dep/linux/rtw_proc.o \ 256 | os_dep/linux/nlrtw.o \ 257 | os_dep/linux/rtw_rhashtable.o 258 | 259 | ifeq ($(CONFIG_MP_INCLUDED), y) 260 | _OS_INTFS_FILES += os_dep/linux/ioctl_mp.o 261 | endif 262 | 263 | ifeq ($(CONFIG_SDIO_HCI), y) 264 | _OS_INTFS_FILES += os_dep/linux/custom_gpio_linux.o 265 | _OS_INTFS_FILES += os_dep/linux/$(HCI_NAME)_ops_linux.o 266 | endif 267 | 268 | ifeq ($(CONFIG_GSPI_HCI), y) 269 | _OS_INTFS_FILES += os_dep/linux/custom_gpio_linux.o 270 | _OS_INTFS_FILES += os_dep/linux/$(HCI_NAME)_ops_linux.o 271 | endif 272 | 273 | 274 | _HAL_INTFS_FILES := hal/hal_intf.o \ 275 | hal/hal_com.o \ 276 | hal/hal_com_phycfg.o \ 277 | hal/hal_phy.o \ 278 | hal/hal_dm.o \ 279 | hal/hal_dm_acs.o \ 280 | hal/hal_btcoex_wifionly.o \ 281 | hal/hal_btcoex.o \ 282 | hal/hal_mp.o \ 283 | hal/hal_mcc.o \ 284 | hal/hal_hci/hal_$(HCI_NAME).o \ 285 | hal/led/hal_led.o \ 286 | hal/led/hal_$(HCI_NAME)_led.o 287 | 288 | 289 | EXTRA_CFLAGS += -I$(src)/platform 290 | _PLATFORM_FILES := platform/platform_ops.o 291 | 292 | EXTRA_CFLAGS += -I$(src)/hal/btc 293 | 294 | ########### HAL_RTL8188E ################################# 295 | ifeq ($(CONFIG_RTL8188E), y) 296 | 297 | RTL871X = rtl8188e 298 | ifeq ($(CONFIG_SDIO_HCI), y) 299 | MODULE_NAME = 8189es 300 | endif 301 | 302 | ifeq ($(CONFIG_GSPI_HCI), y) 303 | MODULE_NAME = 8189es 304 | endif 305 | 306 | ifeq ($(CONFIG_USB_HCI), y) 307 | MODULE_NAME = 8188eu 308 | endif 309 | 310 | ifeq ($(CONFIG_PCI_HCI), y) 311 | MODULE_NAME = 8188ee 312 | endif 313 | EXTRA_CFLAGS += -DCONFIG_RTL8188E 314 | 315 | _HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \ 316 | hal/$(RTL871X)/Hal8188EPwrSeq.o \ 317 | hal/$(RTL871X)/$(RTL871X)_xmit.o \ 318 | hal/$(RTL871X)/$(RTL871X)_sreset.o 319 | 320 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \ 321 | hal/$(RTL871X)/$(RTL871X)_phycfg.o \ 322 | hal/$(RTL871X)/$(RTL871X)_rf6052.o \ 323 | hal/$(RTL871X)/$(RTL871X)_dm.o \ 324 | hal/$(RTL871X)/$(RTL871X)_rxdesc.o \ 325 | hal/$(RTL871X)/$(RTL871X)_cmd.o \ 326 | hal/$(RTL871X)/hal8188e_s_fw.o \ 327 | hal/$(RTL871X)/hal8188e_t_fw.o \ 328 | hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \ 329 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_led.o \ 330 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_xmit.o \ 331 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_recv.o 332 | 333 | ifeq ($(CONFIG_SDIO_HCI), y) 334 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o 335 | else 336 | ifeq ($(CONFIG_GSPI_HCI), y) 337 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o 338 | else 339 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o 340 | endif 341 | endif 342 | 343 | ifeq ($(CONFIG_USB_HCI), y) 344 | _HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8188E_USB.o 345 | endif 346 | ifeq ($(CONFIG_PCI_HCI), y) 347 | _HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8188E_PCIE.o 348 | endif 349 | ifeq ($(CONFIG_SDIO_HCI), y) 350 | _HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8188E_SDIO.o 351 | endif 352 | 353 | endif 354 | 355 | ########### HAL_RTL8192E ################################# 356 | ifeq ($(CONFIG_RTL8192E), y) 357 | 358 | RTL871X = rtl8192e 359 | ifeq ($(CONFIG_SDIO_HCI), y) 360 | MODULE_NAME = 8192es 361 | endif 362 | 363 | ifeq ($(CONFIG_USB_HCI), y) 364 | MODULE_NAME = 8192eu 365 | endif 366 | 367 | ifeq ($(CONFIG_PCI_HCI), y) 368 | MODULE_NAME = 8192ee 369 | endif 370 | EXTRA_CFLAGS += -DCONFIG_RTL8192E 371 | _HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \ 372 | hal/$(RTL871X)/Hal8192EPwrSeq.o \ 373 | hal/$(RTL871X)/$(RTL871X)_xmit.o \ 374 | hal/$(RTL871X)/$(RTL871X)_sreset.o 375 | 376 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \ 377 | hal/$(RTL871X)/$(RTL871X)_phycfg.o \ 378 | hal/$(RTL871X)/$(RTL871X)_rf6052.o \ 379 | hal/$(RTL871X)/$(RTL871X)_dm.o \ 380 | hal/$(RTL871X)/$(RTL871X)_rxdesc.o \ 381 | hal/$(RTL871X)/$(RTL871X)_cmd.o \ 382 | hal/$(RTL871X)/hal8192e_fw.o \ 383 | hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \ 384 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_led.o \ 385 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_xmit.o \ 386 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_recv.o 387 | 388 | ifeq ($(CONFIG_SDIO_HCI), y) 389 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o 390 | else 391 | ifeq ($(CONFIG_GSPI_HCI), y) 392 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o 393 | else 394 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o 395 | endif 396 | endif 397 | 398 | ifeq ($(CONFIG_USB_HCI), y) 399 | _HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8192E_USB.o 400 | endif 401 | ifeq ($(CONFIG_PCI_HCI), y) 402 | _HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8192E_PCIE.o 403 | endif 404 | ifeq ($(CONFIG_SDIO_HCI), y) 405 | _HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8192E_SDIO.o 406 | endif 407 | 408 | ifeq ($(CONFIG_BT_COEXIST), y) 409 | _BTC_FILES += hal/btc/halbtc8192e1ant.o \ 410 | hal/btc/halbtc8192e2ant.o 411 | endif 412 | 413 | endif 414 | 415 | ########### HAL_RTL8812A_RTL8821A ################################# 416 | 417 | ifneq ($(CONFIG_RTL8812A)_$(CONFIG_RTL8821A), n_n) 418 | 419 | RTL871X = rtl8812a 420 | ifeq ($(CONFIG_USB_HCI), y) 421 | MODULE_NAME = 8812au 422 | endif 423 | ifeq ($(CONFIG_PCI_HCI), y) 424 | MODULE_NAME = 8812ae 425 | endif 426 | ifeq ($(CONFIG_SDIO_HCI), y) 427 | MODULE_NAME = 8812as 428 | endif 429 | 430 | _HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \ 431 | hal/$(RTL871X)/Hal8812PwrSeq.o \ 432 | hal/$(RTL871X)/Hal8821APwrSeq.o \ 433 | hal/$(RTL871X)/$(RTL871X)_xmit.o \ 434 | hal/$(RTL871X)/$(RTL871X)_sreset.o 435 | 436 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \ 437 | hal/$(RTL871X)/$(RTL871X)_phycfg.o \ 438 | hal/$(RTL871X)/$(RTL871X)_rf6052.o \ 439 | hal/$(RTL871X)/$(RTL871X)_dm.o \ 440 | hal/$(RTL871X)/$(RTL871X)_rxdesc.o \ 441 | hal/$(RTL871X)/$(RTL871X)_cmd.o \ 442 | hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \ 443 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_led.o \ 444 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_xmit.o \ 445 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_recv.o 446 | 447 | ifeq ($(CONFIG_SDIO_HCI), y) 448 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o 449 | else 450 | ifeq ($(CONFIG_GSPI_HCI), y) 451 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o 452 | else 453 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o 454 | endif 455 | endif 456 | 457 | ifeq ($(CONFIG_RTL8812A), y) 458 | ifeq ($(CONFIG_USB_HCI), y) 459 | _HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8812A_USB.o 460 | endif 461 | ifeq ($(CONFIG_PCI_HCI), y) 462 | _HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8812A_PCIE.o 463 | endif 464 | endif 465 | ifeq ($(CONFIG_RTL8821A), y) 466 | ifeq ($(CONFIG_USB_HCI), y) 467 | _HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8821A_USB.o 468 | endif 469 | ifeq ($(CONFIG_PCI_HCI), y) 470 | _HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8821A_PCIE.o 471 | endif 472 | ifeq ($(CONFIG_SDIO_HCI), y) 473 | _HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8821A_SDIO.o 474 | endif 475 | endif 476 | 477 | ifeq ($(CONFIG_RTL8812A), y) 478 | EXTRA_CFLAGS += -DCONFIG_RTL8812A 479 | _HAL_INTFS_FILES += hal/rtl8812a/hal8812a_fw.o 480 | endif 481 | 482 | ifeq ($(CONFIG_RTL8821A), y) 483 | 484 | ifeq ($(CONFIG_RTL8812A), n) 485 | 486 | RTL871X = rtl8821a 487 | ifeq ($(CONFIG_USB_HCI), y) 488 | ifeq ($(CONFIG_BT_COEXIST), y) 489 | MODULE_NAME := 8821au 490 | else 491 | MODULE_NAME := 8811au 492 | endif 493 | endif 494 | ifeq ($(CONFIG_PCI_HCI), y) 495 | MODULE_NAME := 8821ae 496 | endif 497 | ifeq ($(CONFIG_SDIO_HCI), y) 498 | MODULE_NAME := 8821as 499 | endif 500 | 501 | endif 502 | 503 | EXTRA_CFLAGS += -DCONFIG_RTL8821A 504 | 505 | _HAL_INTFS_FILES += hal/rtl8812a/hal8821a_fw.o 506 | 507 | endif 508 | 509 | ifeq ($(CONFIG_BT_COEXIST), y) 510 | ifeq ($(CONFIG_RTL8812A), y) 511 | _BTC_FILES += hal/btc/halbtc8812a1ant.o \ 512 | hal/btc/halbtc8812a2ant.o 513 | endif 514 | ifeq ($(CONFIG_RTL8821A), y) 515 | _BTC_FILES += hal/btc/halbtc8821a1ant.o \ 516 | hal/btc/halbtc8821a2ant.o 517 | endif 518 | endif 519 | 520 | endif 521 | 522 | ########### HAL_RTL8723B ################################# 523 | ifeq ($(CONFIG_RTL8723B), y) 524 | 525 | RTL871X = rtl8723b 526 | ifeq ($(CONFIG_USB_HCI), y) 527 | MODULE_NAME = 8723bu 528 | endif 529 | ifeq ($(CONFIG_PCI_HCI), y) 530 | MODULE_NAME = 8723be 531 | endif 532 | ifeq ($(CONFIG_SDIO_HCI), y) 533 | MODULE_NAME = 8723bs 534 | endif 535 | 536 | EXTRA_CFLAGS += -DCONFIG_RTL8723B 537 | 538 | _HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \ 539 | hal/$(RTL871X)/Hal8723BPwrSeq.o \ 540 | hal/$(RTL871X)/$(RTL871X)_sreset.o 541 | 542 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \ 543 | hal/$(RTL871X)/$(RTL871X)_phycfg.o \ 544 | hal/$(RTL871X)/$(RTL871X)_rf6052.o \ 545 | hal/$(RTL871X)/$(RTL871X)_dm.o \ 546 | hal/$(RTL871X)/$(RTL871X)_rxdesc.o \ 547 | hal/$(RTL871X)/$(RTL871X)_cmd.o \ 548 | hal/$(RTL871X)/hal8723b_fw.o 549 | 550 | _HAL_INTFS_FILES += \ 551 | hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \ 552 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_led.o \ 553 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_xmit.o \ 554 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_recv.o 555 | 556 | ifeq ($(CONFIG_PCI_HCI), y) 557 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o 558 | else 559 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o 560 | endif 561 | 562 | ifeq ($(CONFIG_USB_HCI), y) 563 | _HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8723B_USB.o 564 | endif 565 | ifeq ($(CONFIG_PCI_HCI), y) 566 | _HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8723B_PCIE.o 567 | endif 568 | ifeq ($(CONFIG_SDIO_HCI), y) 569 | _HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8723B_SDIO.o 570 | endif 571 | 572 | _BTC_FILES += hal/btc/halbtc8723bwifionly.o 573 | ifeq ($(CONFIG_BT_COEXIST), y) 574 | _BTC_FILES += hal/btc/halbtc8723b1ant.o \ 575 | hal/btc/halbtc8723b2ant.o 576 | endif 577 | 578 | endif 579 | 580 | ########### HAL_RTL8814A ################################# 581 | ifeq ($(CONFIG_RTL8814A), y) 582 | ## ADD NEW VHT MP HW TX MODE ## 583 | #EXTRA_CFLAGS += -DCONFIG_MP_VHT_HW_TX_MODE 584 | #CONFIG_MP_VHT_HW_TX_MODE = y 585 | ########################################## 586 | RTL871X = rtl8814a 587 | ifeq ($(CONFIG_USB_HCI), y) 588 | MODULE_NAME = 8814au 589 | endif 590 | ifeq ($(CONFIG_PCI_HCI), y) 591 | MODULE_NAME = 8814ae 592 | endif 593 | ifeq ($(CONFIG_SDIO_HCI), y) 594 | MODULE_NAME = 8814as 595 | endif 596 | 597 | EXTRA_CFLAGS += -DCONFIG_RTL8814A 598 | 599 | _HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \ 600 | hal/$(RTL871X)/Hal8814PwrSeq.o \ 601 | hal/$(RTL871X)/$(RTL871X)_xmit.o \ 602 | hal/$(RTL871X)/$(RTL871X)_sreset.o 603 | 604 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \ 605 | hal/$(RTL871X)/$(RTL871X)_phycfg.o \ 606 | hal/$(RTL871X)/$(RTL871X)_rf6052.o \ 607 | hal/$(RTL871X)/$(RTL871X)_dm.o \ 608 | hal/$(RTL871X)/$(RTL871X)_rxdesc.o \ 609 | hal/$(RTL871X)/$(RTL871X)_cmd.o \ 610 | hal/$(RTL871X)/hal8814a_fw.o 611 | 612 | 613 | _HAL_INTFS_FILES += \ 614 | hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \ 615 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_led.o \ 616 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_xmit.o \ 617 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_recv.o 618 | 619 | ifeq ($(CONFIG_SDIO_HCI), y) 620 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o 621 | else 622 | ifeq ($(CONFIG_GSPI_HCI), y) 623 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o 624 | else 625 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o 626 | endif 627 | endif 628 | 629 | ifeq ($(CONFIG_USB_HCI), y) 630 | _HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8814A_USB.o 631 | endif 632 | ifeq ($(CONFIG_PCI_HCI), y) 633 | _HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8814A_PCIE.o 634 | endif 635 | 636 | ifeq ($(CONFIG_BT_COEXIST), y) 637 | _BTC_FILES += hal/btc/halbtc8814a2ant.o 638 | endif 639 | endif 640 | 641 | ########### HAL_RTL8723C ################################# 642 | ifeq ($(CONFIG_RTL8723C), y) 643 | 644 | RTL871X = rtl8703b 645 | ifeq ($(CONFIG_USB_HCI), y) 646 | MODULE_NAME = 8723cu 647 | MODULE_SUB_NAME = 8703bu 648 | endif 649 | ifeq ($(CONFIG_PCI_HCI), y) 650 | MODULE_NAME = 8723ce 651 | MODULE_SUB_NAME = 8703be 652 | endif 653 | ifeq ($(CONFIG_SDIO_HCI), y) 654 | MODULE_NAME = 8723cs 655 | MODULE_SUB_NAME = 8703bs 656 | endif 657 | 658 | EXTRA_CFLAGS += -DCONFIG_RTL8703B 659 | 660 | _HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \ 661 | hal/$(RTL871X)/Hal8703BPwrSeq.o \ 662 | hal/$(RTL871X)/$(RTL871X)_sreset.o 663 | 664 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \ 665 | hal/$(RTL871X)/$(RTL871X)_phycfg.o \ 666 | hal/$(RTL871X)/$(RTL871X)_rf6052.o \ 667 | hal/$(RTL871X)/$(RTL871X)_dm.o \ 668 | hal/$(RTL871X)/$(RTL871X)_rxdesc.o \ 669 | hal/$(RTL871X)/$(RTL871X)_cmd.o \ 670 | hal/$(RTL871X)/hal8703b_fw.o 671 | 672 | _HAL_INTFS_FILES += \ 673 | hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \ 674 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_SUB_NAME)_led.o \ 675 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_SUB_NAME)_xmit.o \ 676 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_SUB_NAME)_recv.o 677 | 678 | ifeq ($(CONFIG_PCI_HCI), y) 679 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o 680 | else 681 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o 682 | endif 683 | 684 | ifeq ($(CONFIG_USB_HCI), y) 685 | _HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8703B_USB.o 686 | endif 687 | ifeq ($(CONFIG_PCI_HCI), y) 688 | _HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8703B_PCIE.o 689 | endif 690 | 691 | ifeq ($(CONFIG_BT_COEXIST), y) 692 | _BTC_FILES += hal/btc/halbtc8703b1ant.o 693 | endif 694 | 695 | endif 696 | 697 | ########### HAL_RTL8723D ################################# 698 | ifeq ($(CONFIG_RTL8723D), y) 699 | 700 | RTL871X = rtl8723d 701 | ifeq ($(CONFIG_USB_HCI), y) 702 | MODULE_NAME = 8723du 703 | MODULE_SUB_NAME = 8723du 704 | endif 705 | ifeq ($(CONFIG_PCI_HCI), y) 706 | MODULE_NAME = 8723de 707 | MODULE_SUB_NAME = 8723de 708 | endif 709 | ifeq ($(CONFIG_SDIO_HCI), y) 710 | MODULE_NAME = 8723ds 711 | MODULE_SUB_NAME = 8723ds 712 | endif 713 | 714 | EXTRA_CFLAGS += -DCONFIG_RTL8723D 715 | 716 | _HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \ 717 | hal/$(RTL871X)/Hal8723DPwrSeq.o \ 718 | hal/$(RTL871X)/$(RTL871X)_sreset.o 719 | 720 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \ 721 | hal/$(RTL871X)/$(RTL871X)_phycfg.o \ 722 | hal/$(RTL871X)/$(RTL871X)_rf6052.o \ 723 | hal/$(RTL871X)/$(RTL871X)_dm.o \ 724 | hal/$(RTL871X)/$(RTL871X)_rxdesc.o \ 725 | hal/$(RTL871X)/$(RTL871X)_cmd.o \ 726 | hal/$(RTL871X)/hal8723d_fw.o \ 727 | hal/$(RTL871X)/$(RTL871X)_lps_poff.o 728 | 729 | 730 | _HAL_INTFS_FILES += \ 731 | hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \ 732 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_SUB_NAME)_led.o \ 733 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_SUB_NAME)_xmit.o \ 734 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_SUB_NAME)_recv.o 735 | 736 | ifeq ($(CONFIG_PCI_HCI), y) 737 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o 738 | else 739 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o 740 | endif 741 | 742 | ifeq ($(CONFIG_USB_HCI), y) 743 | _HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8723D_USB.o 744 | endif 745 | ifeq ($(CONFIG_PCI_HCI), y) 746 | _HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8723D_PCIE.o 747 | endif 748 | 749 | ifeq ($(CONFIG_BT_COEXIST), y) 750 | _BTC_FILES += hal/btc/halbtc8723d1ant.o \ 751 | hal/btc/halbtc8723d2ant.o 752 | endif 753 | 754 | endif 755 | 756 | ########### HAL_RTL8723F ################################# 757 | ifeq ($(CONFIG_RTL8723F), y) 758 | RTL871X := rtl8723f 759 | ifeq ($(CONFIG_USB_HCI), y) 760 | MODULE_NAME = 8723fu 761 | endif 762 | ifeq ($(CONFIG_SDIO_HCI), y) 763 | MODULE_NAME = 8723fs 764 | endif 765 | 766 | endif 767 | 768 | ########### HAL_RTL8188F ################################# 769 | ifeq ($(CONFIG_RTL8188F), y) 770 | 771 | RTL871X = rtl8188f 772 | ifeq ($(CONFIG_USB_HCI), y) 773 | MODULE_NAME = 8188fu 774 | endif 775 | ifeq ($(CONFIG_PCI_HCI), y) 776 | MODULE_NAME = 8188fe 777 | endif 778 | ifeq ($(CONFIG_SDIO_HCI), y) 779 | MODULE_NAME = 8189fs 780 | endif 781 | 782 | EXTRA_CFLAGS += -DCONFIG_RTL8188F 783 | 784 | _HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \ 785 | hal/$(RTL871X)/Hal8188FPwrSeq.o \ 786 | hal/$(RTL871X)/$(RTL871X)_sreset.o 787 | 788 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \ 789 | hal/$(RTL871X)/$(RTL871X)_phycfg.o \ 790 | hal/$(RTL871X)/$(RTL871X)_rf6052.o \ 791 | hal/$(RTL871X)/$(RTL871X)_dm.o \ 792 | hal/$(RTL871X)/$(RTL871X)_rxdesc.o \ 793 | hal/$(RTL871X)/$(RTL871X)_cmd.o \ 794 | hal/$(RTL871X)/hal8188f_fw.o 795 | 796 | _HAL_INTFS_FILES += \ 797 | hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \ 798 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_led.o \ 799 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_xmit.o \ 800 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_recv.o 801 | 802 | ifeq ($(CONFIG_PCI_HCI), y) 803 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o 804 | else 805 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o 806 | endif 807 | 808 | ifeq ($(CONFIG_USB_HCI), y) 809 | _HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8188F_USB.o 810 | endif 811 | 812 | ifeq ($(CONFIG_SDIO_HCI), y) 813 | _HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8188F_SDIO.o 814 | endif 815 | 816 | endif 817 | 818 | ########### HAL_RTL8188GTV ################################# 819 | ifeq ($(CONFIG_RTL8188GTV), y) 820 | 821 | RTL871X = rtl8188gtv 822 | ifeq ($(CONFIG_USB_HCI), y) 823 | MODULE_NAME = 8188gtvu 824 | endif 825 | ifeq ($(CONFIG_SDIO_HCI), y) 826 | MODULE_NAME = 8189gtvs 827 | endif 828 | 829 | EXTRA_CFLAGS += -DCONFIG_RTL8188GTV 830 | 831 | _HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \ 832 | hal/$(RTL871X)/Hal8188GTVPwrSeq.o \ 833 | hal/$(RTL871X)/$(RTL871X)_sreset.o 834 | 835 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \ 836 | hal/$(RTL871X)/$(RTL871X)_phycfg.o \ 837 | hal/$(RTL871X)/$(RTL871X)_rf6052.o \ 838 | hal/$(RTL871X)/$(RTL871X)_dm.o \ 839 | hal/$(RTL871X)/$(RTL871X)_rxdesc.o \ 840 | hal/$(RTL871X)/$(RTL871X)_cmd.o \ 841 | hal/$(RTL871X)/hal8188gtv_fw.o 842 | 843 | _HAL_INTFS_FILES += \ 844 | hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \ 845 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_led.o \ 846 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_xmit.o \ 847 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_recv.o 848 | 849 | ifeq ($(CONFIG_PCI_HCI), y) 850 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o 851 | else 852 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o 853 | endif 854 | 855 | ifeq ($(CONFIG_USB_HCI), y) 856 | _HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8188GTV_USB.o 857 | endif 858 | 859 | ifeq ($(CONFIG_SDIO_HCI), y) 860 | _HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8188GTV_SDIO.o 861 | endif 862 | 863 | endif 864 | 865 | ########### HAL_RTL8822B ################################# 866 | ifeq ($(CONFIG_RTL8822B), y) 867 | RTL871X := rtl8822b 868 | ifeq ($(CONFIG_USB_HCI), y) 869 | ifeq ($(CONFIG_BT_COEXIST), n) 870 | MODULE_NAME = 8812bu 871 | else 872 | MODULE_NAME = 88x2bu 873 | endif 874 | endif 875 | ifeq ($(CONFIG_PCI_HCI), y) 876 | MODULE_NAME = 88x2be 877 | endif 878 | ifeq ($(CONFIG_SDIO_HCI), y) 879 | MODULE_NAME = 88x2bs 880 | endif 881 | 882 | endif 883 | ########### HAL_RTL8821C ################################# 884 | ifeq ($(CONFIG_RTL8821C), y) 885 | RTL871X := rtl8821c 886 | ifeq ($(CONFIG_USB_HCI), y) 887 | MODULE_NAME = 8821cu 888 | endif 889 | ifeq ($(CONFIG_PCI_HCI), y) 890 | MODULE_NAME = 8821ce 891 | endif 892 | ifeq ($(CONFIG_SDIO_HCI), y) 893 | MODULE_NAME = 8821cs 894 | endif 895 | 896 | endif 897 | 898 | ########### HAL_RTL8710B ################################# 899 | ifeq ($(CONFIG_RTL8710B), y) 900 | 901 | RTL871X = rtl8710b 902 | ifeq ($(CONFIG_USB_HCI), y) 903 | MODULE_NAME = 8710bu 904 | MODULE_SUB_NAME = 8710bu 905 | endif 906 | 907 | EXTRA_CFLAGS += -DCONFIG_RTL8710B 908 | 909 | _HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \ 910 | hal/$(RTL871X)/Hal8710BPwrSeq.o \ 911 | hal/$(RTL871X)/$(RTL871X)_sreset.o 912 | 913 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \ 914 | hal/$(RTL871X)/$(RTL871X)_phycfg.o \ 915 | hal/$(RTL871X)/$(RTL871X)_rf6052.o \ 916 | hal/$(RTL871X)/$(RTL871X)_dm.o \ 917 | hal/$(RTL871X)/$(RTL871X)_rxdesc.o \ 918 | hal/$(RTL871X)/$(RTL871X)_cmd.o \ 919 | hal/$(RTL871X)/hal8710b_fw.o \ 920 | hal/$(RTL871X)/$(RTL871X)_lps_poff.o 921 | 922 | 923 | _HAL_INTFS_FILES += \ 924 | hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \ 925 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_SUB_NAME)_led.o \ 926 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_SUB_NAME)_xmit.o \ 927 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_SUB_NAME)_recv.o 928 | 929 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o 930 | 931 | ifeq ($(CONFIG_USB_HCI), y) 932 | _HAL_INTFS_FILES +=hal/efuse/$(RTL871X)/HalEfuseMask8710B_USB.o 933 | endif 934 | 935 | endif 936 | 937 | ########### HAL_RTL8192F ################################# 938 | ifeq ($(CONFIG_RTL8192F), y) 939 | 940 | RTL871X = rtl8192f 941 | ifeq ($(CONFIG_USB_HCI), y) 942 | MODULE_NAME = 8192fu 943 | MODULE_SUB_NAME = 8192fu 944 | endif 945 | ifeq ($(CONFIG_PCI_HCI), y) 946 | MODULE_NAME = 8192fe 947 | MODULE_SUB_NAME = 8192fe 948 | endif 949 | ifeq ($(CONFIG_SDIO_HCI), y) 950 | MODULE_NAME = 8192fs 951 | MODULE_SUB_NAME = 8192fs 952 | endif 953 | 954 | EXTRA_CFLAGS += -DCONFIG_RTL8192F 955 | 956 | _HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \ 957 | hal/$(RTL871X)/Hal8192FPwrSeq.o \ 958 | hal/$(RTL871X)/$(RTL871X)_sreset.o 959 | 960 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \ 961 | hal/$(RTL871X)/$(RTL871X)_phycfg.o \ 962 | hal/$(RTL871X)/$(RTL871X)_rf6052.o \ 963 | hal/$(RTL871X)/$(RTL871X)_dm.o \ 964 | hal/$(RTL871X)/$(RTL871X)_rxdesc.o \ 965 | hal/$(RTL871X)/$(RTL871X)_cmd.o \ 966 | hal/$(RTL871X)/hal8192f_fw.o \ 967 | hal/$(RTL871X)/$(RTL871X)_lps_poff.o 968 | 969 | 970 | _HAL_INTFS_FILES += \ 971 | hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \ 972 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_SUB_NAME)_led.o \ 973 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_SUB_NAME)_xmit.o \ 974 | hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_SUB_NAME)_recv.o 975 | 976 | ifeq ($(CONFIG_PCI_HCI), y) 977 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o 978 | else 979 | _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o 980 | endif 981 | 982 | ifeq ($(CONFIG_SDIO_HCI), y) 983 | _HAL_INTFS_FILES += hal/efuse/$(RTL871X)/HalEfuseMask8192F_SDIO.o 984 | endif 985 | 986 | ifeq ($(CONFIG_USB_HCI), y) 987 | _HAL_INTFS_FILES += hal/efuse/$(RTL871X)/HalEfuseMask8192F_USB.o 988 | endif 989 | 990 | ifeq ($(CONFIG_PCI_HCI), y) 991 | _HAL_INTFS_FILES += hal/efuse/$(RTL871X)/HalEfuseMask8192F_PCIE.o 992 | endif 993 | 994 | ifeq ($(CONFIG_BT_COEXIST), y) 995 | _BTC_FILES += hal/btc/halbtccommon.o \ 996 | hal/btc/halbtc8192f.o 997 | endif 998 | 999 | endif 1000 | 1001 | ########### HAL_RTL8822C ################################# 1002 | ifeq ($(CONFIG_RTL8822C), y) 1003 | RTL871X := rtl8822c 1004 | ifeq ($(CONFIG_USB_HCI), y) 1005 | ifeq ($(CONFIG_BT_COEXIST), n) 1006 | MODULE_NAME = 8812cu 1007 | else 1008 | MODULE_NAME = 88x2cu 1009 | endif 1010 | endif 1011 | ifeq ($(CONFIG_PCI_HCI), y) 1012 | MODULE_NAME = 88x2ce 1013 | endif 1014 | ifeq ($(CONFIG_SDIO_HCI), y) 1015 | MODULE_NAME = 88x2cs 1016 | endif 1017 | 1018 | endif 1019 | 1020 | ########### HAL_RTL8814B ################################# 1021 | ifeq ($(CONFIG_RTL8814B), y) 1022 | RTL871X := rtl8814b 1023 | ifeq ($(CONFIG_USB_HCI), y) 1024 | MODULE_NAME = 8814bu 1025 | endif 1026 | ifeq ($(CONFIG_PCI_HCI), y) 1027 | MODULE_NAME = 8814be 1028 | endif 1029 | 1030 | endif 1031 | 1032 | ########### AUTO_CFG ################################# 1033 | 1034 | ifeq ($(CONFIG_AUTOCFG_CP), y) 1035 | 1036 | ifeq ($(CONFIG_MULTIDRV), y) 1037 | $(shell cp $(TopDIR)/autoconf_multidrv_$(HCI_NAME)_linux.h $(TopDIR)/include/autoconf.h) 1038 | else 1039 | ifeq ($(CONFIG_RTL8188E)$(CONFIG_SDIO_HCI),yy) 1040 | $(shell cp $(TopDIR)/autoconf_rtl8189e_$(HCI_NAME)_linux.h $(TopDIR)/include/autoconf.h) 1041 | else ifeq ($(CONFIG_RTL8188F)$(CONFIG_SDIO_HCI),yy) 1042 | $(shell cp $(TopDIR)/autoconf_rtl8189f_$(HCI_NAME)_linux.h $(TopDIR)/include/autoconf.h) 1043 | else ifeq ($(CONFIG_RTL8723C),y) 1044 | $(shell cp $(TopDIR)/autoconf_rtl8723c_$(HCI_NAME)_linux.h $(TopDIR)/include/autoconf.h) 1045 | else 1046 | $(shell cp $(TopDIR)/autoconf_$(RTL871X)_$(HCI_NAME)_linux.h $(TopDIR)/include/autoconf.h) 1047 | endif 1048 | endif 1049 | 1050 | endif 1051 | 1052 | ########### END OF PATH ################################# 1053 | 1054 | ifeq ($(CONFIG_AP_MODE), y) 1055 | EXTRA_CFLAGS += -DCONFIG_AP_MODE 1056 | endif 1057 | 1058 | ifeq ($(CONFIG_P2P), y) 1059 | EXTRA_CFLAGS += -DCONFIG_P2P 1060 | ifneq ($(CONFIG_AP_MODE), y) 1061 | $(error "CONFIG_AP_MODE is required for CONFIG_P2P") 1062 | endif 1063 | endif 1064 | 1065 | ifeq ($(CONFIG_USB_HCI), y) 1066 | ifeq ($(CONFIG_USB_AUTOSUSPEND), y) 1067 | EXTRA_CFLAGS += -DCONFIG_USB_AUTOSUSPEND 1068 | endif 1069 | endif 1070 | 1071 | ifeq ($(CONFIG_MP_INCLUDED), y) 1072 | #MODULE_NAME := $(MODULE_NAME)_mp 1073 | EXTRA_CFLAGS += -DCONFIG_MP_INCLUDED 1074 | endif 1075 | 1076 | ifeq ($(CONFIG_POWER_SAVING), y) 1077 | ifneq ($(CONFIG_IPS_MODE), default) 1078 | EXTRA_CFLAGS += -DRTW_IPS_MODE=$(CONFIG_IPS_MODE) 1079 | endif 1080 | ifneq ($(CONFIG_LPS_MODE), default) 1081 | EXTRA_CFLAGS += -DRTW_LPS_MODE=$(CONFIG_LPS_MODE) 1082 | endif 1083 | ifneq ($(CONFIG_WOW_LPS_MODE), default) 1084 | EXTRA_CFLAGS += -DRTW_WOW_LPS_MODE=$(CONFIG_WOW_LPS_MODE) 1085 | endif 1086 | EXTRA_CFLAGS += -DCONFIG_POWER_SAVING 1087 | endif 1088 | 1089 | ifeq ($(CONFIG_HW_PWRP_DETECTION), y) 1090 | EXTRA_CFLAGS += -DCONFIG_HW_PWRP_DETECTION 1091 | endif 1092 | 1093 | ifeq ($(CONFIG_BT_COEXIST), y) 1094 | EXTRA_CFLAGS += -DCONFIG_BT_COEXIST 1095 | endif 1096 | 1097 | ifeq ($(CONFIG_WAPI_SUPPORT), y) 1098 | EXTRA_CFLAGS += -DCONFIG_WAPI_SUPPORT 1099 | endif 1100 | 1101 | 1102 | ifeq ($(CONFIG_EFUSE_CONFIG_FILE), y) 1103 | EXTRA_CFLAGS += -DCONFIG_EFUSE_CONFIG_FILE 1104 | 1105 | #EFUSE_MAP_PATH 1106 | USER_EFUSE_MAP_PATH ?= 1107 | ifneq ($(USER_EFUSE_MAP_PATH),) 1108 | EXTRA_CFLAGS += -DEFUSE_MAP_PATH=\"$(USER_EFUSE_MAP_PATH)\" 1109 | else ifeq ($(MODULE_NAME), 8189es) 1110 | EXTRA_CFLAGS += -DEFUSE_MAP_PATH=\"/system/etc/wifi/wifi_efuse_8189e.map\" 1111 | else ifeq ($(MODULE_NAME), 8723bs) 1112 | EXTRA_CFLAGS += -DEFUSE_MAP_PATH=\"/system/etc/wifi/wifi_efuse_8723bs.map\" 1113 | else 1114 | EXTRA_CFLAGS += -DEFUSE_MAP_PATH=\"/system/etc/wifi/wifi_efuse_$(MODULE_NAME).map\" 1115 | endif 1116 | 1117 | #WIFIMAC_PATH 1118 | USER_WIFIMAC_PATH ?= 1119 | ifneq ($(USER_WIFIMAC_PATH),) 1120 | EXTRA_CFLAGS += -DWIFIMAC_PATH=\"$(USER_WIFIMAC_PATH)\" 1121 | else 1122 | EXTRA_CFLAGS += -DWIFIMAC_PATH=\"/data/wifimac.txt\" 1123 | endif 1124 | 1125 | endif 1126 | 1127 | ifeq ($(CONFIG_EXT_CLK), y) 1128 | EXTRA_CFLAGS += -DCONFIG_EXT_CLK 1129 | endif 1130 | 1131 | ifeq ($(CONFIG_TRAFFIC_PROTECT), y) 1132 | EXTRA_CFLAGS += -DCONFIG_TRAFFIC_PROTECT 1133 | endif 1134 | 1135 | ifeq ($(CONFIG_LOAD_PHY_PARA_FROM_FILE), y) 1136 | EXTRA_CFLAGS += -DCONFIG_LOAD_PHY_PARA_FROM_FILE 1137 | #EXTRA_CFLAGS += -DREALTEK_CONFIG_PATH_WITH_IC_NAME_FOLDER 1138 | EXTRA_CFLAGS += -DREALTEK_CONFIG_PATH=\"/lib/firmware/\" 1139 | endif 1140 | 1141 | ifeq ($(CONFIG_TXPWR_BY_RATE), n) 1142 | EXTRA_CFLAGS += -DCONFIG_TXPWR_BY_RATE=0 1143 | else ifeq ($(CONFIG_TXPWR_BY_RATE), y) 1144 | EXTRA_CFLAGS += -DCONFIG_TXPWR_BY_RATE=1 1145 | endif 1146 | ifeq ($(CONFIG_TXPWR_BY_RATE_EN), n) 1147 | EXTRA_CFLAGS += -DCONFIG_TXPWR_BY_RATE_EN=0 1148 | else ifeq ($(CONFIG_TXPWR_BY_RATE_EN), y) 1149 | EXTRA_CFLAGS += -DCONFIG_TXPWR_BY_RATE_EN=1 1150 | else ifeq ($(CONFIG_TXPWR_BY_RATE_EN), auto) 1151 | EXTRA_CFLAGS += -DCONFIG_TXPWR_BY_RATE_EN=2 1152 | endif 1153 | 1154 | ifeq ($(CONFIG_TXPWR_LIMIT), n) 1155 | EXTRA_CFLAGS += -DCONFIG_TXPWR_LIMIT=0 1156 | else ifeq ($(CONFIG_TXPWR_LIMIT), y) 1157 | EXTRA_CFLAGS += -DCONFIG_TXPWR_LIMIT=1 1158 | endif 1159 | ifeq ($(CONFIG_TXPWR_LIMIT_EN), n) 1160 | EXTRA_CFLAGS += -DCONFIG_TXPWR_LIMIT_EN=0 1161 | else ifeq ($(CONFIG_TXPWR_LIMIT_EN), y) 1162 | EXTRA_CFLAGS += -DCONFIG_TXPWR_LIMIT_EN=1 1163 | else ifeq ($(CONFIG_TXPWR_LIMIT_EN), auto) 1164 | EXTRA_CFLAGS += -DCONFIG_TXPWR_LIMIT_EN=2 1165 | endif 1166 | 1167 | ifneq ($(CONFIG_RTW_CHPLAN), 0xFF) 1168 | EXTRA_CFLAGS += -DCONFIG_RTW_CHPLAN=$(CONFIG_RTW_CHPLAN) 1169 | endif 1170 | 1171 | ifeq ($(CONFIG_CALIBRATE_TX_POWER_BY_REGULATORY), y) 1172 | EXTRA_CFLAGS += -DCONFIG_CALIBRATE_TX_POWER_BY_REGULATORY 1173 | endif 1174 | 1175 | ifeq ($(CONFIG_CALIBRATE_TX_POWER_TO_MAX), y) 1176 | EXTRA_CFLAGS += -DCONFIG_CALIBRATE_TX_POWER_TO_MAX 1177 | endif 1178 | 1179 | ifeq ($(CONFIG_RTW_ADAPTIVITY_EN), disable) 1180 | EXTRA_CFLAGS += -DCONFIG_RTW_ADAPTIVITY_EN=0 1181 | else ifeq ($(CONFIG_RTW_ADAPTIVITY_EN), enable) 1182 | EXTRA_CFLAGS += -DCONFIG_RTW_ADAPTIVITY_EN=1 1183 | endif 1184 | 1185 | ifeq ($(CONFIG_RTW_ADAPTIVITY_MODE), normal) 1186 | EXTRA_CFLAGS += -DCONFIG_RTW_ADAPTIVITY_MODE=0 1187 | else ifeq ($(CONFIG_RTW_ADAPTIVITY_MODE), carrier_sense) 1188 | EXTRA_CFLAGS += -DCONFIG_RTW_ADAPTIVITY_MODE=1 1189 | endif 1190 | 1191 | ifeq ($(CONFIG_SIGNAL_SCALE_MAPPING), y) 1192 | EXTRA_CFLAGS += -DCONFIG_SIGNAL_SCALE_MAPPING 1193 | endif 1194 | 1195 | ifeq ($(CONFIG_80211W), y) 1196 | EXTRA_CFLAGS += -DCONFIG_IEEE80211W 1197 | endif 1198 | 1199 | ifeq ($(CONFIG_WOWLAN), y) 1200 | EXTRA_CFLAGS += -DCONFIG_WOWLAN -DRTW_WAKEUP_EVENT=$(CONFIG_WAKEUP_TYPE) 1201 | EXTRA_CFLAGS += -DRTW_SUSPEND_TYPE=$(CONFIG_SUSPEND_TYPE) 1202 | ifeq ($(CONFIG_WOW_STA_MIX), y) 1203 | EXTRA_CFLAGS += -DRTW_WOW_STA_MIX 1204 | endif 1205 | ifeq ($(CONFIG_SDIO_HCI), y) 1206 | EXTRA_CFLAGS += -DCONFIG_RTW_SDIO_PM_KEEP_POWER 1207 | endif 1208 | endif 1209 | 1210 | ifeq ($(CONFIG_AP_WOWLAN), y) 1211 | EXTRA_CFLAGS += -DCONFIG_AP_WOWLAN 1212 | ifeq ($(CONFIG_AP_MODE), n) 1213 | EXTRA_CFLAGS += -DCONFIG_AP_MODE 1214 | endif 1215 | ifeq ($(CONFIG_SDIO_HCI), y) 1216 | EXTRA_CFLAGS += -DCONFIG_RTW_SDIO_PM_KEEP_POWER 1217 | endif 1218 | endif 1219 | 1220 | ifeq ($(CONFIG_LAYER2_ROAMING), y) 1221 | EXTRA_CFLAGS += -DCONFIG_LAYER2_ROAMING -DCONFIG_ROAMING_FLAG=$(CONFIG_ROAMING_FLAG) 1222 | endif 1223 | 1224 | ifeq ($(CONFIG_PNO_SUPPORT), y) 1225 | EXTRA_CFLAGS += -DCONFIG_PNO_SUPPORT 1226 | ifeq ($(CONFIG_PNO_SET_DEBUG), y) 1227 | EXTRA_CFLAGS += -DCONFIG_PNO_SET_DEBUG 1228 | endif 1229 | endif 1230 | 1231 | ifeq ($(CONFIG_GPIO_WAKEUP), y) 1232 | EXTRA_CFLAGS += -DCONFIG_GPIO_WAKEUP 1233 | ifeq ($(CONFIG_ONE_PIN_GPIO), y) 1234 | EXTRA_CFLAGS += -DCONFIG_RTW_ONE_PIN_GPIO 1235 | endif 1236 | ifeq ($(CONFIG_HIGH_ACTIVE_DEV2HST), y) 1237 | EXTRA_CFLAGS += -DHIGH_ACTIVE_DEV2HST=1 1238 | else 1239 | EXTRA_CFLAGS += -DHIGH_ACTIVE_DEV2HST=0 1240 | endif 1241 | endif 1242 | 1243 | ifeq ($(CONFIG_HIGH_ACTIVE_HST2DEV), y) 1244 | EXTRA_CFLAGS += -DHIGH_ACTIVE_HST2DEV=1 1245 | else 1246 | EXTRA_CFLAGS += -DHIGH_ACTIVE_HST2DEV=0 1247 | endif 1248 | 1249 | ifneq ($(CONFIG_WAKEUP_GPIO_IDX), default) 1250 | EXTRA_CFLAGS += -DWAKEUP_GPIO_IDX=$(CONFIG_WAKEUP_GPIO_IDX) 1251 | endif 1252 | 1253 | ifeq ($(CONFIG_RTW_SDIO_PM_KEEP_POWER), y) 1254 | ifeq ($(CONFIG_SDIO_HCI), y) 1255 | EXTRA_CFLAGS += -DCONFIG_RTW_SDIO_PM_KEEP_POWER 1256 | endif 1257 | endif 1258 | 1259 | ifeq ($(CONFIG_REDUCE_TX_CPU_LOADING), y) 1260 | EXTRA_CFLAGS += -DCONFIG_REDUCE_TX_CPU_LOADING 1261 | endif 1262 | 1263 | ifeq ($(CONFIG_BR_EXT), y) 1264 | BR_NAME = br0 1265 | EXTRA_CFLAGS += -DCONFIG_BR_EXT 1266 | EXTRA_CFLAGS += '-DCONFIG_BR_EXT_BRNAME="'$(BR_NAME)'"' 1267 | endif 1268 | 1269 | 1270 | ifeq ($(CONFIG_TDLS), y) 1271 | EXTRA_CFLAGS += -DCONFIG_TDLS 1272 | endif 1273 | 1274 | ifeq ($(CONFIG_WIFI_MONITOR), y) 1275 | EXTRA_CFLAGS += -DCONFIG_WIFI_MONITOR 1276 | endif 1277 | 1278 | ifeq ($(CONFIG_MCC_MODE), y) 1279 | EXTRA_CFLAGS += -DCONFIG_MCC_MODE 1280 | endif 1281 | 1282 | ifeq ($(CONFIG_RTW_NAPI), y) 1283 | EXTRA_CFLAGS += -DCONFIG_RTW_NAPI 1284 | endif 1285 | 1286 | ifeq ($(CONFIG_RTW_GRO), y) 1287 | EXTRA_CFLAGS += -DCONFIG_RTW_GRO 1288 | endif 1289 | 1290 | ifeq ($(CONFIG_RTW_REPEATER_SON), y) 1291 | EXTRA_CFLAGS += -DCONFIG_RTW_REPEATER_SON 1292 | endif 1293 | 1294 | ifeq ($(CONFIG_RTW_IPCAM_APPLICATION), y) 1295 | EXTRA_CFLAGS += -DCONFIG_RTW_IPCAM_APPLICATION 1296 | ifeq ($(CONFIG_WIFI_MONITOR), n) 1297 | EXTRA_CFLAGS += -DCONFIG_WIFI_MONITOR 1298 | endif 1299 | endif 1300 | 1301 | ifeq ($(CONFIG_RTW_NETIF_SG), y) 1302 | EXTRA_CFLAGS += -DCONFIG_RTW_NETIF_SG 1303 | endif 1304 | 1305 | ifeq ($(CONFIG_ICMP_VOQ), y) 1306 | EXTRA_CFLAGS += -DCONFIG_ICMP_VOQ 1307 | endif 1308 | 1309 | ifeq ($(CONFIG_IP_R_MONITOR), y) 1310 | EXTRA_CFLAGS += -DCONFIG_IP_R_MONITOR 1311 | endif 1312 | 1313 | ifeq ($(CONFIG_MP_VHT_HW_TX_MODE), y) 1314 | EXTRA_CFLAGS += -DCONFIG_MP_VHT_HW_TX_MODE 1315 | ifeq ($(CONFIG_PLATFORM_I386_PC), y) 1316 | ## For I386 X86 ToolChain use Hardware FLOATING 1317 | EXTRA_CFLAGS += -mhard-float 1318 | else 1319 | ## For ARM ToolChain use Hardware FLOATING 1320 | EXTRA_CFLAGS += -mfloat-abi=hard 1321 | endif 1322 | endif 1323 | 1324 | ifeq ($(CONFIG_APPEND_VENDOR_IE_ENABLE), y) 1325 | EXTRA_CFLAGS += -DCONFIG_APPEND_VENDOR_IE_ENABLE 1326 | endif 1327 | 1328 | ifeq ($(CONFIG_RTW_DEBUG), y) 1329 | EXTRA_CFLAGS += -DCONFIG_RTW_DEBUG 1330 | EXTRA_CFLAGS += -DRTW_LOG_LEVEL=$(CONFIG_RTW_LOG_LEVEL) 1331 | endif 1332 | 1333 | ifeq ($(CONFIG_PROC_DEBUG), y) 1334 | EXTRA_CFLAGS += -DCONFIG_PROC_DEBUG 1335 | endif 1336 | 1337 | ifeq ($(CONFIG_RTW_UP_MAPPING_RULE), dscp) 1338 | EXTRA_CFLAGS += -DCONFIG_RTW_UP_MAPPING_RULE=1 1339 | else 1340 | EXTRA_CFLAGS += -DCONFIG_RTW_UP_MAPPING_RULE=0 1341 | endif 1342 | 1343 | EXTRA_CFLAGS += -DDM_ODM_SUPPORT_TYPE=0x04 1344 | 1345 | ifeq ($(CONFIG_RTW_MBO), y) 1346 | EXTRA_CFLAGS += -DCONFIG_RTW_MBO -DCONFIG_RTW_80211K -DCONFIG_RTW_WNM -DCONFIG_RTW_BTM_ROAM 1347 | EXTRA_CFLAGS += -DCONFIG_RTW_80211R 1348 | endif 1349 | 1350 | # *** AUTODETECT *** 1351 | ifeq ($(CONFIG_PLATFORM_AUTODETECT), y) 1352 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1353 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 1354 | 1355 | SUBARCH := $(shell uname -m) 1356 | 1357 | ifeq ($(SUBARCH), aarch64) 1358 | SUBARCH := arm64 1359 | endif 1360 | 1361 | ifeq ($(SUBARCH), armv7l) 1362 | SUBARCH := arm 1363 | endif 1364 | 1365 | ifeq ($(SUBARCH), armv6l) 1366 | SUBARCH := arm 1367 | endif 1368 | 1369 | ARCH ?= $(SUBARCH) 1370 | 1371 | CROSS_COMPILE ?= 1372 | KVER ?= $(shell uname -r) 1373 | KSRC := /lib/modules/$(KVER)/build 1374 | MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/ 1375 | INSTALL_PREFIX := 1376 | STAGINGMODDIR := /lib/modules/$(KVER)/kernel/drivers/staging 1377 | 1378 | # Platform Specific Flags may be Needed in some Situations 1379 | #EXTRA_CFLAGS += -DCONFIG_PLATFORM_ANDROID 1380 | # End of Platform Specific Flags 1381 | endif 1382 | # *** End AUTODETECT *** 1383 | 1384 | ifeq ($(CONFIG_PLATFORM_I386_PC), y) 1385 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1386 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 1387 | 1388 | SUBARCH := $(shell uname -m | sed -e s/i.86/i386/) 1389 | ARCH ?= $(SUBARCH) 1390 | CROSS_COMPILE ?= 1391 | KVER := $(shell uname -r) 1392 | KSRC := /lib/modules/$(KVER)/build 1393 | MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/ 1394 | INSTALL_PREFIX := 1395 | STAGINGMODDIR := /lib/modules/$(KVER)/kernel/drivers/staging 1396 | endif 1397 | 1398 | ifeq ($(CONFIG_PLATFORM_NV_TK1), y) 1399 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_NV_TK1 1400 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1401 | # default setting for Android 4.1, 4.2 1402 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 1403 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 1404 | EXTRA_CFLAGS += -DCONFIG_P2P_IPS -DCONFIG_PLATFORM_ANDROID 1405 | # Enable this for Android 5.0 1406 | EXTRA_CFLAGS += -DCONFIG_RADIO_WORK 1407 | EXTRA_CFLAGS += -DRTW_VENDOR_EXT_SUPPORT 1408 | EXTRA_CFLAGS += -DRTW_ENABLE_WIFI_CONTROL_FUNC 1409 | ARCH ?= arm 1410 | 1411 | CROSS_COMPILE := /mnt/newdisk/android_sdk/nvidia_tk1/android_L/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin/arm-eabi- 1412 | KSRC :=/mnt/newdisk/android_sdk/nvidia_tk1/android_L/out/target/product/shieldtablet/obj/KERNEL/ 1413 | MODULE_NAME = wlan 1414 | endif 1415 | 1416 | ifeq ($(CONFIG_PLATFORM_NV_TK1_UBUNTU), y) 1417 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_NV_TK1 1418 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1419 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 1420 | 1421 | ARCH ?= arm 1422 | 1423 | CROSS_COMPILE ?= 1424 | KVER := $(shell uname -r) 1425 | KSRC := /lib/modules/$(KVER)/build 1426 | MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/ 1427 | INSTALL_PREFIX := 1428 | endif 1429 | 1430 | ifeq ($(CONFIG_PLATFORM_ACTIONS_ATM702X), y) 1431 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ANDROID -DCONFIG_PLATFORM_ACTIONS_ATM702X 1432 | #ARCH := arm 1433 | ARCH := $(R_ARCH) 1434 | #CROSS_COMPILE := arm-none-linux-gnueabi- 1435 | CROSS_COMPILE := $(R_CROSS_COMPILE) 1436 | KVER:= 3.4.0 1437 | #KSRC := ../../../../build/out/kernel 1438 | KSRC := $(KERNEL_BUILD_PATH) 1439 | MODULE_NAME :=wlan 1440 | endif 1441 | 1442 | 1443 | ifeq ($(CONFIG_PLATFORM_ACTIONS_ATM705X), y) 1444 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1445 | #EXTRA_CFLAGS += -DRTW_ENABLE_WIFI_CONTROL_FUNC 1446 | # default setting for Android 4.1, 4.2, 4.3, 4.4 1447 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_ACTIONS_ATM705X 1448 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 1449 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 1450 | 1451 | # Enable this for Android 5.0 1452 | EXTRA_CFLAGS += -DCONFIG_RADIO_WORK 1453 | 1454 | ifeq ($(CONFIG_SDIO_HCI), y) 1455 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS 1456 | _PLATFORM_FILES += platform/platform_arm_act_sdio.o 1457 | endif 1458 | 1459 | ARCH := arm 1460 | CROSS_COMPILE := /opt/arm-2011.09/bin/arm-none-linux-gnueabi- 1461 | KSRC := /home/android_sdk/Action-semi/705a_android_L/android/kernel 1462 | endif 1463 | 1464 | ifeq ($(CONFIG_PLATFORM_ARM_SUN50IW1P1), y) 1465 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1466 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUN50IW1P1 1467 | EXTRA_CFLAGS += -DCONFIG_TRAFFIC_PROTECT 1468 | # default setting for Android 4.1, 4.2 1469 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 1470 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 1471 | EXTRA_CFLAGS += -DCONFIG_RESUME_IN_WORKQUEUE 1472 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS 1473 | 1474 | # Enable this for Android 5.0 1475 | EXTRA_CFLAGS += -DCONFIG_RADIO_WORK 1476 | 1477 | ifeq ($(CONFIG_USB_HCI), y) 1478 | EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX 1479 | _PLATFORM_FILES += platform/platform_ARM_SUNxI_usb.o 1480 | endif 1481 | ifeq ($(CONFIG_SDIO_HCI), y) 1482 | _PLATFORM_FILES += platform/platform_ARM_SUN50IW1P1_sdio.o 1483 | endif 1484 | 1485 | ARCH := arm64 1486 | # ===Cross compile setting for Android 5.1(64) SDK === 1487 | CROSS_COMPILE := /home/android_sdk/Allwinner/a64/android-51/lichee/out/sun50iw1p1/android/common/buildroot/external-toolchain/bin/aarch64-linux-gnu- 1488 | KSRC :=/home/android_sdk/Allwinner/a64/android-51/lichee/linux-3.10/ 1489 | endif 1490 | 1491 | ifeq ($(CONFIG_PLATFORM_TI_AM3517), y) 1492 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ANDROID -DCONFIG_PLATFORM_SHUTTLE 1493 | CROSS_COMPILE := arm-eabi- 1494 | KSRC := $(shell pwd)/../../../Android/kernel 1495 | ARCH := arm 1496 | endif 1497 | 1498 | ifeq ($(CONFIG_PLATFORM_MSTAR_TITANIA12), y) 1499 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_MSTAR -DCONFIG_PLATFORM_MSTAR_TITANIA12 1500 | ARCH:=mips 1501 | CROSS_COMPILE:= /usr/src/Mstar_kernel/mips-4.3/bin/mips-linux-gnu- 1502 | KVER:= 2.6.28.9 1503 | KSRC:= /usr/src/Mstar_kernel/2.6.28.9/ 1504 | endif 1505 | 1506 | ifeq ($(CONFIG_PLATFORM_MSTAR), y) 1507 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 1508 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 1509 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1510 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_MSTAR 1511 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_MSTAR_HIGH 1512 | ifeq ($(CONFIG_USB_HCI), y) 1513 | EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX -DCONFIG_FIX_NR_BULKIN_BUFFER 1514 | endif 1515 | ARCH:=arm 1516 | CROSS_COMPILE:= /usr/src/bin/arm-none-linux-gnueabi- 1517 | KVER:= 3.1.10 1518 | KSRC:= /usr/src/Mstar_kernel/3.1.10/ 1519 | endif 1520 | 1521 | ifeq ($(CONFIG_PLATFORM_ANDROID_X86), y) 1522 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1523 | SUBARCH := $(shell uname -m | sed -e s/i.86/i386/) 1524 | ARCH := $(SUBARCH) 1525 | CROSS_COMPILE := /media/DATA-2/android-x86/ics-x86_20120130/prebuilt/linux-x86/toolchain/i686-unknown-linux-gnu-4.2.1/bin/i686-unknown-linux-gnu- 1526 | KSRC := /media/DATA-2/android-x86/ics-x86_20120130/out/target/product/generic_x86/obj/kernel 1527 | MODULE_NAME :=wlan 1528 | endif 1529 | 1530 | ifeq ($(CONFIG_PLATFORM_ANDROID_INTEL_X86), y) 1531 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_ANDROID_INTEL_X86 1532 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_INTEL_BYT 1533 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ANDROID 1534 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 1535 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 1536 | EXTRA_CFLAGS += -DCONFIG_SKIP_SIGNAL_SCALE_MAPPING 1537 | ifeq ($(CONFIG_SDIO_HCI), y) 1538 | EXTRA_CFLAGS += -DCONFIG_RESUME_IN_WORKQUEUE 1539 | endif 1540 | endif 1541 | 1542 | ifeq ($(CONFIG_PLATFORM_JB_X86), y) 1543 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1544 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 1545 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 1546 | SUBARCH := $(shell uname -m | sed -e s/i.86/i386/) 1547 | ARCH := $(SUBARCH) 1548 | CROSS_COMPILE := /home/android_sdk/android-x86_JB/prebuilts/gcc/linux-x86/x86/i686-linux-android-4.7/bin/i686-linux-android- 1549 | KSRC := /home/android_sdk/android-x86_JB/out/target/product/x86/obj/kernel/ 1550 | MODULE_NAME :=wlan 1551 | endif 1552 | 1553 | ifeq ($(CONFIG_PLATFORM_ARM_PXA2XX), y) 1554 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1555 | ARCH := arm 1556 | CROSS_COMPILE := arm-none-linux-gnueabi- 1557 | KVER := 2.6.34.1 1558 | KSRC ?= /usr/src/linux-2.6.34.1 1559 | endif 1560 | 1561 | ifeq ($(CONFIG_PLATFORM_ARM_S3C2K4), y) 1562 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1563 | ARCH := arm 1564 | CROSS_COMPILE := arm-linux- 1565 | KVER := 2.6.24.7_$(ARCH) 1566 | KSRC := /usr/src/kernels/linux-$(KVER) 1567 | endif 1568 | 1569 | ifeq ($(CONFIG_PLATFORM_ARM_S3C6K4), y) 1570 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1571 | ARCH := arm 1572 | CROSS_COMPILE := arm-none-linux-gnueabi- 1573 | KVER := 2.6.34.1 1574 | KSRC ?= /usr/src/linux-2.6.34.1 1575 | endif 1576 | 1577 | ifeq ($(CONFIG_PLATFORM_RTD2880B), y) 1578 | EXTRA_CFLAGS += -DCONFIG_BIG_ENDIAN -DCONFIG_PLATFORM_RTD2880B 1579 | ARCH:= 1580 | CROSS_COMPILE:= 1581 | KVER:= 1582 | KSRC:= 1583 | endif 1584 | 1585 | ifeq ($(CONFIG_PLATFORM_MIPS_RMI), y) 1586 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1587 | ARCH:=mips 1588 | CROSS_COMPILE:=mipsisa32r2-uclibc- 1589 | KVER:= 1590 | KSRC:= /root/work/kernel_realtek 1591 | endif 1592 | 1593 | ifeq ($(CONFIG_PLATFORM_MIPS_PLM), y) 1594 | EXTRA_CFLAGS += -DCONFIG_BIG_ENDIAN 1595 | ARCH:=mips 1596 | CROSS_COMPILE:=mipsisa32r2-uclibc- 1597 | KVER:= 1598 | KSRC:= /root/work/kernel_realtek 1599 | endif 1600 | 1601 | ifeq ($(CONFIG_PLATFORM_MSTAR389), y) 1602 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_MSTAR389 1603 | ARCH:=mips 1604 | CROSS_COMPILE:= mips-linux-gnu- 1605 | KVER:= 2.6.28.10 1606 | KSRC:= /home/mstar/mstar_linux/2.6.28.9/ 1607 | endif 1608 | 1609 | ifeq ($(CONFIG_PLATFORM_MIPS_AR9132), y) 1610 | EXTRA_CFLAGS += -DCONFIG_BIG_ENDIAN 1611 | ARCH := mips 1612 | CROSS_COMPILE := mips-openwrt-linux- 1613 | KSRC := /home/alex/test_openwrt/tmp/linux-2.6.30.9 1614 | endif 1615 | 1616 | ifeq ($(CONFIG_PLATFORM_DMP_PHILIPS), y) 1617 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DRTK_DMP_PLATFORM 1618 | ARCH := mips 1619 | #CROSS_COMPILE:=/usr/local/msdk-4.3.6-mips-EL-2.6.12.6-0.9.30.3/bin/mipsel-linux- 1620 | CROSS_COMPILE:=/usr/local/toolchain_mipsel/bin/mipsel-linux- 1621 | KSRC ?=/usr/local/Jupiter/linux-2.6.12 1622 | endif 1623 | 1624 | ifeq ($(CONFIG_PLATFORM_RTK_DMP), y) 1625 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DRTK_DMP_PLATFORM -DCONFIG_WIRELESS_EXT 1626 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS 1627 | ifeq ($(CONFIG_USB_HCI), y) 1628 | _PLATFORM_FILES += platform/platform_RTK_DMP_usb.o 1629 | endif 1630 | ARCH:=mips 1631 | CROSS_COMPILE:=mipsel-linux- 1632 | KVER:= 1633 | KSRC ?= /usr/src/DMP_Kernel/jupiter/linux-2.6.12 1634 | endif 1635 | 1636 | ifeq ($(CONFIG_PLATFORM_MT53XX), y) 1637 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_MT53XX 1638 | ARCH:= arm 1639 | CROSS_COMPILE:= arm11_mtk_le- 1640 | KVER:= 2.6.27 1641 | KSRC?= /proj/mtk00802/BD_Compare/BDP/Dev/BDP_V301/BDP_Linux/linux-2.6.27 1642 | endif 1643 | 1644 | ifeq ($(CONFIG_PLATFORM_ARM_MX51_241H), y) 1645 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_WISTRON_PLATFORM 1646 | ARCH := arm 1647 | CROSS_COMPILE := /opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi- 1648 | KVER := 2.6.31 1649 | KSRC ?= /lib/modules/2.6.31-770-g0e46b52/source 1650 | endif 1651 | 1652 | ifeq ($(CONFIG_PLATFORM_FS_MX61), y) 1653 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1654 | ARCH := arm 1655 | CROSS_COMPILE := /home/share/CusEnv/FreeScale/arm-eabi-4.4.3/bin/arm-eabi- 1656 | KSRC ?= /home/share/CusEnv/FreeScale/FS_kernel_env 1657 | endif 1658 | 1659 | 1660 | 1661 | ifeq ($(CONFIG_PLATFORM_ACTIONS_ATJ227X), y) 1662 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ACTIONS_ATJ227X 1663 | ARCH := mips 1664 | CROSS_COMPILE := /home/cnsd4/project/actions/tools-2.6.27/bin/mipsel-linux-gnu- 1665 | KVER := 2.6.27 1666 | KSRC := /home/cnsd4/project/actions/linux-2.6.27.28 1667 | endif 1668 | 1669 | ifeq ($(CONFIG_PLATFORM_TI_DM365), y) 1670 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_TI_DM365 1671 | EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_RX 1672 | EXTRA_CFLAGS += -DCONFIG_SINGLE_XMIT_BUF -DCONFIG_SINGLE_RECV_BUF 1673 | ARCH := arm 1674 | #CROSS_COMPILE := /home/cnsd4/Appro/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le- 1675 | #KSRC := /home/cnsd4/Appro/mv_pro_5.0/montavista/pro/devkit/lsp/ti-davinci/linux-dm365 1676 | CROSS_COMPILE := /opt/montavista/pro5.0/devkit/arm/v5t_le/bin/arm-linux- 1677 | KSRC:= /home/vivotek/lsp/DM365/kernel_platform/kernel/linux-2.6.18 1678 | KERNELOUTPUT := ${PRODUCTDIR}/tmp 1679 | KVER := 2.6.18 1680 | endif 1681 | 1682 | ifeq ($(CONFIG_PLATFORM_MOZART), y) 1683 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_MOZART 1684 | ARCH := arm 1685 | CROSS_COMPILE := /home/vivotek/lsp/mozart3v2/Mozart3e_Toolchain/build_arm_nofpu/usr/bin/arm-linux- 1686 | KVER := $(shell uname -r) 1687 | KSRC:= /opt/Vivotek/lsp/mozart3v2/kernel_platform/kernel/mozart_kernel-1.17 1688 | KERNELOUTPUT := /home/pink/sample/ODM/IP8136W-VINT/tmp/kernel 1689 | endif 1690 | 1691 | ifeq ($(CONFIG_PLATFORM_TEGRA3_CARDHU), y) 1692 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1693 | # default setting for Android 4.1, 4.2 1694 | EXTRA_CFLAGS += -DRTW_ENABLE_WIFI_CONTROL_FUNC 1695 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 1696 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 1697 | ARCH := arm 1698 | CROSS_COMPILE := /home/android_sdk/nvidia/tegra-16r3-partner-android-4.1_20120723/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi- 1699 | KSRC := /home/android_sdk/nvidia/tegra-16r3-partner-android-4.1_20120723/out/target/product/cardhu/obj/KERNEL 1700 | MODULE_NAME := wlan 1701 | endif 1702 | 1703 | ifeq ($(CONFIG_PLATFORM_TEGRA4_DALMORE), y) 1704 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1705 | # default setting for Android 4.1, 4.2 1706 | EXTRA_CFLAGS += -DRTW_ENABLE_WIFI_CONTROL_FUNC 1707 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 1708 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 1709 | ARCH := arm 1710 | CROSS_COMPILE := /home/android_sdk/nvidia/tegra-17r9-partner-android-4.2-dalmore_20130131/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi- 1711 | KSRC := /home/android_sdk/nvidia/tegra-17r9-partner-android-4.2-dalmore_20130131/out/target/product/dalmore/obj/KERNEL 1712 | MODULE_NAME := wlan 1713 | endif 1714 | 1715 | ifeq ($(CONFIG_PLATFORM_ARM_TCC8900), y) 1716 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1717 | ARCH := arm 1718 | CROSS_COMPILE := /home/android_sdk/Telechips/SDK_2304_20110613/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi- 1719 | KSRC := /home/android_sdk/Telechips/SDK_2304_20110613/kernel 1720 | MODULE_NAME := wlan 1721 | endif 1722 | 1723 | ifeq ($(CONFIG_PLATFORM_ARM_TCC8920), y) 1724 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1725 | ARCH := arm 1726 | CROSS_COMPILE := /home/android_sdk/Telechips/v12.06_r1-tcc-android-4.0.4/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi- 1727 | KSRC := /home/android_sdk/Telechips/v12.06_r1-tcc-android-4.0.4/kernel 1728 | MODULE_NAME := wlan 1729 | endif 1730 | 1731 | ifeq ($(CONFIG_PLATFORM_ARM_TCC8920_JB42), y) 1732 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1733 | # default setting for Android 4.1, 4.2 1734 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 1735 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 1736 | ARCH := arm 1737 | CROSS_COMPILE := /home/android_sdk/Telechips/v13.03_r1-tcc-android-4.2.2_ds_patched/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi- 1738 | KSRC := /home/android_sdk/Telechips/v13.03_r1-tcc-android-4.2.2_ds_patched/kernel 1739 | MODULE_NAME := wlan 1740 | endif 1741 | 1742 | ifeq ($(CONFIG_PLATFORM_ARM_RK2818), y) 1743 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ANDROID -DCONFIG_PLATFORM_ROCKCHIPS 1744 | ARCH := arm 1745 | CROSS_COMPILE := /usr/src/release_fae_version/toolchain/arm-eabi-4.4.0/bin/arm-eabi- 1746 | KSRC := /usr/src/release_fae_version/kernel25_A7_281x 1747 | MODULE_NAME := wlan 1748 | endif 1749 | 1750 | ifeq ($(CONFIG_PLATFORM_ARM_RK3188), y) 1751 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ANDROID -DCONFIG_PLATFORM_ROCKCHIPS 1752 | # default setting for Android 4.1, 4.2, 4.3, 4.4 1753 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 1754 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 1755 | # default setting for Power control 1756 | EXTRA_CFLAGS += -DRTW_ENABLE_WIFI_CONTROL_FUNC 1757 | ifeq ($(CONFIG_SDIO_HCI), y) 1758 | EXTRA_CFLAGS += -DRTW_SUPPORT_PLATFORM_SHUTDOWN 1759 | endif 1760 | # default setting for Special function 1761 | ARCH := arm 1762 | CROSS_COMPILE := /home/android_sdk/Rockchip/Rk3188/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi- 1763 | KSRC := /home/android_sdk/Rockchip/Rk3188/kernel 1764 | MODULE_NAME := wlan 1765 | endif 1766 | 1767 | ifeq ($(CONFIG_PLATFORM_ARM_RK3066), y) 1768 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_RK3066 1769 | EXTRA_CFLAGS += -DRTW_ENABLE_WIFI_CONTROL_FUNC 1770 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1771 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 1772 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 1773 | ifeq ($(CONFIG_SDIO_HCI), y) 1774 | EXTRA_CFLAGS += -DRTW_SUPPORT_PLATFORM_SHUTDOWN 1775 | endif 1776 | EXTRA_CFLAGS += -fno-pic 1777 | ARCH := arm 1778 | CROSS_COMPILE := /home/android_sdk/Rockchip/rk3066_20130607/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi- 1779 | #CROSS_COMPILE := /home/android_sdk/Rockchip/Rk3066sdk/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi- 1780 | KSRC := /home/android_sdk/Rockchip/Rk3066sdk/kernel 1781 | MODULE_NAME :=wlan 1782 | endif 1783 | 1784 | ifeq ($(CONFIG_PLATFORM_ARM_URBETTER), y) 1785 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN #-DCONFIG_MINIMAL_MEMORY_USAGE 1786 | ARCH := arm 1787 | CROSS_COMPILE := /media/DATA-1/urbetter/arm-2009q3/bin/arm-none-linux-gnueabi- 1788 | KSRC := /media/DATA-1/urbetter/ics-urbetter/kernel 1789 | MODULE_NAME := wlan 1790 | endif 1791 | 1792 | ifeq ($(CONFIG_PLATFORM_ARM_TI_PANDA), y) 1793 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN #-DCONFIG_MINIMAL_MEMORY_USAGE 1794 | ARCH := arm 1795 | #CROSS_COMPILE := /media/DATA-1/aosp/ics-aosp_20111227/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi- 1796 | #KSRC := /media/DATA-1/aosp/android-omap-panda-3.0_20120104 1797 | CROSS_COMPILE := /media/DATA-1/android-4.0/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi- 1798 | KSRC := /media/DATA-1/android-4.0/panda_kernel/omap 1799 | MODULE_NAME := wlan 1800 | endif 1801 | 1802 | ifeq ($(CONFIG_PLATFORM_MIPS_JZ4760), y) 1803 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_MINIMAL_MEMORY_USAGE 1804 | ARCH ?= mips 1805 | CROSS_COMPILE ?= /mnt/sdb5/Ingenic/Umido/mips-4.3/bin/mips-linux-gnu- 1806 | KSRC ?= /mnt/sdb5/Ingenic/Umido/kernel 1807 | endif 1808 | 1809 | ifeq ($(CONFIG_PLATFORM_SZEBOOK), y) 1810 | EXTRA_CFLAGS += -DCONFIG_BIG_ENDIAN 1811 | ARCH:=arm 1812 | CROSS_COMPILE:=/opt/crosstool2/bin/armeb-unknown-linux-gnueabi- 1813 | KVER:= 2.6.31.6 1814 | KSRC:= ../code/linux-2.6.31.6-2020/ 1815 | endif 1816 | 1817 | ifeq ($(CONFIG_PLATFORM_ARM_SUNxI), y) 1818 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1819 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUNxI 1820 | # default setting for Android 4.1, 4.2 1821 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 1822 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 1823 | 1824 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS 1825 | ifeq ($(CONFIG_USB_HCI), y) 1826 | EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX 1827 | _PLATFORM_FILES += platform/platform_ARM_SUNxI_usb.o 1828 | endif 1829 | ifeq ($(CONFIG_SDIO_HCI), y) 1830 | # default setting for A10-EVB mmc0 1831 | #EXTRA_CFLAGS += -DCONFIG_WITS_EVB_V13 1832 | _PLATFORM_FILES += platform/platform_ARM_SUNxI_sdio.o 1833 | endif 1834 | 1835 | ARCH := arm 1836 | #CROSS_COMPILE := arm-none-linux-gnueabi- 1837 | CROSS_COMPILE=/home/android_sdk/Allwinner/a10/android-jb42/lichee-jb42/buildroot/output/external-toolchain/bin/arm-none-linux-gnueabi- 1838 | KVER := 3.0.8 1839 | #KSRC:= ../lichee/linux-3.0/ 1840 | KSRC=/home/android_sdk/Allwinner/a10/android-jb42/lichee-jb42/linux-3.0 1841 | endif 1842 | 1843 | ifeq ($(CONFIG_PLATFORM_ARM_SUN6I), y) 1844 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1845 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUN6I 1846 | EXTRA_CFLAGS += -DCONFIG_TRAFFIC_PROTECT 1847 | # default setting for Android 4.1, 4.2, 4.3, 4.4 1848 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 1849 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 1850 | EXTRA_CFLAGS += -DCONFIG_QOS_OPTIMIZATION 1851 | 1852 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS 1853 | ifeq ($(CONFIG_USB_HCI), y) 1854 | EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX 1855 | _PLATFORM_FILES += platform/platform_ARM_SUNxI_usb.o 1856 | endif 1857 | ifeq ($(CONFIG_SDIO_HCI), y) 1858 | # default setting for A31-EVB mmc0 1859 | EXTRA_CFLAGS += -DCONFIG_A31_EVB 1860 | _PLATFORM_FILES += platform/platform_ARM_SUNnI_sdio.o 1861 | endif 1862 | 1863 | ARCH := arm 1864 | #Android-JB42 1865 | #CROSS_COMPILE := /home/android_sdk/Allwinner/a31/android-jb42/lichee/buildroot/output/external-toolchain/bin/arm-linux-gnueabi- 1866 | #KSRC :=/home/android_sdk/Allwinner/a31/android-jb42/lichee/linux-3.3 1867 | #ifeq ($(CONFIG_USB_HCI), y) 1868 | #MODULE_NAME := 8188eu_sw 1869 | #endif 1870 | # ==== Cross compile setting for kitkat-a3x_v4.5 ===== 1871 | CROSS_COMPILE := /home/android_sdk/Allwinner/a31/kitkat-a3x_v4.5/lichee/buildroot/output/external-toolchain/bin/arm-linux-gnueabi- 1872 | KSRC :=/home/android_sdk/Allwinner/a31/kitkat-a3x_v4.5/lichee/linux-3.3 1873 | endif 1874 | 1875 | ifeq ($(CONFIG_PLATFORM_ARM_SUN7I), y) 1876 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1877 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUN7I 1878 | EXTRA_CFLAGS += -DCONFIG_TRAFFIC_PROTECT 1879 | # default setting for Android 4.1, 4.2, 4.3, 4.4 1880 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 1881 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 1882 | EXTRA_CFLAGS += -DCONFIG_QOS_OPTIMIZATION 1883 | 1884 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS 1885 | ifeq ($(CONFIG_USB_HCI), y) 1886 | EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX 1887 | _PLATFORM_FILES += platform/platform_ARM_SUNxI_usb.o 1888 | endif 1889 | ifeq ($(CONFIG_SDIO_HCI), y) 1890 | _PLATFORM_FILES += platform/platform_ARM_SUNnI_sdio.o 1891 | endif 1892 | 1893 | ARCH := arm 1894 | # ===Cross compile setting for Android 4.2 SDK === 1895 | #CROSS_COMPILE := /home/android_sdk/Allwinner/a20_evb/lichee/out/android/common/buildroot/external-toolchain/bin/arm-linux-gnueabi- 1896 | #KSRC := /home/android_sdk/Allwinner/a20_evb/lichee/linux-3.3 1897 | # ==== Cross compile setting for Android 4.3 SDK ===== 1898 | #CROSS_COMPILE := /home/android_sdk/Allwinner/a20/android-jb43/lichee/out/android/common/buildroot/external-toolchain/bin/arm-linux-gnueabi- 1899 | #KSRC := /home/android_sdk/Allwinner/a20/android-jb43/lichee/linux-3.4 1900 | # ==== Cross compile setting for kitkat-a20_v4.4 ===== 1901 | CROSS_COMPILE := /home/android_sdk/Allwinner/a20/kitkat-a20_v4.4/lichee/out/android/common/buildroot/external-toolchain/bin/arm-linux-gnueabi- 1902 | KSRC := /home/android_sdk/Allwinner/a20/kitkat-a20_v4.4/lichee/linux-3.4 1903 | endif 1904 | 1905 | ifeq ($(CONFIG_PLATFORM_ARM_SUN8I_W3P1), y) 1906 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1907 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUN8I 1908 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUN8I_W3P1 1909 | EXTRA_CFLAGS += -DCONFIG_TRAFFIC_PROTECT 1910 | # default setting for Android 4.1, 4.2 1911 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 1912 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 1913 | 1914 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS 1915 | ifeq ($(CONFIG_USB_HCI), y) 1916 | EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX 1917 | _PLATFORM_FILES += platform/platform_ARM_SUNxI_usb.o 1918 | endif 1919 | ifeq ($(CONFIG_SDIO_HCI), y) 1920 | _PLATFORM_FILES += platform/platform_ARM_SUNnI_sdio.o 1921 | endif 1922 | 1923 | ARCH := arm 1924 | # ===Cross compile setting for Android 4.2 SDK === 1925 | #CROSS_COMPILE := /home/android_sdk/Allwinner/a23/android-jb42/lichee/out/android/common/buildroot/external-toolchain/bin/arm-linux-gnueabi- 1926 | #KSRC :=/home/android_sdk/Allwinner/a23/android-jb42/lichee/linux-3.4 1927 | # ===Cross compile setting for Android 4.4 SDK === 1928 | CROSS_COMPILE := /home/android_sdk/Allwinner/a23/android-kk44/lichee/out/android/common/buildroot/external-toolchain/bin/arm-linux-gnueabi- 1929 | KSRC :=/home/android_sdk/Allwinner/a23/android-kk44/lichee/linux-3.4 1930 | endif 1931 | 1932 | ifeq ($(CONFIG_PLATFORM_ARM_SUN8I_W5P1), y) 1933 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1934 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUN8I 1935 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUN8I_W5P1 1936 | EXTRA_CFLAGS += -DCONFIG_TRAFFIC_PROTECT 1937 | # default setting for Android 4.1, 4.2 1938 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 1939 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 1940 | 1941 | # Enable this for Android 5.0 1942 | EXTRA_CFLAGS += -DCONFIG_RADIO_WORK 1943 | 1944 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS 1945 | ifeq ($(CONFIG_USB_HCI), y) 1946 | EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX 1947 | _PLATFORM_FILES += platform/platform_ARM_SUNxI_usb.o 1948 | endif 1949 | ifeq ($(CONFIG_SDIO_HCI), y) 1950 | _PLATFORM_FILES += platform/platform_ARM_SUNnI_sdio.o 1951 | endif 1952 | 1953 | ARCH := arm 1954 | # ===Cross compile setting for Android L SDK === 1955 | CROSS_COMPILE := /home/android_sdk/Allwinner/a33/android-L/lichee/out/sun8iw5p1/android/common/buildroot/external-toolchain/bin/arm-linux-gnueabi- 1956 | KSRC :=/home/android_sdk/Allwinner/a33/android-L/lichee/linux-3.4 1957 | endif 1958 | 1959 | ifeq ($(CONFIG_PLATFORM_ACTIONS_ATV5201), y) 1960 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ACTIONS_ATV5201 1961 | EXTRA_CFLAGS += -DCONFIG_SDIO_DISABLE_RXFIFO_POLLING_LOOP 1962 | ARCH := mips 1963 | CROSS_COMPILE := mipsel-linux-gnu- 1964 | KVER := $(KERNEL_VER) 1965 | KSRC:= $(CFGDIR)/../../kernel/linux-$(KERNEL_VER) 1966 | endif 1967 | 1968 | ifeq ($(CONFIG_PLATFORM_ARM_RTD299X), y) 1969 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1970 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 1971 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 1972 | ifeq ($(CONFIG_ANDROID), y) 1973 | # Enable this for Android 5.0 1974 | EXTRA_CFLAGS += -DCONFIG_RADIO_WORK 1975 | endif 1976 | #ARCH, CROSS_COMPILE, KSRC,and MODDESTDIR are provided by external makefile 1977 | INSTALL_PREFIX := 1978 | MODULE_NAME := wlan 1979 | endif 1980 | 1981 | ifeq ($(CONFIG_PLATFORM_ARM_RTD299X_LG), y) 1982 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 1983 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 1984 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 1985 | EXTRA_CFLAGS += -DRTW_P2P_GROUP_INTERFACE=1 1986 | EXTRA_CFLAGS += -DCONFIG_IFACE_NUMBER=3 1987 | #EXTRA_CFLAGS += -DCONFIG_FIX_HWPORT 1988 | EXTRA_CFLAGS += -DLGE_PRIVATE 1989 | EXTRA_CFLAGS += -DPURE_SUPPLICANT 1990 | EXTRA_CFLAGS += -DCONFIG_CUSTOMIZED_COUNTRY_CHPLAN_MAP -DCONFIG_RTW_IOCTL_SET_COUNTRY 1991 | EXTRA_CFLAGS += -DDBG_RX_DFRAME_RAW_DATA 1992 | EXTRA_CFLAGS += -DRTW_REDUCE_SCAN_SWITCH_CH_TIME 1993 | ARCH ?= arm 1994 | KVER ?= 1995 | 1996 | ifneq ($(PLATFORM), WEBOS) 1997 | $(info PLATFORM is empty) 1998 | CROSS_COMPILE ?= /mnt/newdisk/LGE/arm-lg115x-linux-gnueabi-4.8-2016.03-x86_64/bin/arm-lg115x-linux-gnueabi- 1999 | KSRC ?= /mnt/newdisk/LGE/linux-rockhopper_k3lp_drd4tv_423 2000 | endif 2001 | 2002 | CROSS_COMPILE ?= 2003 | KSRC ?= $(LINUX_SRC) 2004 | INSTALL_PREFIX ?= 2005 | endif 2006 | 2007 | ifeq ($(CONFIG_PLATFORM_HISILICON), y) 2008 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_HISILICON 2009 | ifeq ($(SUPPORT_CONCURRENT),y) 2010 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 2011 | endif 2012 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 2013 | ARCH := arm 2014 | ifeq ($(CROSS_COMPILE),) 2015 | CROSS_COMPILE = arm-hisiv200-linux- 2016 | endif 2017 | MODULE_NAME := rtl8192eu 2018 | ifeq ($(KSRC),) 2019 | KSRC := ../../../../../../kernel/linux-3.4.y 2020 | endif 2021 | endif 2022 | 2023 | ifeq ($(CONFIG_PLATFORM_HISILICON_HI3798), y) 2024 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_HISILICON 2025 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_HISILICON_HI3798 2026 | #EXTRA_CFLAGS += -DCONFIG_PLATFORM_HISILICON_HI3798_MV200_HDMI_DONGLE 2027 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 2028 | # default setting for Android 2029 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 2030 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 2031 | EXTRA_CFLAGS += -DRTW_USE_CFG80211_STA_EVENT 2032 | # default setting for Android 5.x and later 2033 | #EXTRA_CFLAGS += -DCONFIG_RADIO_WORK 2034 | 2035 | # If system could power on and recognize Wi-Fi SDIO automatically, 2036 | # platfrom operations are not necessary. 2037 | #ifeq ($(CONFIG_SDIO_HCI), y) 2038 | #EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS 2039 | #_PLATFORM_FILES += platform/platform_hisilicon_hi3798_sdio.o 2040 | #EXTRA_CFLAGS += -DCONFIG_HISI_SDIO_ID=1 2041 | #endif 2042 | 2043 | ARCH ?= arm 2044 | CROSS_COMPILE ?= /HiSTBAndroidV600R003C00SPC021_git_0512/device/hisilicon/bigfish/sdk/tools/linux/toolchains/arm-histbv310-linux/bin/arm-histbv310-linux- 2045 | ifndef KSRC 2046 | KSRC := /HiSTBAndroidV600R003C00SPC021_git_0512/device/hisilicon/bigfish/sdk/source/kernel/linux-3.18.y 2047 | KSRC += O=/HiSTBAndroidV600R003C00SPC021_git_0512/out/target/product/Hi3798MV200/obj/KERNEL_OBJ 2048 | endif 2049 | 2050 | ifeq ($(CONFIG_RTL8822B), y) 2051 | ifeq ($(CONFIG_SDIO_HCI), y) 2052 | CONFIG_RTL8822BS ?= m 2053 | USER_MODULE_NAME := rtl8822bs 2054 | endif 2055 | endif 2056 | 2057 | endif 2058 | 2059 | # Platform setting 2060 | ifeq ($(CONFIG_PLATFORM_ARM_SPREADTRUM_6820), y) 2061 | ifeq ($(CONFIG_ANDROID_2X), y) 2062 | EXTRA_CFLAGS += -DANDROID_2X 2063 | endif 2064 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_SPRD 2065 | EXTRA_CFLAGS += -DPLATFORM_SPREADTRUM_6820 2066 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 2067 | ifeq ($(RTL871X), rtl8188e) 2068 | EXTRA_CFLAGS += -DSOFTAP_PS_DURATION=50 2069 | endif 2070 | ifeq ($(CONFIG_SDIO_HCI), y) 2071 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS 2072 | _PLATFORM_FILES += platform/platform_sprd_sdio.o 2073 | endif 2074 | endif 2075 | 2076 | ifeq ($(CONFIG_PLATFORM_ARM_SPREADTRUM_8810), y) 2077 | ifeq ($(CONFIG_ANDROID_2X), y) 2078 | EXTRA_CFLAGS += -DANDROID_2X 2079 | endif 2080 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_SPRD 2081 | EXTRA_CFLAGS += -DPLATFORM_SPREADTRUM_8810 2082 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 2083 | ifeq ($(RTL871X), rtl8188e) 2084 | EXTRA_CFLAGS += -DSOFTAP_PS_DURATION=50 2085 | endif 2086 | ifeq ($(CONFIG_SDIO_HCI), y) 2087 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS 2088 | _PLATFORM_FILES += platform/platform_sprd_sdio.o 2089 | endif 2090 | endif 2091 | 2092 | ifeq ($(CONFIG_PLATFORM_ARM_WMT), y) 2093 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 2094 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 2095 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 2096 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS 2097 | ifeq ($(CONFIG_SDIO_HCI), y) 2098 | _PLATFORM_FILES += platform/platform_ARM_WMT_sdio.o 2099 | endif 2100 | ARCH := arm 2101 | CROSS_COMPILE := /home/android_sdk/WonderMedia/wm8880-android4.4/toolchain/arm_201103_gcc4.5.2/mybin/arm_1103_le- 2102 | KSRC := /home/android_sdk/WonderMedia/wm8880-android4.4/kernel4.4/ 2103 | MODULE_NAME :=8189es_kk 2104 | endif 2105 | 2106 | ifeq ($(CONFIG_PLATFORM_RTK119X), y) 2107 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 2108 | #EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUN7I 2109 | EXTRA_CFLAGS += -DCONFIG_TRAFFIC_PROTECT 2110 | # default setting for Android 4.1, 4.2 2111 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 2112 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 2113 | #EXTRA_CFLAGS += -DCONFIG_QOS_OPTIMIZATION 2114 | EXTRA_CFLAGS += -DCONFIG_QOS_OPTIMIZATION 2115 | 2116 | #EXTRA_CFLAGS += -DCONFIG_#PLATFORM_OPS 2117 | ifeq ($(CONFIG_USB_HCI), y) 2118 | EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX 2119 | #_PLATFORM_FILES += platform/platform_ARM_SUNxI_usb.o 2120 | endif 2121 | ifeq ($(CONFIG_SDIO_HCI), y) 2122 | _PLATFORM_FILES += platform/platform_ARM_SUNnI_sdio.o 2123 | endif 2124 | 2125 | ARCH := arm 2126 | 2127 | # ==== Cross compile setting for Android 4.4 SDK ===== 2128 | #CROSS_COMPILE := arm-linux-gnueabihf- 2129 | KVER := 3.10.24 2130 | #KSRC :=/home/android_sdk/Allwinner/a20/android-kitkat44/lichee/linux-3.4 2131 | CROSS_COMPILE := /home/realtek/software_phoenix/phoenix/toolchain/usr/local/arm-2013.11/bin/arm-linux-gnueabihf- 2132 | KSRC := /home/realtek/software_phoenix/linux-kernel 2133 | MODULE_NAME := 8192eu 2134 | 2135 | endif 2136 | 2137 | # Actions-Micro use this flag for DHC 1195 and DHC 1395 2138 | ifeq ($(CONFIG_PLATFORM_RTK119X_AM), y) 2139 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_RTK119X_AM 2140 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 2141 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 2142 | EXTRA_CFLAGS += -DCONFIG_FULL_CH_IN_P2P_HANDSHAKE 2143 | EXTRA_CFLAGS += -DCONFIG_SEL_P2P_IFACE=2 2144 | EXTRA_CFLAGS += -DCONFIG_IFACE_NUMBER=3 2145 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 2146 | 2147 | ifeq ($(CONFIG_USB_HCI), y) 2148 | EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX 2149 | endif 2150 | 2151 | ARCH := arm 2152 | 2153 | #CROSS_COMPILE := arm-linux-gnueabihf- 2154 | KVER := 3.10.24 2155 | #KSRC := 2156 | CROSS_COMPILE := 2157 | endif 2158 | 2159 | ifeq ($(CONFIG_PLATFORM_RTK129X), y) 2160 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 2161 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_RTK129X 2162 | EXTRA_CFLAGS += -DCONFIG_TRAFFIC_PROTECT 2163 | # default setting for Android 4.1, 4.2 2164 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 2165 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 2166 | #EXTRA_CFLAGS += -DCONFIG_P2P_IPS -DCONFIG_QOS_OPTIMIZATION 2167 | EXTRA_CFLAGS += -DCONFIG_QOS_OPTIMIZATION 2168 | # Enable this for Android 5.0 2169 | EXTRA_CFLAGS += -DCONFIG_RADIO_WORK 2170 | ifeq ($(CONFIG_RTL8821C)$(CONFIG_SDIO_HCI),yy) 2171 | EXTRA_CFLAGS += -DCONFIG_WAKEUP_GPIO_INPUT_MODE 2172 | EXTRA_CFLAGS += -DCONFIG_BT_WAKE_HST_OPEN_DRAIN 2173 | endif 2174 | EXTRA_CFLAGS += -Wno-error=date-time 2175 | # default setting for Android 7.0 2176 | ifeq ($(RTK_ANDROID_VERSION), nougat) 2177 | EXTRA_CFLAGS += -DRTW_P2P_GROUP_INTERFACE=1 2178 | endif 2179 | #EXTRA_CFLAGS += -DCONFIG_#PLATFORM_OPS 2180 | ifeq ($(CONFIG_USB_HCI), y) 2181 | EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX 2182 | endif 2183 | 2184 | ARCH := arm64 2185 | 2186 | # ==== Cross compile setting for Android 4.4 SDK ===== 2187 | #CROSS_COMPILE := arm-linux-gnueabihf- 2188 | #KVER := 4.1.10 2189 | #CROSS_COMPILE := $(CROSS) 2190 | #KSRC := $(LINUX_KERNEL_PATH) 2191 | CROSS_COMPILE := /home/android_sdk/DHC/trunk-6.0.0_r1-QA160627/phoenix/toolchain/asdk64-4.9.4-a53-EL-3.10-g2.19-a64nt-160307/bin/asdk64-linux- 2192 | KSRC := /home/android_sdk/DHC/trunk-6.0.0_r1-QA160627/linux-kernel 2193 | endif 2194 | 2195 | ifeq ($(CONFIG_PLATFORM_RTK1319), y) 2196 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_RTK1319 2197 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 2198 | EXTRA_CFLAGS += -DCONFIG_TRAFFIC_PROTECT 2199 | # default setting for Android 4.1, 4.2 2200 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 2201 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 2202 | #EXTRA_CFLAGS += -DCONFIG_P2P_IPS -DCONFIG_QOS_OPTIMIZATION 2203 | EXTRA_CFLAGS += -DCONFIG_QOS_OPTIMIZATION 2204 | # Enable this for Android 5.0 2205 | EXTRA_CFLAGS += -DCONFIG_RADIO_WORK 2206 | ifeq ($(CONFIG_RTL8821C)$(CONFIG_SDIO_HCI),yy) 2207 | EXTRA_CFLAGS += -DCONFIG_WAKEUP_GPIO_INPUT_MODE 2208 | EXTRA_CFLAGS += -DCONFIG_BT_WAKE_HST_OPEN_DRAIN 2209 | endif 2210 | EXTRA_CFLAGS += -Wno-error=date-time 2211 | # default setting for Android 7.0 2212 | ifeq ($(RTK_ANDROID_VERSION), nougat) 2213 | EXTRA_CFLAGS += -DRTW_P2P_GROUP_INTERFACE=1 2214 | endif 2215 | #EXTRA_CFLAGS += -DCONFIG_#PLATFORM_OPS 2216 | ifeq ($(CONFIG_USB_HCI), y) 2217 | EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX 2218 | endif 2219 | 2220 | ARCH := arm64 2221 | 2222 | # ==== Cross compile setting for Android 4.4 SDK ===== 2223 | #CROSS_COMPILE := arm-linux-gnueabihf- 2224 | #KVER := 4.1.10 2225 | #CROSS_COMPILE := $(CROSS) 2226 | #KSRC := $(LINUX_KERNEL_PATH) 2227 | CROSS_COMPILE := /home/android_sdk/DHC/trunk-6.0.0_r1-QA160627/phoenix/toolchain/asdk64-4.9.4-a53-EL-3.10-g2.19-a64nt-160307/bin/asdk64-linux- 2228 | KSRC := /home/android_sdk/DHC/trunk-6.0.0_r1-QA160627/linux-kernel 2229 | endif 2230 | 2231 | ifeq ($(CONFIG_PLATFORM_RTK390X), y) 2232 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 2233 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_RTK390X 2234 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 2235 | EXTRA_CFLAGS += -DCONFIG_RTW_NETIF_SG 2236 | ifeq ($(CONFIG_USB_HCI), y) 2237 | EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX 2238 | endif 2239 | 2240 | ARCH:=rlx 2241 | 2242 | CROSS_COMPILE:=mips-linux- 2243 | KSRC:= /home/realtek/share/Develop/IPCAM_SDK/RealSil/rts3901_sdk_v1.2_vanilla/linux-3.10 2244 | 2245 | endif 2246 | 2247 | ifeq ($(CONFIG_PLATFORM_NOVATEK_NT72668), y) 2248 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_NOVATEK_NT72668 2249 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 2250 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 2251 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 2252 | EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_RX 2253 | EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX 2254 | ARCH ?= arm 2255 | CROSS_COMPILE := arm-linux-gnueabihf- 2256 | KVER := 3.8.0 2257 | KSRC := /Custom/Novatek/TCL/linux-3.8_header 2258 | #KSRC := $(KERNELDIR) 2259 | endif 2260 | 2261 | ifeq ($(CONFIG_PLATFORM_ARM_TCC8930_JB42), y) 2262 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 2263 | # default setting for Android 4.1, 4.2 2264 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 2265 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT 2266 | ARCH := arm 2267 | CROSS_COMPILE := /home/android_sdk/Telechips/v13.05_r1-tcc-android-4.2.2_tcc893x-evm_build/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi- 2268 | KSRC := /home/android_sdk/Telechips/v13.05_r1-tcc-android-4.2.2_tcc893x-evm_build/kernel 2269 | MODULE_NAME := wlan 2270 | endif 2271 | 2272 | ifeq ($(CONFIG_PLATFORM_RTL8197D), y) 2273 | EXTRA_CFLAGS += -DCONFIG_BIG_ENDIAN -DCONFIG_PLATFORM_RTL8197D 2274 | export DIR_LINUX=$(shell pwd)/../SDK/rlxlinux-sdk321-v50/linux-2.6.30 2275 | ARCH ?= rlx 2276 | CROSS_COMPILE:= $(DIR_LINUX)/../toolchain/rsdk-1.5.5-5281-EB-2.6.30-0.9.30.3-110714/bin/rsdk-linux- 2277 | KSRC := $(DIR_LINUX) 2278 | endif 2279 | 2280 | ifeq ($(CONFIG_PLATFORM_AML_S905), y) 2281 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_AML_S905 2282 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -fno-pic 2283 | # default setting for Android 2284 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 2285 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 2286 | EXTRA_CFLAGS += -DRTW_USE_CFG80211_STA_EVENT 2287 | # default setting for Android 5.x and later 2288 | EXTRA_CFLAGS += -DCONFIG_RADIO_WORK 2289 | 2290 | ifeq ($(CONFIG_SDIO_HCI), y) 2291 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS 2292 | _PLATFORM_FILES += platform/platform_aml_s905_sdio.o 2293 | endif 2294 | 2295 | ARCH ?= arm64 2296 | CROSS_COMPILE ?= /4.4_S905L_8822bs_compile/gcc-linaro-aarch64-linux-gnu-4.9-2014.09_linux/bin/aarch64-linux-gnu- 2297 | ifndef KSRC 2298 | KSRC := /4.4_S905L_8822bs_compile/common 2299 | # To locate output files in a separate directory. 2300 | KSRC += O=/4.4_S905L_8822bs_compile/KERNEL_OBJ 2301 | endif 2302 | 2303 | ifeq ($(CONFIG_RTL8822B), y) 2304 | ifeq ($(CONFIG_SDIO_HCI), y) 2305 | CONFIG_RTL8822BS ?= m 2306 | USER_MODULE_NAME := 8822bs 2307 | endif 2308 | endif 2309 | 2310 | endif 2311 | 2312 | ifeq ($(CONFIG_PLATFORM_ZTE_ZX296716), y) 2313 | EXTRA_CFLAGS += -Wno-error=date-time 2314 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_ZTE_ZX296716 2315 | EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 2316 | # default setting for Android 2317 | EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 2318 | EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 2319 | EXTRA_CFLAGS += -DRTW_USE_CFG80211_STA_EVENT 2320 | # default setting for Android 5.x and later 2321 | #EXTRA_CFLAGS += -DCONFIG_RADIO_WORK 2322 | 2323 | ifeq ($(CONFIG_SDIO_HCI), y) 2324 | # mark this temporarily 2325 | #EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS 2326 | #_PLATFORM_FILES += platform/platform_zte_zx296716_sdio.o 2327 | endif 2328 | 2329 | ARCH ?= arm64 2330 | CROSS_COMPILE ?= 2331 | KSRC ?= 2332 | 2333 | ifeq ($(CONFIG_RTL8822B), y) 2334 | ifeq ($(CONFIG_SDIO_HCI), y) 2335 | CONFIG_RTL8822BS ?= m 2336 | USER_MODULE_NAME := 8822bs 2337 | endif 2338 | endif 2339 | 2340 | endif 2341 | 2342 | ########### CUSTOMER ################################ 2343 | ifeq ($(CONFIG_CUSTOMER_HUAWEI_GENERAL), y) 2344 | CONFIG_CUSTOMER_HUAWEI = y 2345 | endif 2346 | 2347 | ifeq ($(CONFIG_CUSTOMER_HUAWEI), y) 2348 | EXTRA_CFLAGS += -DCONFIG_HUAWEI_PROC 2349 | endif 2350 | 2351 | CONFIG_PLATFORM_CMAP_INTFS = n 2352 | ifeq ($(CONFIG_PLATFORM_CMAP_INTFS), y) 2353 | PLATFORM_CMAP_INTFS_TYPE = 00 2354 | EXTRA_CFLAGS += -DCONFIG_PLATFORM_CMAP_INTFS -DCMAP_UNASSOC_METRICS_STA_MAX=32 2355 | _OS_INTFS_FILES += os_dep/linux/custom_multiap_intfs/custom_multiap_intfs.o 2356 | _PLATFORM_FILES += platform/custom_multiap_intfs_$(PLATFORM_CMAP_INTFS_TYPE).o 2357 | endif 2358 | 2359 | ifeq ($(CONFIG_MULTIDRV), y) 2360 | 2361 | ifeq ($(CONFIG_SDIO_HCI), y) 2362 | MODULE_NAME := rtw_sdio 2363 | endif 2364 | 2365 | ifeq ($(CONFIG_USB_HCI), y) 2366 | MODULE_NAME := rtw_usb 2367 | endif 2368 | 2369 | ifeq ($(CONFIG_PCI_HCI), y) 2370 | MODULE_NAME := rtw_pci 2371 | endif 2372 | 2373 | 2374 | endif 2375 | 2376 | USER_MODULE_NAME ?= 2377 | ifneq ($(USER_MODULE_NAME),) 2378 | MODULE_NAME := $(USER_MODULE_NAME) 2379 | endif 2380 | 2381 | ifneq ($(KERNELRELEASE),) 2382 | 2383 | ########### this part for *.mk ############################ 2384 | include $(src)/hal/phydm/phydm.mk 2385 | 2386 | ########### HAL_RTL8822B ################################# 2387 | ifeq ($(CONFIG_RTL8822B), y) 2388 | include $(src)/rtl8822b.mk 2389 | endif 2390 | 2391 | ########### HAL_RTL8821C ################################# 2392 | ifeq ($(CONFIG_RTL8821C), y) 2393 | include $(src)/rtl8821c.mk 2394 | endif 2395 | 2396 | ########### HAL_RTL8822C ################################# 2397 | ifeq ($(CONFIG_RTL8822C), y) 2398 | include $(src)/rtl8822c.mk 2399 | endif 2400 | 2401 | ########### HAL_RTL8814B ################################# 2402 | ifeq ($(CONFIG_RTL8814B), y) 2403 | include $(src)/rtl8814b.mk 2404 | endif 2405 | 2406 | ########### HAL_RTL8723F ################################# 2407 | ifeq ($(CONFIG_RTL8723F), y) 2408 | include $(src)/rtl8723f.mk 2409 | endif 2410 | 2411 | rtk_core := core/rtw_cmd.o \ 2412 | core/rtw_security.o \ 2413 | core/rtw_debug.o \ 2414 | core/rtw_io.o \ 2415 | core/rtw_ioctl_query.o \ 2416 | core/rtw_ioctl_set.o \ 2417 | core/rtw_ieee80211.o \ 2418 | core/rtw_mlme.o \ 2419 | core/rtw_mlme_ext.o \ 2420 | core/rtw_mi.o \ 2421 | core/rtw_wlan_util.o \ 2422 | core/rtw_vht.o \ 2423 | core/rtw_pwrctrl.o \ 2424 | core/rtw_rf.o \ 2425 | core/rtw_chplan.o \ 2426 | core/monitor/rtw_radiotap.o \ 2427 | core/rtw_recv.o \ 2428 | core/rtw_sta_mgt.o \ 2429 | core/rtw_ap.o \ 2430 | core/wds/rtw_wds.o \ 2431 | core/mesh/rtw_mesh.o \ 2432 | core/mesh/rtw_mesh_pathtbl.o \ 2433 | core/mesh/rtw_mesh_hwmp.o \ 2434 | core/rtw_xmit.o \ 2435 | core/rtw_p2p.o \ 2436 | core/rtw_rson.o \ 2437 | core/rtw_tdls.o \ 2438 | core/rtw_br_ext.o \ 2439 | core/rtw_iol.o \ 2440 | core/rtw_sreset.o \ 2441 | core/rtw_btcoex_wifionly.o \ 2442 | core/rtw_btcoex.o \ 2443 | core/rtw_beamforming.o \ 2444 | core/rtw_odm.o \ 2445 | core/rtw_rm.o \ 2446 | core/rtw_rm_fsm.o \ 2447 | core/rtw_ft.o \ 2448 | core/rtw_wnm.o \ 2449 | core/rtw_mbo.o \ 2450 | core/rtw_rm_util.o \ 2451 | core/efuse/rtw_efuse.o \ 2452 | core/rtw_roch.o 2453 | 2454 | ifeq ($(CONFIG_SDIO_HCI), y) 2455 | rtk_core += core/rtw_sdio.o 2456 | endif 2457 | 2458 | EXTRA_CFLAGS += -I$(src)/core/crypto 2459 | rtk_core += \ 2460 | core/crypto/aes-internal.o \ 2461 | core/crypto/aes-internal-enc.o \ 2462 | core/crypto/aes-gcm.o \ 2463 | core/crypto/aes-ccm.o \ 2464 | core/crypto/aes-omac1.o \ 2465 | core/crypto/ccmp.o \ 2466 | core/crypto/gcmp.o \ 2467 | core/crypto/aes-siv.o \ 2468 | core/crypto/aes-ctr.o \ 2469 | core/crypto/sha256-internal.o \ 2470 | core/crypto/sha256.o \ 2471 | core/crypto/sha256-prf.o \ 2472 | core/crypto/rtw_crypto_wrap.o \ 2473 | core/rtw_swcrypto.o 2474 | 2475 | $(MODULE_NAME)-y += $(rtk_core) 2476 | 2477 | $(MODULE_NAME)-$(CONFIG_WAPI_SUPPORT) += core/rtw_wapi.o \ 2478 | core/rtw_wapi_sms4.o 2479 | 2480 | $(MODULE_NAME)-y += $(_OS_INTFS_FILES) 2481 | $(MODULE_NAME)-y += $(_HAL_INTFS_FILES) 2482 | $(MODULE_NAME)-y += $(_PHYDM_FILES) 2483 | $(MODULE_NAME)-y += $(_BTC_FILES) 2484 | $(MODULE_NAME)-y += $(_PLATFORM_FILES) 2485 | 2486 | $(MODULE_NAME)-$(CONFIG_MP_INCLUDED) += core/rtw_mp.o 2487 | 2488 | ifeq ($(CONFIG_RTL8723B), y) 2489 | $(MODULE_NAME)-$(CONFIG_MP_INCLUDED)+= core/rtw_bt_mp.o 2490 | endif 2491 | 2492 | obj-$(CONFIG_RTL8821AU) := $(MODULE_NAME).o 2493 | 2494 | else 2495 | 2496 | export CONFIG_RTL8821AU = m 2497 | 2498 | all: modules 2499 | 2500 | modules: 2501 | $(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KSRC) M=$(shell pwd) modules 2502 | 2503 | strip: 2504 | $(CROSS_COMPILE)strip $(MODULE_NAME).ko --strip-unneeded 2505 | 2506 | install: 2507 | install -p -m 644 $(MODULE_NAME).ko $(MODDESTDIR) 2508 | /sbin/depmod -a ${KVER} 2509 | 2510 | uninstall: 2511 | rm -f $(MODDESTDIR)/$(MODULE_NAME).ko 2512 | /sbin/depmod -a ${KVER} 2513 | 2514 | backup_rtlwifi: 2515 | @echo "Making backup rtlwifi drivers" 2516 | ifneq (,$(wildcard $(STAGINGMODDIR)/rtl*)) 2517 | @tar cPf $(wildcard $(STAGINGMODDIR))/backup_rtlwifi_driver.tar $(wildcard $(STAGINGMODDIR)/rtl*) 2518 | @rm -rf $(wildcard $(STAGINGMODDIR)/rtl*) 2519 | endif 2520 | ifneq (,$(wildcard $(MODDESTDIR)realtek)) 2521 | @tar cPf $(MODDESTDIR)backup_rtlwifi_driver.tar $(MODDESTDIR)realtek 2522 | @rm -fr $(MODDESTDIR)realtek 2523 | endif 2524 | ifneq (,$(wildcard $(MODDESTDIR)rtl*)) 2525 | @tar cPf $(MODDESTDIR)../backup_rtlwifi_driver.tar $(wildcard $(MODDESTDIR)rtl*) 2526 | @rm -fr $(wildcard $(MODDESTDIR)rtl*) 2527 | endif 2528 | @/sbin/depmod -a ${KVER} 2529 | @echo "Please reboot your system" 2530 | 2531 | restore_rtlwifi: 2532 | @echo "Restoring backups" 2533 | ifneq (,$(wildcard $(STAGINGMODDIR)/backup_rtlwifi_driver.tar)) 2534 | @tar xPf $(STAGINGMODDIR)/backup_rtlwifi_driver.tar 2535 | @rm $(STAGINGMODDIR)/backup_rtlwifi_driver.tar 2536 | endif 2537 | ifneq (,$(wildcard $(MODDESTDIR)backup_rtlwifi_driver.tar)) 2538 | @tar xPf $(MODDESTDIR)backup_rtlwifi_driver.tar 2539 | @rm $(MODDESTDIR)backup_rtlwifi_driver.tar 2540 | endif 2541 | ifneq (,$(wildcard $(MODDESTDIR)../backup_rtlwifi_driver.tar)) 2542 | @tar xPf $(MODDESTDIR)../backup_rtlwifi_driver.tar 2543 | @rm $(MODDESTDIR)../backup_rtlwifi_driver.tar 2544 | endif 2545 | @/sbin/depmod -a ${KVER} 2546 | @echo "Please reboot your system" 2547 | 2548 | config_r: 2549 | @echo "make config" 2550 | /bin/bash script/Configure script/config.in 2551 | 2552 | 2553 | .PHONY: modules clean 2554 | 2555 | clean: 2556 | #$(MAKE) -C $(KSRC) M=$(shell pwd) clean 2557 | cd hal ; rm -fr */*/*/*.mod.c */*/*/*.mod */*/*/*.o */*/*/.*.cmd */*/*/*.ko 2558 | cd hal ; rm -fr */*/*.mod.c */*/*.mod */*/*.o */*/.*.cmd */*/*.ko 2559 | cd hal ; rm -fr */*.mod.c */*.mod */*.o */.*.cmd */*.ko 2560 | cd hal ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko 2561 | cd core ; rm -fr */*.mod.c */*.mod */*.o */.*.cmd */*.ko 2562 | cd core ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko 2563 | cd os_dep/linux ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko 2564 | cd os_dep ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko 2565 | cd platform ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko 2566 | rm -fr Module.symvers ; rm -fr Module.markers ; rm -fr modules.order 2567 | rm -fr *.mod.c *.mod *.o .*.cmd *.ko *~ 2568 | rm -fr .tmp_versions 2569 | endif 2570 | --------------------------------------------------------------------------------