工具/软件:Linux
我尝试在运行 Debian 9.2 2017-10-10 4GB SD IoT 映像的 Android 和 Beagle Bone Black 无线之间建立 Wi-Fi 直接连接。
有时它可以工作、但有时我会得到 P2P-GO-NEG-FAILURE STATUS=1。 下面我介绍重现问题的步骤。
首先、当我仍然使用 Internet 时、我升级系统并安装以后需要的其他依赖项
sudo apt 更新&& sudo apt 升级
sudo apt install python3-pip
pip3安装--user pydbus
我使用 scp 脚本 wifi_direct.py 从 gist.github.com/.../691cdb76c68ad699b48e131490b5119d 复制 到 BeagleBone。
默认情况下、BeagleBone debian 配置与 Wi-Fi Direct 冲突的 SoftAP。 我通过在 /etc/default/bb-wl18xx.中设置 tetel_enable=no 来禁用此功能
请注意、DHCP 服务器将停止在 USB 以太网接口 github.com/.../32上运行后 、因此在主机上、我们需要手动为我们的 USB 以太网接口分配 IP 地址
ifconfig eth1 192.168.6.1;ifconfig eth0 192.168.7.1
然后、我们可以使用 ssh debian@192.168 6.2 或 ssh debian@192.168 7.2将 ssh 到 BeagleBone。
我添加 了 包含内容的/etc/wpa_supplicant/wpa_supplicant.conf 配置文件
DEVICE_NAME=BeagleBone
DEVICE_TYPE=1-0050F204-5
CONFIG_Methods=PBC
并在 /lib/systemd/system/wpa_supplicant.service 中编辑 ExecStart 行 、使其看起来像
ExecStart=/sbin/wpa_supplicant -u -s -O /run/wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf
因此、将拾取该配置文件。
现在、为了缩小问题的范围、我尝试在全新启动时仅使用 wpa_supplicant 来重现问题。
因此、我引导系统并确保在引导后没有 wpa_supplicant 正在运行。
$ ps aux|grep wpa_supplicant
然后我停止 connman 和 lanuch wpa_supplicant
# systemctl stop connman
# systemctl start wpa_supplicant
之后、我运行附加的{{wio_direct.py}}脚本
python3 wifi_direct.py
它根据以下简单算法工作
1.运行 P2P 查找。
2.接受任何 P2P 连接。
3.当另一侧断开连接时,删除 P2P 组。
4.转至步骤1。
从我的 Android 手机扫描 P2P 设备、尝试连接到 BeagleBone、然后断开连接、然后重复此步骤。
由于某些原因、在重试5-15次后、我会在 BeagleBone 侧获得 p2p-g-ne-failure status=-1。 日志已附加。 请您推荐我可能做错的事吗?
请查找日志 gist.github.com/.../5740d17b211d5991a33b53ad35c22d3c 和我的脚本 gist.github.com/.../edd68fe87435576a6d8eca633b4822b9的打印件