树莓派 4b 和 Android 设备之间的 Wifi direct(Wifi P2P)连接只能在重新启动后才能实现

问题描述 投票:0回答:1

我正在尝试使用 pbc (virtual_push_button) 方法将我的 Raspberry Pi 4b 与我的 Android 设备(Google Pixel 6 和 Android 14)连接。如果 Raspberry Pi 刚刚重新启动,则连接不会出现问题。但是,如果我断开设备连接并删除 p2p-group(在本例中为 p2p-wlan0-1)并尝试使用相同的命令再次连接,则会收到以下错误:

P2P-GROUP-FORMATION-FAILURE

在我的设置中,我遵循了本指南: https://raspberrypi.stackexchange.com/questions/117238/connect-android-smartphone-with-wi-fi-direct-to-a-raspberry-pi

现在是我尝试连接设备时执行的步骤列表:
RPI:我使用 wpa_cli 在 Raspberry PI 上执行的操作(开始使用 wpa_cli -i p2p-dev-wlan0
AD:我在 Android 设备上做的事情

  1. AD-进入 Wifi-Direct 设置并确保设备正在搜索对等点
  2. RPI-找到同行并列出它们
p2p_find
p2p_peers
  1. RPI-确保找到的设备地址是 Android 设备:
p2p_peer <device-adress>
  1. AD-单击现在可见的 Raspberry Pi,状态显示“已邀请”

5.RPI-连接到设备

p2p_connect <device-adress> pbc

第一次,这就像一个魅力。从 wpa_cli 获取以下输出:

<3>CTRL-EVENT-SCAN-STARTED
<3>CTRL-EVENT-SCAN-STARTED
<3>P2P-DEVICE-FOUND 66:5d:70:17:a1:4e p2p_dev_addr=66:5d:70:17:a1:4e pri_dev_type=10-0050F204-5 name='Android_M6CV' config_methods=0x188 dev_capab=0x25 group_capab=0x0 new=1
<3>P2P-PROV-DISC-PBC-REQ 66:5d:70:17:a1:4e p2p_dev_addr=66:5d:70:17:a1:4e pri_dev_type=10-0050F204-5 name='Android_M6CV' config_methods=0x188 dev_capab=0x25 group_capab=0x0
<3>P2P-PROV-DISC-PBC-REQ 66:5d:70:17:a1:4e p2p_dev_addr=66:5d:70:17:a1:4e pri_dev_type=10-0050F204-5 name='Android_M6CV' config_methods=0x188 dev_capab=0x25 group_capab=0x0
<3>P2P-GO-NEG-REQUEST 66:5d:70:17:a1:4e dev_passwd_id=4 go_intent=6
<3>CTRL-EVENT-SCAN-STARTED 9:69 pbc
> p2p_connect 66:5d:70:17:a1:4e pbc
OK
<3>P2P-FIND-STOPPED
<3>P2P-GO-NEG-SUCCESS role=GO freq=5200 ht40=1 peer_dev=66:5d:70:17:a1:4e peer_iface=ce:af:bd:69:40:c0 wps_method=PBC
<3>CTRL-EVENT-SCAN-RESULTS
<3>P2P-GROUP-FORMATION-SUCCESS
<3>P2P-GROUP-STARTED p2p-wlan0-1 GO ssid="DIRECT-ER" freq=5200 passphrase="F1vHWtHI" go_dev_addr=da:3a:dd:97:2f:6a
<3>AP-STA-CONNECTED ce:af:bd:69:40:c0 p2p_dev_addr=66:5d:70:17:a1:4e

现在到了事情变得混乱的部分。
首先我删除 p2p_group:

> p2p_group_remove p2p-wlan0-1
OK
<3>P2P-GROUP-REMOVED p2p-wlan0-1 GO reason=REQUESTED
<3>AP-STA-DISCONNECTED ba:8a:83:c2:7d:9a p2p_dev_addr=42:f3:6b:24:42:33
<3>P2P-DEVICE-LOST p2p_dev_addr=42:f3:6b:24:42:33

现在我执行与上述完全相同的步骤,并从 wpa_cli 收到以下错误:

<3>P2P-PROV-DISC-PBC-REQ 6a:44:f4:3e:e9:69 p2p_dev_addr=6a:44:f4:3e:e9:69 pri_dev_type=10-0050F204-5 name='Android_M6CV' config_methods=0x188 dev_capab=0x25 group_capab=0x0
<3>P2P-DEVICE-FOUND 6a:44:f4:3e:e9:69 p2p_dev_addr=6a:44:f4:3e:e9:69 pri_dev_type=10-0050F204-5 name='Android_M6CV' config_methods=0x80 dev_capab=0x25 group_capab=0x2a new=0
<3>P2P-GO-NEG-REQUEST 6a:44:f4:3e:e9:69 dev_passwd_id=4 go_intent=6
<3>CTRL-EVENT-SCAN-STARTED 9:69 pbc
> p2p_connect 6a:44:f4:3e:e9:69 pbc
OK
<3>P2P-FIND-STOPPED
<3>P2P-GO-NEG-SUCCESS role=GO freq=5220 ht40=1 peer_dev=6a:44:f4:3e:e9:69 peer_iface=82:71:76:45:19:02 wps_method=PBC
<3>CTRL-EVENT-SCAN-RESULTS
<3>P2P-GROUP-FORMATION-FAILURE
<3>P2P-GROUP-REMOVED wlan0 GO reason=FORMATION_FAILED

我还确保禁用了 wpa_supplicant.service 并启用了 [电子邮件受保护]

为什么会发生这种情况?为什么重启树莓派就可以了?
是否还有其他像 NetworkManager 这样的服务会搞乱系统?

感谢任何帮助并提前致谢:D

配置文件:
/etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

/etc/wpa_supplicant/wpa_supplicant-wlan0.config

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=DE
device_name=DIRECT-RasPi1
config_methods=virtual_push_button
# this on p2p_connect commands.
p2p_go_intent=15
# In order to support 802.11n for the p2p Group Owner
p2p_go_ht40=1

# Device type
#   6-0050F204-1 (Network Infrastructure / AP)
device_type=6-0050F204-1
driver_param=p2p_device=6

/etc/systemd/network/12-p2p-wlan0.network

[Match]
Name=p2p-wlan0-*
[Network]
Address=192.168.4.1/24
DHCPServer=yes
p2p raspberry-pi4 wifi-direct wpa-supplicant wps
1个回答
0
投票

不知怎的,由于频率为5GHz,它不起作用。我添加了 freq=2472 到 p2p_connect 命令,它工作得很好。仅在 2.4GHz 上,但这对我来说没问题。

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