您的位置:首页 > 移动开发 > Android开发

[RK3288][Android6.0] WiFi之wpa_supplicant初始化过程

2017-07-03 10:33 483 查看
Platform: Rockchip

OS: Android 6.0

Kernel: 3.10.92

主要结构体

流程说明

具体流程

参考

主要结构体:

wpa_interface: 每个网络接口的表示,可以支持多个

wpa_supplicant: 每个网络接口相对一个

wpa_params: 记录与网络接口无关的一些参数

wpa_global: 包含所有信息

流程说明:

2.1 main()

a. wpa_supplicant_init(), 初始化WPAS

b. wpa_supplicant_add_iface(), 添加网络接口

c. wpa_supplicant_run(), 运行处理收发消息

2.2 wpa_supplicant_init()

a. eap_register_methods() 注册EAP方法

b. 申请struct wpa_global内存

c. 设置wpa_global中的wpa_params中的参数

d. wpa_supplicant_global_ctrl_iface_init(), 初始化wpa_global中的ctrl_interface

e. wifi_display_init(), wifi display 初始化

2.3 wpa_supplicant_add_iface()

a. wpa_supplicant_alloc(), 分配struct wpa_supplicant

b. wpa_supplicant_init_iface(), 网络初始化工作,包括读取配置文件,初始化驱动,创建和driver通信的netlink,获取硬件特性以及能力,wpa,控制接口,bss, eapol初始化

c. wpa_supplicant_ctrl_iface_init(), 创建和Framework通信的socket

2.4 wpa_supplicant_run()

socket都是通过eloop_register_read_sock()接口来把回调函数注册到eloop循环中,一旦有event到来就能接收到

具体流程:



参考:

《深入理解Android Wi-Fi、NFC和GPS卷》

wpa_supplicant 的初始化
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: