Created
March 6, 2018 11:52
-
-
Save robimarko/a412109b7a6ea1e319b43f697d70ead2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# | |
# All wlan related stuff loading drivers and setting mac or other parameters etc. | |
# | |
# Greping these things here because other scripts might change this if it is initilize in generic script. | |
COUNTRY_CODE=`grep sysCountryRegion /var/config | awk '{print $2}'` | |
if [ ${PRODUCT_ID} = "WAC510" ]; then | |
if [ ${COUNTRY_CODE} = "5000" ]; then | |
# Copy BDF files for AUSTRALIA | |
${CP} -f /lib/firmware/IPQ4019/BDF/WAC510/AU/* /etc/firmware/ | |
elif [ ${COUNTRY_CODE} = "5001" ]; then | |
# Copy BDF files for CANADA | |
${CP} -f /lib/firmware/IPQ4019/BDF/WAC510/CA/* /etc/firmware/ | |
elif [ ${COUNTRY_CODE} = "156" ]; then | |
# Copy BDF files for CHINA | |
${CP} -f /lib/firmware/IPQ4019/BDF/WAC510/SRRC/* /etc/firmware/ | |
else | |
# Copy Default BDF file | |
${CP} -f /lib/firmware/IPQ4019/BDF/WAC510/DEFAULT/* /etc/firmware/ | |
fi | |
elif [ ${PRODUCT_ID} = "WAC505" ]; then | |
if [ ${COUNTRY_CODE} = "5000" ]; then | |
# Copy BDF files for AUSTRALIA | |
${CP} -f /lib/firmware/IPQ4019/BDF/WAC505/AU/* /etc/firmware/ | |
elif [ ${COUNTRY_CODE} = "5001" ]; then | |
# Copy BDF files for CANADA | |
${CP} -f /lib/firmware/IPQ4019/BDF/WAC505/CA/* /etc/firmware/ | |
elif [ ${COUNTRY_CODE} = "4015" ]; then | |
# Copy BDF files for JAPAN | |
${CP} -f /lib/firmware/IPQ4019/BDF/WAC505/JP/* /etc/firmware/ | |
else | |
# Copy Default BDF file | |
${CP} -f /lib/firmware/IPQ4019/BDF/WAC505/DEFAULT/* /etc/firmware/ | |
fi | |
fi | |
if [ ${WLAN_WITH_BASEMAC_N_COUNTRY} = "yes" ]; then | |
MAC=`${BDDATARD} ${MANUFAC_MTD_CHAR} ${MAC_OFFSET_4_WLAN0}` | |
fi | |
if [ ${WLAN_MAX_CLIENT_SUPPORT} = "yes" ]; then | |
for i in `seq 0 $(expr $NO_OF_RADIOS - 1)`;do | |
eval MAX_CLIENTS_${i}=`grep wlan${i}:maxWirelessClients /var/config | awk '{print $2}'` | |
done | |
fi | |
wlan_drv_err() | |
{ | |
if [ $1 != 0 ]; then | |
cecho red '[FAILED]' | |
exit | |
fi | |
} | |
validate_caldata() | |
{ | |
CAL_STS_24G=1 | |
CAL_STS_5G=1 | |
dd if=${ART_MTD_BLK} of=/tmp/24G_cal_test bs=1 skip=4096 count=6 | |
CAL_DATA_24G=`hexdump /tmp/24G_cal_test | head -n 1 | cut -d ' ' -f 2,3,4 | sed 's/ //g'` | |
if [ $CAL_DATA_24G = "ffffffffffff" ]; then | |
CAL_STS_24G=0 | |
fi | |
dd if=${ART_MTD_BLK} of=/tmp/5G_cal_test bs=1 skip=20480 count=6 | |
CAL_DATA_5G=`hexdump /tmp/5G_cal_test | head -n 1 | cut -d ' ' -f 2,3,4 | sed 's/ //g'` | |
if [ $CAL_DATA_24G = "ffffffffffff" ]; then | |
CAL_STS_5G=0 | |
fi | |
} | |
find_mtd_part() | |
{ | |
local PART="$(grep "\"$1\"" /proc/mtd | awk -F: '{print $1}')" | |
local PREFIX=/dev/mtdblock | |
PART="${PART##mtd}" | |
[ -d /dev/mtdblock ] && PREFIX=/dev/mtdblock/ | |
echo "${PART:+$PREFIX$PART}" | |
} | |
read_caldata_to_fs() | |
{ | |
TMP_DIR="/tmp" | |
VAR_DIR="/var" | |
ETC_DIR="/etc" | |
ART_MTD_BLK=$(find_mtd_part 0:ART) | |
[ -n "${ART_MTD_BLK}" ] || return | |
ART_MTD=`echo "${ART_MTD_BLK}" | cut -c 1-8,14,15` | |
validate_caldata | |
if [ ${CAL_STS_24G} = 1 ] && [ ${CAL_STS_5G} = 1 ]; then | |
if [ ! -e ${VAR_DIR}/wifi0.caldata ] || [ ! -e ${VAR_DIR}/wifi1.caldata ]; then | |
# Backup caldata in /var | |
dd if=${ART_MTD_BLK} of=${VAR_DIR}/wifi0.caldata bs=32 count=377 skip=128 | |
dd if=${ART_MTD_BLK} of=${VAR_DIR}/wifi1.caldata bs=32 count=377 skip=640 | |
fi | |
else | |
if [ ${PRODUCT_ID} = "WAC510" ]; then | |
echo "Calibration data missing!!" | |
cat ${ART_MTD_BLK} > /tmp/art.bin | |
if [ -e ${VAR_DIR}/wifi0.caldata ] && [ -e ${VAR_DIR}/wifi1.caldata ]; then | |
# Copy backup caldata to RAM | |
echo "Flashing backup Calibration data" | |
dd if=${VAR_DIR}/wifi0.caldata of=/tmp/art.bin bs=32 count=377 seek=128 conv=notrunc | |
dd if=${VAR_DIR}/wifi1.caldata of=/tmp/art.bin bs=32 count=377 seek=640 conv=notrunc | |
else | |
# Copy default caldata to RAM | |
echo "Flashing default Calibration data" | |
dd if=${ETC_DIR}/wifi0.default_caldata of=/tmp/art.bin bs=32 count=377 seek=128 conv=notrunc | |
dd if=${ETC_DIR}/wifi1.default_caldata of=/tmp/art.bin bs=32 count=377 seek=640 conv=notrunc | |
fi | |
# Erase and Write caldata to flash | |
flash_eraseall ${ART_MTD} | |
flashcp -v /tmp/art.bin ${ART_MTD} | |
fi | |
fi | |
# Read caldata from flash | |
dd if=${ART_MTD_BLK} of=${TMP_DIR}/wifi0.caldata bs=32 count=377 skip=128 | |
dd if=${ART_MTD_BLK} of=${TMP_DIR}/wifi1.caldata bs=32 count=377 skip=640 | |
} | |
AP_MODE=`grep wlan0:apMode /var/config | cut -d ':' -f 5 | cut -d ' ' -f 2` | |
if [ -d ${WLAN_MODULE_PATH} ]; then | |
ncecho 'Loading wlan modules. ' | |
if [ ${GEMINI_CODE_BASE} = "y" ] ; then | |
if [ ${CONFIG_BAND_STEERING=} = "yes" ]; then | |
${INSMOD} ${WLAN_MODULE_PATH}/band_steering.ko | |
wlan_drv_err $? | |
fi | |
${INSMOD} ${WLAN_MODULE_PATH}/asf.ko | |
wlan_drv_err $? | |
${INSMOD} ${WLAN_MODULE_PATH}/adf.ko | |
wlan_drv_err $? | |
${INSMOD} ${WLAN_MODULE_PATH}/ath_hal.ko | |
wlan_drv_err $? | |
if [ ${WLAN_DFS_SUPPORT} = "yes" ]; then | |
${INSMOD} ${WLAN_MODULE_PATH}/ath_dfs.ko | |
wlan_drv_err $? | |
fi | |
${INSMOD} ${WLAN_MODULE_PATH}/ath_rate_atheros.ko | |
wlan_drv_err $? | |
if [ ${WLAN_WITH_BASEMAC_N_COUNTRY} = "yes" ]; then | |
${INSMOD} ${WLAN_MODULE_PATH}/ath_dev.ko param_macaddr=${MAC} | |
else | |
${INSMOD} ${WLAN_MODULE_PATH}/ath_dev.ko | |
fi | |
wlan_drv_err $? | |
${INSMOD} ${WLAN_MODULE_PATH}/umac.ko | |
wlan_drv_err $? | |
sleep 2 | |
# Need to Change Country Code as Module Param SKandekar | |
if [ ${NO_OF_RADIOS} = 2 ]; then | |
iwpriv wifi0 setCountryID ${COUNTRY_CODE} | |
wlan_drv_err $? | |
iwpriv wifi1 setCountryID ${COUNTRY_CODE} | |
wlan_drv_err $? | |
else | |
iwpriv wifi0 setCountryID ${COUNTRY_CODE} | |
wlan_drv_err $? | |
fi | |
else | |
if [ ${FUSION_CODE_BASE} = "yes" ];then | |
if [ ${WLAN_WITH_BASEMAC_N_COUNTRY} = "yes" ]; then | |
${INSMOD} ${WLAN_MODULE_PATH}/ath_hal.ko macaddr=${MAC} | |
wlan_drv_err $? | |
else | |
${INSMOD} ${WLAN_MODULE_PATH}/ath_hal.ko | |
wlan_drv_err $? | |
fi | |
if [ ${SYS_USES_WLAN_GPIO} = "yes" ]; then | |
${INSMOD} ${WLAN_MODULE_PATH}/aws_gpio.ko | |
wlan_drv_err $? | |
fi | |
if [ ${WLAN_DFS_SUPPORT} = "yes" ]; then | |
${INSMOD} ${WLAN_MODULE_PATH}/ath_dfs.ko | |
wlan_drv_err $? | |
fi | |
${INSMOD} ${WLAN_MODULE_PATH}/ath_rate_atheros.ko | |
wlan_drv_err $? | |
if [ ${WLAN_MAX_CLIENT_SUPPORT} = "yes" ]; then | |
if [ ${NO_OF_RADIOS} = 2 ]; then | |
${INSMOD} ${WLAN_MODULE_PATH}/wlan.ko Max_client_if0=${MAX_CLIENTS_0} Max_client_if1=${MAX_CLIENTS_1} | |
wlan_drv_err $? | |
else | |
${INSMOD} ${WLAN_MODULE_PATH}/wlan.ko Max_client_if0=${MAX_CLIENTS_0} | |
wlan_drv_err $? | |
fi | |
else | |
${INSMOD} ${WLAN_MODULE_PATH}/wlan.ko | |
wlan_drv_err $? | |
fi | |
${INSMOD} ${WLAN_MODULE_PATH}/wlan_scan_ap.ko | |
wlan_drv_err $? | |
if [ ${CLIENT_MODE} = "yes" ]; then | |
if [ ${AP_MODE} = "5" ]; then | |
${INSMOD} ${WLAN_MODULE_PATH}/wlan_scan_sta.ko | |
wlan_drv_err $? | |
fi | |
fi | |
${INSMOD} ${WLAN_MODULE_PATH}/wlan_acl.ko | |
wlan_drv_err $? | |
${INSMOD} ${WLAN_MODULE_PATH}/wlan_wep.ko | |
wlan_drv_err $? | |
${INSMOD} ${WLAN_MODULE_PATH}/wlan_tkip.ko | |
wlan_drv_err $? | |
${INSMOD} ${WLAN_MODULE_PATH}/wlan_ccmp.ko | |
wlan_drv_err $? | |
${INSMOD} ${WLAN_MODULE_PATH}/wlan_xauth.ko | |
wlan_drv_err $? | |
${INSMOD} ${WLAN_MODULE_PATH}/ath_dev.ko | |
wlan_drv_err $? | |
if [ ${WLAN_WITH_BASEMAC_N_COUNTRY} = "yes" ]; then | |
${INSMOD} ${WLAN_MODULE_PATH}/ath.ko countrycode=${COUNTRY_CODE} | |
wlan_drv_err $? | |
else | |
${INSMOD} ${WLAN_MODULE_PATH}/ath.ko | |
wlan_drv_err $? | |
fi | |
else | |
if [ ${QCA_WIFI_10_4_CODEBASE} = "yes" ]; then | |
# Insert QCA WiFi 10.4 Dependencies first | |
${INSMOD} ${WLAN_MODULE_PATH}/qca-nss-gmac.ko | |
wlan_drv_err $? | |
${INSMOD} ${WLAN_MODULE_PATH}/qca-nss-drv.ko | |
wlan_drv_err $? | |
# Insert QCA WiFi 10.4 Drivers now | |
${INSMOD} ${WLAN_MODULE_PATH}/mem_manager.ko | |
wlan_drv_err $? | |
${INSMOD} ${WLAN_MODULE_PATH}/asf.ko | |
wlan_drv_err $? | |
${INSMOD} ${WLAN_MODULE_PATH}/adf.ko | |
wlan_drv_err $? | |
${INSMOD} ${WLAN_MODULE_PATH}/ath_dfs.ko | |
wlan_drv_err $? | |
${INSMOD} ${WLAN_MODULE_PATH}/ath_spectral.ko | |
wlan_drv_err $? | |
# Read the caldata to fs before loading umac | |
read_caldata_to_fs | |
${INSMOD} ${WLAN_MODULE_PATH}/umac.ko ${MFGMODE_MODPARAM} | |
wlan_drv_err $? | |
${INSMOD} ${WLAN_MODULE_PATH}/ath_hal.ko | |
wlan_drv_err $? | |
${INSMOD} ${WLAN_MODULE_PATH}/ath_rate_atheros.ko | |
wlan_drv_err $? | |
${INSMOD} ${WLAN_MODULE_PATH}/hst_tx99.ko | |
wlan_drv_err $? | |
${INSMOD} ${WLAN_MODULE_PATH}/ath_dev.ko | |
wlan_drv_err $? | |
${INSMOD} ${WLAN_MODULE_PATH}/qca_da.ko | |
wlan_drv_err $? | |
${INSMOD} ${WLAN_MODULE_PATH}/ath_pktlog.ko | |
wlan_drv_err $? | |
${INSMOD} ${WLAN_MODULE_PATH}/smart_antenna.ko | |
wlan_drv_err $? | |
if [ ${NO_OF_RADIOS} = 2 ]; then | |
ifconfig wifi0 down && ifconfig wifi1 down | |
wlan_drv_err $? | |
if [ ${PRODUCT_ID} = "WAC505" ]; then #enable DFS for JP and ETSI countries | |
if [ ${COUNTRY_CODE} = "5000" ] || [ ${COUNTRY_CODE} = "5001" ] || [ ${COUNTRY_CODE} = "156" ]; then | |
iwpriv wifi0 blockdfslist 1 | |
wlan_drv_err $? | |
fi | |
fi | |
iwpriv wifi0 setCountryID ${COUNTRY_CODE} && iwpriv wifi0 obss_rssi_th 35 | |
wlan_drv_err $? | |
if [ ${PRODUCT_ID} = "WAC505" ] ; then #enable DFS for JP and ETSI countries | |
if [ ${COUNTRY_CODE} = "5000" ] || [ ${COUNTRY_CODE} = "5001" ] || [ ${COUNTRY_CODE} = "156" ]; then | |
iwpriv wifi1 blockdfslist 1 | |
wlan_drv_err $? | |
fi | |
fi | |
iwpriv wifi1 setCountryID ${COUNTRY_CODE} && iwpriv wifi1 obss_rssi_th 35 | |
wlan_drv_err $? | |
ifconfig wifi0 up && ifconfig wifi1 up | |
wlan_drv_err $? | |
else | |
ifconfig wifi0 down | |
wlan_drv_err $? | |
if [ ${PRODUCT_ID} = "WAC505" ] ; then #enable DFS for JP and ETSI countries | |
if [ ${COUNTRY_CODE} = "5000" ] || [ ${COUNTRY_CODE} = "5001" ] || [ ${COUNTRY_CODE} = "156" ]; then | |
iwpriv wifi0 blockdfslist 1 | |
wlan_drv_err $? | |
fi | |
fi | |
iwpriv wifi0 setCountryID ${COUNTRY_CODE} && iwpriv wifi0 obss_rssi_th 35 | |
wlan_drv_err $? | |
ifconfig wifi0 up | |
fi | |
else | |
if [ ${WLAN_WITH_BASEMAC_N_COUNTRY} = "yes" ]; then | |
${INSMOD} ${WLAN_MODULE_PATH}/ath_hal.ko macaddr=${MAC} | |
wlan_drv_err $? | |
else | |
${INSMOD} ${WLAN_MODULE_PATH}/ath_hal.ko | |
wlan_drv_err $? | |
fi | |
${INSMOD} ${WLAN_MODULE_PATH}/asc.ko | |
wlan_drv_err $? | |
if [ ${SYS_USES_WLAN_GPIO} = "yes" ]; then | |
${INSMOD} ${WLAN_MODULE_PATH}/aws_gpio.ko | |
wlan_drv_err $? | |
fi | |
if [ ${WLAN_DFS_SUPPORT} = "yes" ]; then | |
${INSMOD} ${WLAN_MODULE_PATH}/ath_dfs.ko | |
wlan_drv_err $? | |
fi | |
${INSMOD} ${WLAN_MODULE_PATH}/ath_rate_atheros.ko | |
wlan_drv_err $? | |
if [ ${WLAN_MAX_CLIENT_SUPPORT} = "yes" ]; then | |
if [ ${NO_OF_RADIOS} = 2 ]; then | |
${INSMOD} ${WLAN_MODULE_PATH}/wlan.ko Max_client_if0=${MAX_CLIENTS_0} Max_client_if1=${MAX_CLIENTS_1} | |
wlan_drv_err $? | |
else | |
${INSMOD} ${WLAN_MODULE_PATH}/wlan.ko Max_client_if0=${MAX_CLIENTS_0} | |
wlan_drv_err $? | |
fi | |
else | |
${INSMOD} ${WLAN_MODULE_PATH}/wlan.ko | |
wlan_drv_err $? | |
fi | |
${INSMOD} ${WLAN_MODULE_PATH}/wlan_scan_ap.ko | |
wlan_drv_err $? | |
if [ ${CLIENT_MODE} = "yes" ]; then | |
if [ ${AP_MODE} = "5" ]; then | |
${INSMOD} ${WLAN_MODULE_PATH}/wlan_scan_sta.ko | |
wlan_drv_err $? | |
fi | |
fi | |
${INSMOD} ${WLAN_MODULE_PATH}/wlan_acl.ko | |
wlan_drv_err $? | |
${INSMOD} ${WLAN_MODULE_PATH}/wlan_wep.ko | |
wlan_drv_err $? | |
${INSMOD} ${WLAN_MODULE_PATH}/wlan_tkip.ko | |
wlan_drv_err $? | |
${INSMOD} ${WLAN_MODULE_PATH}/wlan_ccmp.ko | |
wlan_drv_err $? | |
${INSMOD} ${WLAN_MODULE_PATH}/wlan_xauth.ko | |
wlan_drv_err $? | |
if [ ${WLAN_WITH_BASEMAC_N_COUNTRY} = "yes" ]; then | |
${INSMOD} ${WLAN_MODULE_PATH}/ath.ko countrycode=${COUNTRY_CODE} | |
wlan_drv_err $? | |
else | |
${INSMOD} ${WLAN_MODULE_PATH}/ath.ko | |
wlan_drv_err $? | |
fi | |
fi | |
fi | |
if [ ${QCA_WIFI_10_4_CODEBASE} != "yes" ]; then | |
${INSMOD} ${WLAN_MODULE_PATH}/ath_${WLAN_BUS}.ko | |
wlan_drv_err $? | |
fi | |
fi | |
cecho green '[DONE]' | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment