我想使用 Wifi-Direct 连接两个设备。一个是带有 Linux 的电脑(在我的测试中,我使用的是 Linux Mint 17.2),另一个是 Android 智能手机(带有 Android 4.3 的三星 Galaxy S3。没有 root 并且不想 root)。
阅读互联网上的许多指南后,我决定在 Linux 中使用 wpa_supplicant 并为 Android 创建一个应用程序。这是我为 wpa_supplicant 找到的最佳指南之一: https ://web.archive.org/web/20210114180304/https://processors.wiki.ti.com/index.php/OMAP_Wireless_Connectivity_NLCP_WiFi_Direct_Configuration_Scripts
当我运行 iw list 时,我看到“支持的接口模式:”允许 P2P_client 和 P2P_GO。我的 wpa_supplicant.conf 包含:
ctrl_interface=/var/run/wpa_supplicant
update_config=1
ap_scan=1
device_name=My-pc
device_type=1-0050F204-1
driver_param=use_p2p_group_interface=1
p2p_go_intent=15
p2p_go_ht40=1
它按预期工作。当我在两台 Android 设备上尝试时,它们可以互相看到并连接(出现 Wifi-Direct 图标)。
现在我正在尝试连接 Android 和 Linux,但我想我并不真正了解 wpa_supplicant 是如何工作的。我也看到了这个与我提出的问题非常相似的问题,但它并没有真正回答我的疑问...... Android智能手机和其他设备之间的直接Wifi通信
我的问题是我无法理解如何在两个设备之间进行握手以及如何设置网络。
Wpa_supplicant 是我的问题。我跑:
sudo wpa_supplicant -wlan0 -Dnl80211 -c/etc/wpa_supplicant.conf
sudo wpa_cli
但是我遇到了很多问题:
- 未按照我在 .conf 文件中指定的方式设置 device_name(和其他参数)
- wpa_supplicant 继续尝试连接到所有网络
- p2p_find 真的很慢...
所以我进入 /usr/share/dbus-1/system-services 并移走了这两个文件
fi.epitest.hostap.WPASupplicant.service
fi.w1.wpa_supplicant1.service
现在我能
sudo killall wpa_supplicant
它真的死了,在没有重新连接下一秒的情况下断开了我与 Wifi 的连接。现在我可以启动 wpa_supplicant 并且三个问题都解决了。
我进入 wpa_cli,启动“p2p_find”,同时在应用程序中启用搜索。
Android 和 Linux 现在可以互相看到了。
P2P-DEVICE-FOUND 00:11:22:44:88:ff p2p_dev_addr=00:11:22:44:88:ff
pri_dev_type=10-0050F204-5 name='GT-I9300' config_methods=0x188
dev_capab=0x24 group_capab=0x0 vendor_elems=1 new=0
使用“p2p_peers”,我可以看到手机 MAC。
> aa:bb:cc:dd:ee:ff
在这里我不能继续。我尝试了各种可能性,但都没有奏效。我的目标是让 Linux 作为组所有者。
- 问题 1.1:这两个设备的正确握手方式是什么?
- 问题 1.2:当我尝试 p2p_connect 时,经常在结果之间出现“检测到 Michael MIC 故障”,这在本次比赛中意味着什么?
- 问题 1.3:Android 目前正在尝试与 PBC 连接。有没有办法用 PIN 连接?
看到我无法连接 Android/Linux,我尝试使用 Linux/Linux(Linux Mint 作为 GO,Ubuntu 作为客户端)进行一些练习,遵循互联网上的示例,如第一个链接中的示例。即使在这里,我也有很多问题。
在薄荷我尝试
p2p_connect MAC_UBUNTU pin auth
在 Ubuntu 我尝试
p2p_connect MAC_MINT PIN_GENERATED_BY_MINT
当我在 Mint 中编写 psp_connect 时,它会创建一个新接口 p2p_wlan0 _0,并返回
P2P-DEVICE-LOST p2p_dev_addr=MAC_UBUNTU
然后从 Ubuntu 启动的 p2p_connect 失败。
问题 2.1 为什么创建群组时会切换界面?
问题 2.2 处理这种变化的正确方法是什么?更改后我不能 p2p_find Ubuntu了(我必须等待一段时间或重新启动一切)
问题 2.3 Ubuntu 应该改变它的界面吗?
问题 2.3 在新界面中,我应该为 Ubuntu 和 Mint 设置 IP……我应该如何使用静态 IP 执行此操作?
问题 2.4 如果我想设置例如 DHCP 服务器和客户端?
问题 1.4 和 Android(客户端)/Linux(GO)?