linux - Wifi P2P 同时使用 wpa_supplicant 在树莓派 3 Raspbian 上保持 Wifi 连接

标签 linux wifi-direct wifip2p wpa-supplicant

我对这个话题很天真,所以请原谅我这边的愚蠢回复。 我想通过 Wifi Direct(或 P2P)将我的树莓派 3 连接到我的安卓手机,同时保持其正常的 wifi 连接。每当我运行 wpa_cli 命令时,它都会断开与正常 wifi 连接的连接,而 P2P 命令工作正常。我知道这是可能的,因为所有最近的 android 都具有此功能。我尝试为此在互联网上搜索很多,但似乎没有人讨论这个。我的 wpa_supplicant.conf 是 -

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
device_name=RPi_3
device_type=1-0050F204-1
country=GB

network={
        ssid="Sarthak"
        psk="sam.s.home_9h"
        key_mgmt=WPA-PSK
}

冷启动后,我通常在没有任何 wpa_supplicant 命令的情况下开始使用 wpa_cli,所以这可能就是问题所在。你可能已经判断出我的知识是多么的匮乏,所以请简单地解释一下为什么会这样。

最佳答案

我认为这取决于您如何使用 wpa_cli 设置连接。您没有提到发出的命令,但我认为您使用的是以下命令:

wpa_cli -i wlan0 list_networks # list all configured networks; in you example, you appeared to have just defined network n. 0
wpa_cli -i wlan0 select_network 0

select_network 0命令不使用 P2P,它只是将 Raspberry Pi 连接到网络配置文件 0 中定义的接入点。

或者,您可能已经使用例如以下命令创建了第二个网络:

wpa_cli -i wlan0 add_network # this returns the new network profile number; let us consider that 1 is returned
wpa_cli -i wlan0 set_network 1 ssid \"MYSSID\"
wpa_cli -i wlan0 set_network 1 psk \"passphrase\"
wpa_cli -i wlan0 enable_network 1 # alternatively to these commands, you might have added a new network profile by editing wpa_supplicant.conf
wpa_cli -i wlan0 list_networks # in this example, we added network 1
wpa_cli -i wlan0 save_config # optional command to save the newly defined network profile 1 into wpa_supplicant.conf
wpa_cli -i wlan0 select_network 1 # this leaves network 0 and connects to network 1

这些命令再次不使用 P2P,只是将 Raspberry Pi 的连接从网络配置文件 0 中定义的接入点切换到配置文件 1 中定义的另一个 AP。

Wi-Fi Direct 使用不同的 wpa_cli 命令,并允许兼容设备形成临时通信组,而不会中断传统的基于接入点的 Wi-Fi 通信。

你应该改变device_name=RPi_3device_name=DIRECT-RPi_3 .

然后您可以使用 wpa_cli -i p2p-dev-wlan0 p2p_connect <addr> <8-digit password> display与 Android 设备协商群组。或者,您可以定义自治组或持久组。

组协商模式示例:

wpa_cli -i p2p-dev-wlan0
set config_methods keypad
p2p_find
p2p_connect <addr> <8-digit password> display

持久组模式示例(假设 p2p_group_add 创建组 p2p-wlan0-0):

wpa_cli -i p2p-dev-wlan0
set config_methods keypad
set_network 0 mode 3
set_network 0 disabled 2
p2p_group_add persistent=0
interface p2p-wlan0-0

使用安卓设备的Wi-Fi Direct接口(interface),选择DIRECT-RPi_3。 通过 Android 智能手机的键盘面板输入 PIN 码 00000000 进行注册。

interface p2p-wlan0-0
wps_pin any 00000000

检查 Connect Android smartphone with Wi-Fi Direct to a Raspberry Pi了解更多信息。

关于linux - Wifi P2P 同时使用 wpa_supplicant 在树莓派 3 Raspbian 上保持 Wifi 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45394591/

相关文章:

java - WifiP2p:我的 Activity 不使用BroadcastReceiver(我认为..)

android - Wi-Fi Direct 是否可以进行多播?

android - 如何在 Android 上创建一个非持久性 WiFi 直连组?

linux - 替换很多文件中的字符串

python - 在线程中显示对话框

android - 在 Android 设备上直接通过 wifi 共享数据

安卓 Wifip2p : Why is group info null after connecting to group owner

.net - 我如何知道正在使用哪个版本的 .NET mono?

用于计算文件中相似词的 Linux shell 脚本

ip - 如何在 WiFi Direct 中获取非群组所有者的 IP 地址?