部分参照https://blog.csdn.net/weixin_44498318/article/details/126810994,实际测试中碰到问题,对流程有所改动,因此发出。
使用两台ubuntu电脑测试,测试指令已经过验证。
1. 配置文件
1.1. p2p.conf
ctrl_interface=/var/run/wpa_supplicant
update_config=1
device_name=TEST_GO
device_type=10-0050F204-5 #如果没有这个信息部分手机pin方式不能连接 不弹出pin输入窗口
#config_methods=virtual_display keypad #pin方式
config_methods=virtual_display keypad virtual_push_button #pbc方式 实测对使用指令连接的case这个config可以兼容pin和pbc 只对手机有影响
p2p_go_ht40=1
p2p_no_group_iface=1 #启用之后使用p2p_add_group不会创建新的网卡接口
1.2. /etc/dhcp/dhcpd.conf
#添加以下内容
subnet 192.168.43.0 netmask 255.255.255.0 {
range 192.168.43.2 192.168.43.22;
option domain-name-servers 192.168.43.1;
# option domain-name "internal.example.org";
option subnet-mask 255.255.255.0;
option routers 192.168.43.1;
option broadcast-address 198.168.43.255;
default-lease-time 6000;
max-lease-time 72000;
}
#如果启动出现问题,检查前面是否有其他subnet配置,如果有将其注释掉。
1.3. /etc/default/isc-dhcp-server
#修改以下内容
INTERFACESv4="wlan0"
2.指令流程
启动supplicant
wpa_supplicant -i wlan0 -c p2p.conf
2.1. 协商
1.1 PIN码方式加入
Steps | 设备1 (Client) | 设备2(Go) |
1 | wpa_cli | wpa_cli |
2 | p2p_find | |
3 | p2p_find | |
4 | p2p_connect 00:01:02:03:04:05 pin auth go_intent=1 得到随机pin 或用以下指令自定义pin p2p_connect 00:01:02:03:04:05 <pin> display auth go_intent=1 | 获取结果用于之后的连接 |
5 | p2p_connect 00:02:04:06:08:0b <pin> go_intent=15 |
1.2 PBC方式加入
Steps | 设备1 (Client) | 设备2(Go) |
1 | wpa_cli | wpa_cli |
2 | p2p_find | |
3 | p2p_find | |
4 | p2p_connect 00:01:02:03:04:05 pbc go_intent=1 | |
5 | p2p_connect 00:02:04:06:08:0b pbc go_intent=14 |
2.2. p2p_group_add 提前创建Group
2.1 PBC方式加入
Steps | 设备1 (GO) | 设备2(Client) |
1 | wpa_cli -i wlan0 p2p_group_add | wpa_cli |
2 | p2p_find | |
3 | p2p_connect 00:02:04:06:08:0b pbc join | |
4 | wpa_cli -i wlan0 wps_pbc |
2.2 PIN码方式加入(from GO)
Steps | 设备1 (GO) | 设备2(Client) |
1 | wpa_cli -i wlan0 p2p_group_add | wpa_cli |
2 | wpa_cli -i wlan0 wps_pin any 得到随机pin 或用以下指令自定义pin wpa_cli -i wlan0 wps_pin any <pin> | |
3 | p2p_find | |
4 | p2p_connect 00:02:04:06:08:0b <pin> join |
2.3. dhcp
通过以上方法连接成功以后,可以通过以下方式分配ip。
Steps | 设备1 (GO) | 设备2(Client) |
5 | ifconfig wlan0 192.168.43.1 | |
6 | sudo systemctl restart isc-dhcp-server & sudo systemctl status isc-dhcp-server | |
7 | busybox udhcpc -i wlan0 | |
8 | ping 192.168.43.2 | ping 192.168.43.1 |