最近在一个客户那边调试基于p2p的wifi display, 一半都是在Android上去调这个,所以之前也没有过多研究整个p2p连接流程, 而客户现在用的是非Android平台架构, 很多东西需要协助客户debug
之前debug wifi 连接时用到了wpa_cli 来协助调试连接,那p2p怎么去调试呢? 可以用wpa_cli协助调试吗?
查看了代码有了肯定的答案, 命令中有p2p_find , p2p_connect , p2p_stop_find ...很多命令
那这些命令怎么使用呢?
首先你编译wpa_supplicant 时候需要配置CONFIG_P2P这个宏,
run wpa_supplicant
wpa_supplicant -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf -N -iwlan0 -c/data/misc/wifi/wpa_supplicant.conf
用wpa_cl连接你的你的wpa_supplicant p2p deamon
wpa_cli -ip2p0
连线流程
>p2p_find
启动p2p 扫面设备, 如果扫描到p2p设备, wpa_supplciant 会发一个P2P_EVENT_DEVICE_FOUND给wpa_cli提示已经扫描到p2p设备了 可以去连线了
>p2p_connect device_mac pbc
表示用push button connect的方式进行p2p 连接, 中间填写扫到设备的mac地址,此时另一端(Android手机)会弹出对话框提示是否连接,点击连接,此时就正式进入P2P FORMATION 阶段,待NEGO SUCCESS, 就会见GO 与CLI, 由CLI连线GO.
over
结束流程:
>p2p_stop_find
顾名思义结束p2p扫描发现设备
>disconnect 断线
>p2p_group_remove 删除之间建立的p2p_group
>p2p_flush 清除p2p 相关状态