我在Raspberry PI 2 B +中使用此配置进行wifi直接连接
ctrl_interface=DIR=/var/run/wpa_supplicant
driver_param=use_p2p_group_interface=1
update_config=1
device_name=Raspberry_pi
device_type=1-0050F204-1
p2p_go_intent=1
p2p_go_ht40=1
country=IN
然后启动wpa请求者使用
sudo wpa_supplicant -Dnl80211 -iwlan0 -c/etc/wpa_supplicant/p2p.conf -B
然后使用添加新组
sudo wpa_cli -iwlan0 p2p_group_add
然后使用设置IP
ifconfig p2p-wlan0-0 192.168.1.20
然后使用设置引脚
sudo wpa_cli -ip2p-wlan0-0 wps_pin any 0000
到目前为止,一切正常,我可以直接从Android设备通过wifi连接到Raspberry Pi。现在我面临两个问题,
编辑1:
当我重新启动wpa请求者并第一次连接时,这就是我在日志中获得的内容
CTRL-EVENT-EAP-STARTED 2a:3f:69:1d:ed:c5
<3>CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=1
<3>CTRL-EVENT-EAP-PROPOSED-METHOD vendor=14122 method=254
<3>WPS-REG-SUCCESS 2a:3f:69:1d:ed:c5 884efa75-0a98-52c6-85aa-07527f4a9c35
<3>WPS-SUCCESS
<3>CTRL-EVENT-EAP-FAILURE 2a:3f:69:1d:ed:c5
<3>AP-STA-CONNECTED 2a:3f:69:1d:ed:c5 p2p_dev_addr=2a:3f:69:1d:ed:c5
并在自动断开后
AP-STA-DISCONNECTED 2a:3f:69:1d:ed:c5 p2p_dev_addr=2a:3f:69:1d:ed:c5
如果我尝试重新连接而不重新启动,则会在控制台中打印出来
CTRL-EVENT-EAP-STARTED 2a:3f:69:1d:ed:c5
<3>CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=1
<3>CTRL-EVENT-EAP-PROPOSED-METHOD vendor=14122 method=254
<3>WPS-PIN-NEEDED 884efa75-0a98-52c6-85aa-07527f4a9c35 2a:3f:69:1d:ed:c5 [Xperia XA |MediaTek Inc.|MTK Wireless Model|1.0|2.0|10-0050F204-5]
<3>CTRL-EVENT-EAP-FAILURE 2a:3f:69:1d:ed:c5
您的Raspberry Pi可能属于P2P组所有者(GO)角色,因为您使用p2p_group_add
命令(自主GO)手动创建组,而不是让设备根据其GO意图值进行协商。你的配置中的p2p_go_intent=1
可能在这种情况下没有效果。
GO角色中的设备应运行DHCP服务器,以便为连接的P2P客户端分配IP地址。相应地,每个客户端应运行DHCP客户端以接收IP地址。
摘自Wi-Fi P2P技术规范第3.2.6.1节:
高层数据服务可以使用IP。 P2P组所有者应充当DHCP服务器,以向使用IP的连接的P2P客户端提供IP地址。 DHCP服务器至少应支持Internet协议版本4(IPv4)并分配IP地址,子网掩码......
...使用IP的P2P客户端应能够充当DHCP客户端。
注 - 虽然P2P设备可以为其作为P2P组所有者的每个P2P组选择不同的IP子网,但是连接到多个P2P组的P2P设备可能最终会出现冲突的子网。在IP子网的选择中使用随机分量可以降低(但不是消除)这种情况发生的可能性
我想你会发现Android设备正在等待通过DHCP接收IP配置,然后才能进入连接状态,如果没有发生则超时。
要使连接保持持久,需要将组创建为持久组。您应该能够在自主GO场景中使用p2p_group_add persistent
执行此操作。在协商的GO场景中,你应该能够做像p2p_connect <peer device address> <pbc|pin|PIN#|p2ps> [display|keypad|p2ps] persistent go_intent=15
这样的事情。有关更多详细信息,请参阅wpa_supplicant README-P2P:https://w1.fi/cgit/hostap/plain/wpa_supplicant/README-P2P。
最后,命令wps_pin any <PIN>
允许任何设备使用提供的PIN进行连接,但将PIN限制为一次性使用。使用wps_pin <address> <PIN>
表单或通过再次运行wps_pin any <PIN>
设置新的PIN。
我现在正在运行几乎相同的场景,请按照第一部分进行操作
将Raspberry Pi设置为独立网络(NAT)中的访问点
在此链接上,为了在Pi上安装/配置DHCP服务:
https://www.raspberrypi.org/documentation/configuration/wireless/access-point.md
顺便说一句,如果它适合你,请你分享运行dhcp和启用wifi p2p的顺序,因为我在启用dhcp后遇到p2p问题。