天天看點

wifi系列------初始化

WiFi 初始化

1、産測模式下的 wifi 初始化

主要作用:一是驗證無線訓示燈按鍵,二是做無線校準,三是無線吞吐測試(抽檢 20%)

産測模式 wifi 初始化特點:

(1)無線啟動加載快---->通過腳本啟動無線,不加載 上層wifi配置程序

(2)産測模式下無線參數配置固定—>主要是便于無線吞吐測試

産測模式 bcm 加載流程:

(1)、加載預設預配置,啟動無線

nvram loaduserfile /fhrom/bin/wifi.txt 
nvram commit 
nvram restart 
ifconfig wl0 hw ether ${wl0_mac} 
ifconfig wl1 hw ether ${wl1_mac} 
brctl addif br0 wl0 
brctl addif br0 wl1 
           

(2)、通過指令配置無線參數

#2.4g 固定信道 6,20MHz 頻寬,OPEN 模式

wlconf wl0 up 
wl -i wl0 auth 0 
wl -i wl0 wpa_auth 0 
wl -i wl0 wsec 0 
wl -i wl0 ssid factory_test 
wl -i wl0 chanspec -c 6 -b 2 -w 20 -s 0 
wl -i wl0 down 
wl -i wl0 up 
#5g 固定信道 149,80M 頻寬,OPEN 模式 
wlconf wl1 down 
wlconf wl1 up 
wl -i wl1 auth 0 
wl -i wl1 wpa_auth 0 
wl -i wl1 wsec 0 
wl -i wl1 ssid factory_test_5g 
wl -i wl1 chanspec 149/80 
wl -i wl1 down 
wl -i wl1 up 
ifconfig wl0 up
ifconfig wl1 up
           

bcm sdk中無線參數加載過程

(1)、wlconf wl0 up

調用函數:int wlconf(char *name)

作用:将nvram中的配置參數讀入到驅動

(2)、wlconf wl0 security

調用函數:int wlconf_security(char *name)

作用:将nvram中的加密參數讀入到驅動

(3)、wlconf wl0 start

調用函數:int wlconf_start(char *name)

作用:将nvram中的參數讀入到驅動,與wlconf wl0 up類似,但是加載的參數側重點不同

(4)、wl -i wl0 bss -C 0 up

作用:生效無線

調用函數:

wl -i wl0 bss -C 0 up

impl63/main/src/wl/exe/wlu_linux.c 
----->main() 
      ------->wl_option(&argv, &ifname, &help) 
           

wl -i wl0 bss -C 0 up

impl63/main/src/wl/exe/wluc_ap.c
 ----->wl_bsscfg_enable(void *wl, cmd_t *cmd, char **argv) 
           

wl -i wl0 bss -C 0 up

------>WLC_AP_IOV_OP_ENABLE
        ----->wlu_iovar_set(wl, val_name, &bss_setbuf, sizeof(bss_setbuf)) 
        <-----wlc_ap_iovars={"bss", IOV_BSS,(0), 0, IOVT_INT32, 0}, (/src/wl/sys/wlc_ap.c) 
        ------->wlc_ap_doiovar() (/src/wl/sys/wlc_ap.c) 
               ------>wlc_bsscfg_enable(wlc, bsscfg); (/src/wl/wys/wlc_bsscfg.c) 
           
----->main() 
        ----->wlu_init(void):注冊指令行清單(wlu.c) 
        ----->wluc_ap_module_init(void): bss 指令行注冊(wluc_ap.c)
           

三、無線初始化問題探讨

1、mtk 無線參數的加載方式以及 bcm 的加載方式差異?

mtk 的無線參數都是在 apcfg 配置檔案中,也就是類似 bcm 的 wifi.txt

mtk 起無線是通過 ifconfig 拉起主接口進行初始化,bcm 是通過 wl 指令拉起接口

2、mtk 跟 bcm 初始化耗時問題

mtk 加載速度較 bcm 要長:

(1)、配置檔案的加載方式

(2)、bcm 很多事件的處理放到了 eapd 中

(3)、bcm 自動信道選擇放到了 acsd 中

3、如何優化?

可以從如下兩個方向優化mtk的啟動時間:

(1)、mtk在執行ifconfig ra0 up之前,将apcfg配置檔案中的參數讀入到驅動,将up接口以及讀配置到驅動分開,同時加快讀取配置檔案的速度

(2)、将耗時較大的自動信道選擇單獨出來,不要在初始加載無線配置的時候進行無線信道掃描操作

4、裝置啟動時 wps 按鍵時機?開啟 easymesh 之後呢?

(1)、在沒有開啟easymesh時,無論是mtk還是bcm在無線訓示燈亮起來後,無線一般以正常工作,此時根據無線訓示燈亮起為信号操作wps按鈕一般不會出什麼問題,使用者也比較容易接受;

(2)、無論mtk還是bcm,在開啟easymesh之後,無線的啟動時間較長,或者說配置完成到easymesh相關程序準備完畢所需要的時間較長,使用者在配置完無線參數後,不清楚什麼時候按wps組網按鍵比較合适

5、探讨不同晶片 easymesh 初始化加載是否合理?

繼續閱讀