wpa_cli P2P 连接相关调试命令

本文转载至:http://mojijs.com/2014/10/159711/index.html

 最近在一个客户那边调试基于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 -iwlan1 -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 -iwlan1

wpa_supplicant$ sudo ./wpa_cli -iwlan1
wpa_cli v2.0-devel_rtw_r8680.20130821
Copyright (c) 2004-2012, Jouni Malinen <j@w1.fi> and contributors
This software may be distributed under the terms of the BSD license.
See README for more details.
Interactive mode

连线流程

>p2p_find

启动p2p 扫面设备, 如果扫描到p2p设备, wpa_supplciant 会发一个P2P_EVENT_DEVICE_FOUND给wpa_cli提示已经扫描到p2p设备了 可以去连线了

>p2p_find
OK
<3>P2P-DEVICE-FOUND 16:b9:68:57:da:dep2p_dev_addr=16:b9:68:57:da:de pri_dev_type=10-0050F204-5 name=’HUAWEI C8816D_de36′ config_methods=0×188 dev_capab=0×24 group_capab=0×0
<3>CTRL-EVENT-SCAN-RESULTS
<3>WPS-AP-AVAILABLE
<3>CTRL-EVENT-SCAN-RESULTS
<3>WPS-AP-AVAILABLE

>p2p_connect device_mac pbc

表示用push button connect的方式进行p2p 连接, 中间填写扫到设备的mac地址,此时另一端(Android手机)会弹出对话框提示是否连接,点击连接,此时就正式进入P2P FORMATION 阶段,待NEGO SUCCESS, 就会建立GROUP 由CLI连线GROUP owner.

>p2p_connect 16:b9:68:57:da:de pbc
OK
<3>P2P-FIND-STOPPED
<3>P2P-DEVICE-FOUND 16:b9:68:57:da:de p2p_dev_addr=16:b9:68:57:da:de pri_dev_type=10-0050F204-5 name=’HUAWEI C8816D_de36′ config_methods=0×80 dev_capab=0×24 group_capab=0x2a
<3>P2P-GO-NEG-SUCCESS
<3>CTRL-EVENT-CONNECTED – Connection to 02:e0:4c:03:c0:86 completed (auth) [id=1 id_str=]
<3>CTRL-EVENT-STATE-CHANGE id=1 state=9 BSSID=02:e0:4c:03:c0:86 SSID=DIRECT-Ku
<3>CTRL-EVENT-EAP-STARTED 16:b9:68:57:da:de
<3>CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=1
<3>CTRL-EVENT-EAP-PROPOSED-METHOD vendor=14122 method=254
<3>WPS-REG-SUCCESS 16:b9:68:57:da:de 1d40cd60-67ab-58bd-9fb4-bc914d0fb25c
<3>P2P-GROUP-FORMATION-SUCCESS
<3>P2P-GROUP-STARTEDwlan1 GO ssid="DIRECT-Ku" freq=2412 passphrase="QM9ldAUy" go_dev_addr=02:e0:4c:03:c0:86
<3>WPS-SUCCESS
<3>AP-STA-CONNECTED 16:b9:68:57:da:de p2p_dev_addr=16:b9:68:57:da:de

over

结束流程:

>p2p_stop_find

顾名思义结束p2p扫描发现设备

>disconnect 断线

>p2p_group_remove 删除之间建立的p2p_group

>p2p_flush 清除p2p 相关状态


