pandorabox wifi驱动脚本分析

文件位置:/lib/wifi/rt2860v2.sh #!/bin/sh## by lintel@gmail.com, hoowa.sun@gmail.com## by memccpy@gmail.com 2014.8append DRIVERS "rt2860v2"prepare_config() {#获取参数 存储配置的变量 目标配置关键字 local num=0 mode di
摘要由CSDN通过智能技术生成

文件位置:/lib/wifi/rt2860v2.sh

#!/bin/sh
#
# by lintel@gmail.com, hoowa.sun@gmail.com
#
# by memccpy@gmail.com 2014.8

append DRIVERS "rt2860v2"

prepare_config() {
#获取参数 存储配置的变量 目标配置关键字

    local num=0 mode disabled

#准备产生RaX的无线配置
    local device=$1

#获取当前用户配置的无线Mac
    config_get macaddr $device macaddr

#获取当前的无线频道
    config_get channel $device channel

#获取当前的802.11无线模式
    config_get hwmode $device mode

#获取WMM支持
    config_get wmm $device wmm

#获取设备的传输功率
    config_get txpower $device txpower

#获取设备的HT(频宽)
    config_get ht $device ht

#获取国家代码 
    config_get country $device country

#是否有MAC过滤
    config_get macpolicy $device macpolicy

#MAC地址过滤列表
    config_get maclist $device maclist
#字符格式转义
    ra_maclist="${maclist// /;};"
#是否支持GREEN AP功能
    config_get_bool greenap $device greenap 0

    config_get_bool antdiv "$device" diversity

    config_get frag "$device" frag 2346

    config_get rts "$device" rts 2347

    config_get distance "$device" distance

    config_get hidessid "$device" hidden 0

#获取该Radio下面的虚拟接口    
    config_get vifs "$device" vifs

#获取虚拟接口的数量,并提前配置SSID
for vif in $vifs; do
    let num+=1
    config_get_bool disabled "$vif" disabled 0
    config_get mode "$vif" mode 0

    #如果某个SSID接口需要隐藏,则所有的接口都隐藏
    [ "$hidessid" == "0" ] && {
    config_get hidessid $vif hidden 0
    }

    #已经关闭的接口以及sta模式的排除在外。
    [ "$mode" = "sta" ]&& {
    let num-=1 
    continue
    }
    [ "$disabled" == "1" ]&& {
    let num-=1
    continue
    }

    case $num in
    1)
        config_get ssid1 "$vif" ssid
        ;;
    2)
        config_get ssid2 "$vif" ssid
        ;;
    3)
        config_get ssid3 "$vif" ssid
        ;;
    4)
        config_get ssid4 "$vif" ssid
        ;;
    *)
        ;;
    esac
done

#开始准备HT模式配置,注意HT模式仅在11N下有效。
    HT=1
    HT_CE=1

    if [ "$ht" = "20" ]; then
      HT=0 
    elif [ "$ht" = "20+40" ]; then
      HT=1 
      HT_CE=1
    elif [ "$ht" = "40" ] ; then
      HT=1 
      HT_CE=0
    else
    echo "ht config has some problem!use default!!!"
      HT=0
      HT_CE=1
    fi


    # 在HT40模式下,需要另外的一个频道,如果EXTCHA=0,则当前第二频道为$channel + 4.
    # 如果EXTCHA=1,则当前的第二频道为$channel - 4.
    # 如果当前频道被限制在1-4,则是当前频道+ 4,若否,则为当前频道-4 

    EXTCHA=1

    [ "$channel" != auto ] && [ "$channel" -lt "5" ] && EXTCHA=1

#配置自动选择无线频道
    [ "$channel" == "auto" ] && {
        channel=11
        AutoChannelSelect=2
    }

#开始判断WiFi的MAC过滤方式.
    case "$macpolicy" in
    allow|2)
    ra_macfilter=1;
    ;;
    deny|1)
    ra_macfilter=2;
    ;;
    *|disable|none|0)
    ra_macfilter=0;
    ;;
    esac

    cat > /tmp/RT2860.dat<<EOF
#The word of "Default" must not be removed
Default
CountryRegion=0
CountryRegionABand=7
CountryCode=${country:-US}
BssidNum=${num:-1}
SSID1=${ssid1:-OpenWrt_SSID1}
SSID2=${ssid2:-OpenWrt_SSID2}
SSID3=${ssid3:-OpenWrt_SSID3}
SSID4=${ssid4:-OpenWrt_SSID4}
SSID5=
SSID6=
SSID7=
SSID8=
WirelessMode=${hwmode:-9}
FixedTxMode=
TxRate=0
MacAddress=${macaddr}
Channel=${channel:-11}
BasicRate=15
BeaconPeriod=100
DtimPeriod=1
TxPower=${txpower:-100}
DisableOLBC=0
BGProtection=0
TxAntenna=
RxAntenna=
TxPreamble=1
RTSThreshold=${rts:-2347}
FragThreshold=${frag:-2346}
TxBurst=1
PktAggregate=1
AutoProvisionEn=0
FreqDelta=0
TurboRate=0
WmmCapable=${wmm:-0}
APAifsn=3;7;1;1
APCwmin=4;4;3;2
APCwmax=6;10;4;3
APTxop=0;0;94;47
APACM=0;0;0;0
BSSAifsn=3;7;2;2
BSSCwmin=4;4;3;2
BSSCwmax=10;10;4;3
BSSTxop=0;0;94;47
BSSACM=0;0;0;0
AckPolicy=0;0;0;0
APSDCapable=0
DLSCapable=0
NoForwarding=0
NoForwardingBTNBSSID=0
HideSSID=${hidessid:-0}
ShortSlot=1
AutoChannelSelect=${AutoChannelSelect:-0}
IEEE8021X=0
IEEE80211H=0
CarrierDetect=0
ITxBfEn=0
PreAntSwitch=
PhyRateLimit=0
DebugFlags=0
ETxBfEnCond=0
ITxBfTimeout=0
ETxBfTimeout=0
ETxBfNoncompress=0
ETxBfIncapable=0
FineAGC=0
StreamMode=0
StreamModeMac0=
StreamModeMac1=
StreamModeMac2=
StreamModeMac3=
CSPeriod=6
RDRegion=
StationKeepAlive=0
DfsLowerLimit=0
DfsUpperLimit=0
DfsOutdoor=0
SymRoundFromCfg=0
BusyIdleFromCfg=0
DfsRssiHighFromCfg=0
DfsRssiLowFromCfg=0
DFSParamFromConfig=0
FCCParamCh0=
FCCParamCh1=
FCCParamCh2=
FCCParamCh3
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值