0
0
Fork 0
hgicf/fmac.sh

83 lines
2.6 KiB
Bash
Executable file
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#! /bin/sh
#interface name
IFNAME="hg0"
# ko file path
FMAC_KO_PATH="/lib/modules/3.10.14/kernel/drivers/net/wireless/hugeic/hgic_fmac/hgicf.ko"
USB_KO_PATH="/lib/modules/3.10.14/kernel/drivers/net/wireless/hugeic/utils/hgic_usb.ko"
SDIO_KO_PATH="/lib/modules/3.10.14/kernel/drivers/net/wireless/hugeic/utils/hgic_sdio.ko"
#read paramters from system.
AH_MODE=ap
AH_SSID=ah_test_ssid
AH_PSK=00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff
AH_KEY_MGMT=NONE
AH_FREQ_START=7600
AH_FREQ_END=7680
AH_BSS_BW=8
AH_TX_MCS=255
AH_CHAN_LIST=
#set default values
[ -z "$AH_MODE" ] && AH_MODE="ap"
[ -z "$AH_FREQ_START" ] && AH_FREQ_START="7800"
[ -z "$AH_FREQ_END" ] && AH_FREQ_END="8000"
[ -z "$AH_BSS_BW" ] && AH_BSS_BW="8"
[ -z "$AH_TX_MCS" ] && AH_TX_MCS="7"
[ -z "$AH_CHANNEL" ] && AH_CHANNEL="1"
[ -z "$AH_ACS" ] && AH_ACS="0"
[ -z "$AH_ACS_TM" ] && AH_ACS_TM="10"
[ -z "$AH_TX_POWER" ] && AH_TX_POWER="1"
[ "$AH_MODE" == "sta" ] && AH_ACS="0"
[ "$AH_ACS" == "1" ] && AH_CHANNEL="1"
#insmod driver
ko_exist=$(lsmod|grep hgicf)
if [ -z "$ko_exist" ]; then
[ -n "$FMAC_KO_PATH" ] && insmod $FMAC_KO_PATH $ARG_IF_TEST
[ -n "$SDIO_KO_PATH" ] && insmod $SDIO_KO_PATH
[ -n "$USB_KO_PATH" ] && insmod $USB_KO_PATH
sleep 1
fi
#set param
CONN_STATE=$(cat /proc/hgic/conn_state|grep CONNECTED)
if [ -z "$CONN_STATE" ]; then
ifconfig $IFNAME down
iwpriv $IFNAME set freq_range=$AH_FREQ_START,$AH_FREQ_END,$AH_BSS_BW
iwpriv $IFNAME set mode=$AH_MODE
iwpriv $IFNAME set bss_bw=$AH_BSS_BW
iwpriv $IFNAME set tx_mcs=$AH_TX_MCS
iwpriv $IFNAME set tx_power=$AH_TX_POWER
iwpriv $IFNAME set channel=$AH_CHANNEL
iwpriv $IFNAME set acs="$AH_ACS,$AH_ACS_TM"
if [ x"$AH_KEY_MGMT" == "xWPA-PSK" ]; then
iwpriv $IFNAME set key_mgmt=WPA-PSK
iwpriv $IFNAME set wpa_psk=$AH_PSK
else
iwpriv $IFNAME set key_mgmt=NONE
fi
iwpriv $IFNAME set ssid=$AH_SSID
#save config
iwpriv $IFNAME save
[ "$AH_BSS_BW" == "1" ] && ifconfig $IFNAME mtu 380
fi
#up interface
ifconfig $IFNAME up
############################################################
# 可以设置驱动参数文件由驱动自动加载参数需要如下3个步骤
# 1. 生成参数文件:/etc/hgicf.conf内容如下
# freq_range=9000,9240,8
# mode=ap
# ssid=ah_test_ssid
# key_mgmt=WPA-PSK
# wpa_psk=00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff
# [以上参数是最基本的参数设置,其他参数设置请参考 Linux开发指南]
#
# 2. insmod 驱动
# 3. ifconfig up 接口
###########################################################