<think>嗯,用户问的是wpa_supplicant中的use_p2p_group_interface参数是什么意思。首先,我需要回忆一下wpa_supplicant的相关知识。wpa_supplicant是Linux和其他类Unix系统上用于支持WPAWPA2的守护进程,负责处理无线网络连接。用户提到的参数可能与Wi-Fi Direct(P2P)有关,因为P2P_group是创建群组网络的部分。 接下来,我需要确认use_p2p_group_interface的具体作用。查阅文档或源代码可能是一个办法,但可能比较耗时。根据经验,wpa_supplicant在管理P2P群组时,可能会创建虚拟接口来处理群组的连接。use_p2p_group_interface参数可能控制是否使用独立的网络接口来处理P2P群组。 可能的情况是,当这个参数设置为1时,每个P2P群组会有一个单独的接口(比如p2p-group0),这样可以更好地隔离不同的群组,管理更方便。而设置为0时,可能共享同一个接口,可能会影响多个群组同时运行时的稳定性。需要进一步确认默认值是什么,以及不同设置对系统的影响。 然后,用户的应用场景可能是在配置P2P功能时遇到问题,或者在优化多设备连接时的性能。比如,用户可能在使用Wi-Fi Direct进行文件传输或连接多个设备时,发现接口管理有问题,或者希望提高连接的稳定性。 需要注意的是,用户可能对wpa_supplicant的配置不太熟悉,因此解释时需要简明扼要,同时提供实际应用的例子,帮助他们理解如何调整这个参数。此外,可能需要提醒用户修改配置文件后需要重启服务或重新加载配置才能生效,以及不同版本之间参数的可能变化。 最后,要确保回答准确,避免误导用户。如果有不确定的地方,应该建议用户查阅官方文档或进行进一步测试。</think>以下是对 `wpa_supplicant` 中 `use_p2p_group_interface` 参数的详细解释: --- ### **基本定义** `use_p2p_group_interface` 是 `wpa_supplicant` 配置文件(如 `wpa_supplicant.conf`)中与 **Wi-Fi Direct(P2P)** 功能相关的一个配置项,用于控制是否**为每个 P2P 群组(Group)创建独立的虚拟网络接口**。 --- ### **核心作用** - **启用(`use_p2p_group_interface=1`)**: 每个 P2P 群组(例如设备作为 P2P Group Owner 或 Client)会分配一个独立的虚拟接口(如 `p2p-group0`、`p2p-group1`)。 - **优点**:隔离不同群组的流量,便于单独管理(如设置防火墙规则)。 - **典型场景**:需要同时运行多个 P2P 群组时(如设备同时作为多个群组的 Owner)。 - **禁用(`use_p2p_group_interface=0`)**: 所有 P2P 群组共享主无线接口(如 `wlan0`)。 - **缺点**:可能导致多群组操作时资源冲突或管理混乱。 - **典型场景**:仅需单个 P2P 群组的简单场景。 --- ### **技术细节** 1. **接口命名规则** - 独立接口默认命名为 `p2p-groupX`(X 为数字,从 0 开始递增)。 - 可通过 `p2p_group_add` 命令手动指定接口名(需结合 `persistent=1` 参数)。 2. **底层实现** - 依赖 Linux 内核的**虚拟接口(Virtual Interface)**支持。 - 每个虚拟接口独立运行 MAC 地址、IP 地址和网络配置。 3. **默认行为** - 在多数 `wpa_supplicant` 版本中,默认值为 `use_p2p_group_interface=1`(启用独立接口)。 --- ### **配置示例** ```plaintext # wpa_supplicant.conf 片段 ctrl_interface=/var/run/wpa_supplicant update_config=1 p2p_listen_reg_class=81 p2p_listen_channel=1 p2p_oper_reg_class=81 p2p_oper_channel=11 # 启用独立 P2P 群组接口 use_p2p_group_interface=1 ``` --- ### **实际应用建议** 1. **启用场景** - 设备需同时作为多个 P2P 群组的 Owner(如智能家居中枢)。 - 需要精细控制每个群组的网络策略(如 QoS 或流量监控)。 2. **禁用场景** - 仅需单一 P2P 连接(如手机与电视直连投屏)。 - 资源受限设备(避免虚拟接口占用额外内存)。 --- ### **常见问题** **Q1: 如何查看已创建的 P2P 群组接口?** 通过 `ifconfig` 或 `ip link show` 命令查看 `p2p-groupX` 接口状态。 **Q2: 接口创建失败的可能原因?** - 内核不支持虚拟接口(检查 `iw list` 输出中是否有 `valid interface combinations` 支持多接口)。 - 无线网卡驱动限制(部分老旧驱动仅支持单一接口)。 --- 若需进一步调试 P2P 功能,可通过以下命令观察日志: ```bash wpa_cli -i <接口名> log_level DEBUG ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值