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


版权声明:本文为sky619351517原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。