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 初始化加載是否合理?