在Raspberry Pi中几秒钟后,Wifi直接连接会自动断开连接

问题描述 投票:4回答:2

我在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. 几秒钟后连接自动断开连接
  2. 当我尝试重新连接Android设备时,它会永久显示邀请(但在2个Android设备之间断开和连接n次工作正常并且连接没有断开连接)。只有在终止wpa请求者后才能连接到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
android raspberry-pi3 wifi-direct raspbian-stretch
2个回答
3
投票

您的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。


0
投票

我现在正在运行几乎相同的场景,请按照第一部分进行操作

将Raspberry Pi设置为独立网络(NAT)中的访问点

在此链接上,为了在Pi上安装/配置DHCP服务:

https://www.raspberrypi.org/documentation/configuration/wireless/access-point.md

顺便说一句,如果它适合你,请你分享运行dhcp和启用wifi p2p的顺序,因为我在启用dhcp后遇到p2p问题。

© www.soinside.com 2019 - 2024. All rights reserved.