如何使用wpa_supplicant及wpa_cli 创建p2p
如何使用wpa_supplicant及wpa_cli 创建p2p
- 1. p2p_connect 方式协商P2P
- 1.1 PIN码方式加入
- 1.2 PBC方式加入
- 2. p2p_group_add 方式提前创建Group 组
- 2.1 PBC方式加入
- 2.2 PIN码方式加入(from GO)
- 2.3 PIN码方式加入(from Client)
- 2.4 Invite方式加入
- 3. dnsmasq.conf 及 wpa_supplicant.conf 内容
- 3.1 dnsmasq.conf
- 3.2 wpa_supplicant.conf
最近在搞linux 系统的p2p,特此简单总结下。
1. p2p_connect 方式协商P2P
使用p2p_connect的方式,其完整命令如下:
wpa_supplicant -B -i wlan0 -c /data/cfg/wpa_supplicant.conf
wpa_cli
p2p_find
p2p_connect 52:7c:85:b2:de:34 pbc go_intent=1 (当go_intent=15时,强制当前设备为GO角色)
p2p_group_remove p2p-wlan0-0
完整示例如下:
[root:/]# wpa_supplicant -B -i wlan0 -c /data/cfg/wpa_supplicant.conf
Successfully initialized wpa_supplicant
[root:/]# wpa_cli
Selected interface 'p2p-dev-wlan0'
// 1. 使能p2p 且允许被其他设备搜索到
> p2p_find
OK
<3>P2P-DEVICE-FOUND 7e:76:68:0e:d7:d9 p2p_dev_addr=7e:76:68:0e:57:d9 pri_dev_type=10-0050F204-5 name='HUAWEI Mate 20 Pro (UD)' config_methods=0x188 dev_capab=0x25 group_capab=0x2b vendor_elems=1 new=1// 2. 当其他设备搜索到当前设备时,会发起连接请求
<3>P2P-GO-NEG-REQUEST 52:7c:85:b2:de:34 dev_passwd_id=4 go_intent=14// 3. 收到连接请求后通过 p2p_connect 连接其mac, 角包为两者协商
> p2p_connect 52:7c:85:b2:de:34 pbc go_intent=1
OK
<3>P2P-FIND-STOPPED// 4. 协商结果,当前设备为 client角色,其他设备为 GO角色
<3>P2P-GO-NEG-SUCCESS role=client freq=5180 ht40=1 peer_dev=52:7c:85:b2:de:34 peer_iface=72:ec:4b:ac:5a:53 wps_method=PBC
<3>P2P-GROUP-FORMATION-SUCCESS
<3>P2P-GROUP-STARTED p2p-wlan0-0 client ssid="DIRECT-UC-HUAWEI Mate 30 Pro" freq=5180 psk=96ffd94980aa6e6d103d01af20a293d5d566bd49e68b29f110e10df537ad7306 go_dev_addr=52:7c:85:b2:de:34 [PERSISTENT]// 5. 断开连接
> p2p_group_remove p2p-wlan0-0
OK
<3>P2P-GROUP-REMOVED p2p-wlan0-0 client reason=REQUESTED
注意,当 go_intent=15 时,说明强制当前设备为Go角色。
> p2p_find
OK
<3>P2P-DEVICE-FOUND 52:7c:85:b2:de:34 p2p_dev_addr=52:7c:85:b2:de:34 pri_dev_type=10-0050F204-5 name='HUAWEI Mate 30 Pro' config_methods=0x188 dev_capab=0x25 group_capab=0x0 vendor_elems=1 new=0<3>P2P-INVITATION-RECEIVED sa=52:7c:85:b2:de:34 go_dev_addr=82:c5:f2:a9:32:1d unknown-network
<3>P2P-GO-NEG-REQUEST 52:7c:85:b2:de:34 dev_passwd_id=4 go_intent=14> p2p_connect 52:7c:85:b2:de:34 pbc go_intent=15
OK
<3>P2P-FIND-STOPPED
<3>P2P-GO-NEG-SUCCESS role=GO freq=5200 ht40=1 peer_dev=52:7c:85:b2:de:34 peer_iface=82:ba:1c:59:35:ba wps_method=PBC
<3>P2P-GROUP-FORMATION-SUCCESS
<3>P2P-GROUP-STARTED p2p-wlan0-2 GO ssid="DIRECT-VZ" freq=5200 passphrase="LRVoCUqG" go_dev_addr=82:c5:f2:a9:32:1d
<3>AP-STA-CONNECTED 82:ba:1c:59:35:ba p2p_dev_addr=52:7c:85:b2:de:34
1.1 PIN码方式加入
Steps | 设备1 (Client) | 设备2(Go) |
---|---|---|
1 | wpa_cli | wpa_cli |
2 | p2p_find | |
3 | p2p_find | |
4 |
p2p_connect 82:ba:1c:59:35:ba pin go_intent=1 示例:10632994 |
|
5 | p2p_connect 52:7c:85:b2: de:34 10632994 go_intent=15 | |
6 | ifconfig p2p-wlan0-0 169.254.108.49 netmask 255.255.0.0 | ifconfig p2p-wlan0-0 169.254.108.1 netmask 255.255.0.0 |
7 | ping 169.254.108.1 | ping 169.254.108.49 |
1.2 PBC方式加入
Steps | 设备1 (Client) | 设备2(Go) |
---|---|---|
1 | wpa_cli | wpa_cli |
2 | p2p_find | |
3 | p2p_find | |
4 | p2p_connect 82:ba:1c:59:35:ba pbc go_intent=1 | |
5 | p2p_connect 52:7c:85:b2: de:34 pbc go_intent=14 | |
6 | ifconfig p2p-wlan0-0 169.254.108.49 netmask 255.255.0.0 | ifconfig p2p-wlan0-0 169.254.108.1 netmask 255.255.0.0 |
7 | ping 169.254.108.1 | ping 169.254.108.49 |
2. p2p_group_add 方式提前创建Group 组
2.1 PBC方式加入
Steps | 设备1 (GO) | 设备2(Client) |
---|---|---|
1 | wpa_cli | wpa_cli |
2 | p2p_group_add | |
3 | Ctrl-c to exit | |
4 | ifconfig p2p-wlan0-0 169.254.108.1 netmask 255.255.0.0 | |
5 | dnsmasq -C /data/bin/dnsmasq.conf --interface=p2p-wlan0-0 --no-dhcp-interface=usb0 | |
6 | p2p_find | |
7 | p2p_connect 82:ba:1c:59:35:ba pbc join | |
8 | wpa_cli -i p2p-wlan0-0 wps_pbc | Ctrl-c to exit |
9 | ping 169.254.108.49 | ping 169.254.108.1 |
2.2 PIN码方式加入(from GO)
Steps | 设备1 (GO) | 设备2(Client) |
---|---|---|
1 | wpa_cli | wpa_cli |
2 | p2p_group_add | |
3 | Ctrl-c to exit | |
4 |
wpa_cli -i p2p-wlan0-0 wps_pin any (shows <pin>,如: 73077947) |
|
5 | ifconfig p2p-wlan0-0 169.254.108.1 netmask 255.255.0.0 | |
6 | dnsmasq -C /data/bin/dnsmasq.conf --interface=p2p-wlan0-0 --no-dhcp-interface=usb0 | |
7 | p2p_find | |
8 | p2p_connect 82:ba:1c:59:35:ba 73077947 join | |
9 | wpa_cli -i p2p-wlan0-0 wps_pbc | Ctrl-c to exit |
10 | ping 169.254.108.49 | ping 169.254.108.1 |
2.3 PIN码方式加入(from Client)
Steps | 设备1 (GO) | 设备2(Client) |
---|---|---|
1 | wpa_cli | wpa_cli |
2 | p2p_group_add | |
3 | Ctrl-c to exit | |
4 | ifconfig p2p-wlan0-0 169.254.108.1 netmask 255.255.0.0 | |
5 | dnsmasq -C /data/bin/dnsmasq.conf --interface=p2p-wlan0-0 --no-dhcp-interface=usb0 | |
6 | p2p_find | |
7 |
p2p_connect 82:ba:1c:59:35:ba pin join 示例:10632994 |
|
8 | wpa_cli -i p2p-wlan0-0 wps_pin any 10632994 | |
9 | ping 169.254.108.49 | ping 169.254.108.1 |
2.4 Invite方式加入
Steps | 设备1 (GO) | 设备2(Client) |
---|---|---|
1 | wpa_cli | wpa_cli |
2 | p2p_group_add | |
3 | Ctrl-c to exit | |
4 | ifconfig p2p-wlan0-0 169.254.108.1 netmask 255.255.0.0 | |
5 | dnsmasq -C /data/bin/dnsmasq.conf --interface=p2p-wlan0-0 --no-dhcp-interface=usb0 | |
6 | p2p_find | |
7 | p2p_invite group=p2p-p2p0-0 peer=82:ba:1c:59:35:ba | |
8 | p2p_connect 52:7c:85:b2: de:34 pbc join | |
9 | wpa_cli -i p2p-wlan0-0 wps_pbc | Ctrl-c to exit |
9 | ping 169.254.108.49 | ping 169.254.108.1 |
3. dnsmasq.conf 及 wpa_supplicant.conf 内容
3.1 dnsmasq.conf
user=root
interface=wlan0 p2p-dev-wlan0
#listen-address=127.0.0.1
dhcp-range=169.254.108.2,169.254.108.51
#server=8.8.8.8
3.2 wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
#update_config=1
device_name=p2p-5G-test
device_type=10-0050F204-5
config_methods=display push_button keypad virtual_push_button physical_display
p2p_add_cli_chan=1
p2p_go_ht40=1
pmf=1network={ssid="SSID"psk="PASSWORD"key_mgmt=WPA-PSKpriority=1
}network={ssid="DIRECT-p2p-5G-test"bssid=82:c5:f2:a9:32:1dpsk="123456789"proto=RSNkey_mgmt=WPA-PSKpairwise=CCMPauth_alg=OPENmode=3disabled=2
}ap_scan=1
network={ssid="TP-LINK_aaaa"psk="135246789"key_mgmt=WPA-PSKpriority=1
}
详细可参考:《Wi-Fi direct》
如何使用wpa_supplicant及wpa_cli 创建p2p相关推荐
- 【转】wpa_supplicant与wpa_cli之间通信过程
[转]wpa_supplicant与wpa_cli之间通信过程 转自:http://blog.chinaunix.net/uid-26585427-id-4051479.html wpa_suppli ...
- wpa_supplicant、wpa_cli的使用
wpa_supplicant工具包含wpa_supplicant和wpa_cli这2个程序,其中wpa_supplicant程序作为服务端在后台运行,服务wpa_cli客户端的请求,从而实现WiFi的 ...
- 【webrtc】所有 transport 的控制器 JsepTransportController:创建p2p传输通道
webrtc的p2p就是ice p2p通道就是ice通道 传输控制器JsepTransportController 在PC里. JsepTransportController 的 CreateIceT ...
- wpa_supplicant与wpa_cli之间通信过程
wpa_supplicant编译: 1. wpa_supplicant/Android.mk : -- wpa_cli -- wpa_supplicant -- libwpa_client.so 2. ...
- Android官方开发文档Training系列课程中文版:连接无线设备之通过WIFI创建P2P连接
原文地址:http://android.xsoftlab.net/training/connect-devices-wirelessly/wifi-direct.html#permissions Wi ...
- wpa_supplicant, wpa_cli用法
Android系统中对于WIFI的设置集成到了"设置"中,其实跟手动设置差不多.这里介绍下如何手动连接WIFI,以方便以后调试WIFI. 第一步要做的就是要加载WIFI模块驱动了. ...
- WiFi Direct 在wpa_supplicant中的流程一(初始化P2P)
P2P在wpa_supplicant中的初始化流程 WIFI-Driect在WPA_S中的初始化流程: 注册action wpas_p2p_init() 代码段1 wpas_p2p_init() 代码 ...
- wpa_supplicant wpa_cli 无线网络配置
目前可以使用wireless-tools 或wpa_supplicant工具来配置无线网络.请记住重要的一点是,对无线网络的配置是全局性的,而非针对具体的接口. wpa_supplicant是一个较好 ...
- 基于wpa_supplicant库的WIFI连接功能实现--wpa_cli命令解析
从这里开始,就正式进入到主题了,笔者分几节来介绍如何一点点实现基于wpa_supplicant库的WIFI连接功能.最终实现的就是类似于智能手机上的wifi连接界面功能.开发平台是linux3.2.0 ...
最新文章
- python做啥用-python主要用于做什么
- c# cookie帮助类
- Ajax Toolkit 控件学习系列(5) ——CalendarExtender使用
- python实用脚本 知乎_停课不停学|38 个免费 Python 项目合集,从小白到老司机!...
- React开发(125):ant design学习指南之form中的hasFeedback
- css,html走的坑:(1.2)
- 介绍一款基于SpringBoot开发OA开源产品
- 数据质量才是数据分析的关键
- 在 Hibernate 中出现 database product name cannot be null 时怎么解决?
- 算法——Java实现栈
- Android 开发 修改app应用的名字和图标
- 我在舒舍的短租生活之旅
- 测试人员的职业规划 --整理标注
- flutter 斗音页面
- 直方图实现快速中值滤波opencv
- 用手写板向计算机输入汉字是什么技术,使用手写板输入文字的简单介绍
- python 爬虫 处理429错误
- ssh远程连接发送命令行
- xp系统禁用wmi服务器,xp中哪些服务是可以关闭的
- 小猪佩奇python_python3 案例分享--小猪佩奇