linux+wifi+p2p+实例,c - 通过wpa_supplicant启用到Linux的WiFi P2P链接 - 堆栈内存溢出

我通过wpa_supplicant和一个简单的C程序[1]调用wpa_ctrl API [2]启用到Linux主机的WiFi P2P连接。 在通过Nexus 7 Android平板电脑连接然后断开连接后,Linux主机将从平板电脑的P2P对等列表中消失,并且仅在重新启动主机后重新出现。 我尝试重新发布p2p_ext_listen,重新启动wpa_supplicant,并使用modprobe取消/重新加载mwifiex_sdio驱动程序。 我相信这是我的代码之外的错误,但如果是这样,在哪里?

我的Linux主机:

wpa_supplicant 2.5 with -i p2p0 -D nl80211 -c /etc/wpa_supplicant/p2p0.conf

内核4.7.2(主线)

发行版Arch Linux ARM

电台Marvell sd8787

cpu OMAP3

p2p0.conf:

ctrl_interface=/run/wpa_supplicant

ap_scan=1

device_name=mwifiex-p2p-device

device_type=1-0050F204-1

p2p_listen_reg_class=81

p2p_listen_channel=1

p2p_oper_reg_class=81

p2p_oper_channel=1

p2p_no_group_iface=1

p2p_go_intent=15

程序日志(>>>将msg标记为wpa_supplicant):

$ sudo p2p-host/p2phostd /run/wpa_supplicant/p2p0 75 1500 11111111

>>> P2P_EXT_LISTEN 75 1500

OK

<3>P2P-DEVICE-FOUND ae:22:0b:48:49:61 p2p_dev_addr=ae:22:0b:48:49:61 pri_dev_type=10-0050F204-5 name='Android_7326' config_methods=0x188 dev_capab=0x25 group_capab=0x0 new=1

<3>P2P-PROV-DISC-SHOW-PIN ae:22:0b:48:49:61 72764473 p2p_dev_addr=ae:22:0b:48:49:61 pri_dev_type=10-0050F204-5 name='Android_7326' config_methods=0x188 dev_capab=0x25 group_capab=0x0

>>> P2P_CONNECT ae:22:0b:48:49:61 11111111 display go_intent=0

OK

<3>P2P-GO-NEG-SUCCESS role=client freq=2417 ht40=0 peer_dev=ae:22:0b:48:49:61 peer_iface=ae:22:0b:48:c9:61 wps_method=Display

<3>CTRL-EVENT-SCAN-STARTED

<3>CTRL-EVENT-BSS-ADDED 0 20:4e:7f:92:63:d6

<3>CTRL-EVENT-SCAN-RESULTS

<3>WPS-AP-AVAILABLE

<3>CTRL-EVENT-SCAN-STARTED

<3>CTRL-EVENT-BSS-ADDED 1 ae:22:0b:48:c9:61

<3>CTRL-EVENT-SCAN-RESULTS

<3>WPS-AP-AVAILABLE-AUTH

<3>Trying to associate with ae:22:0b:48:c9:61 (SSID='DIRECT-Mw-Android_7326' freq=2417 MHz)

<3>Associated with ae:22:0b:48:c9:61

<3>CTRL-EVENT-EAP-STARTED EAP authentication started

<3>CTRL-EVENT-EAP-STATUS status='started' parameter=''

<3>CTRL-EVENT-EAP-PROPOSED-METHOD vendor=14122 method=1

<3>CTRL-EVENT-EAP-STATUS status='accept proposed method' parameter='WSC'

<3>CTRL-EVENT-EAP-METHOD EAP vendor 14122 method 1 (WSC) selected

<3>WPS-CRED-RECEIVED

<3>WPS-SUCCESS

<3>P2P-GROUP-FORMATION-SUCCESS

<3>CTRL-EVENT-EAP-STATUS status='completion' parameter='failure'

<3>CTRL-EVENT-EAP-FAILURE EAP authentication failed

<3>CTRL-EVENT-DISCONNECTED bssid=ae:22:0b:48:c9:61 reason=3 locally_generated=1

<3>Trying to associate with ae:22:0b:48:c9:61 (SSID='DIRECT-Mw-Android_7326' freq=2417 MHz)

<3>Associated with ae:22:0b:48:c9:61

<3>WPA: Key negotiation completed with ae:22:0b:48:c9:61 [PTK=CCMP GTK=CCMP]

<3>CTRL-EVENT-CONNECTED - Connection to ae:22:0b:48:c9:61 completed [id=0 id_str=]

<3>P2P-GROUP-STARTED p2p0 client ssid="DIRECT-Mw-Android_7326" freq=2417 psk=... go_dev_addr=ae:22:0b:48:49:61 [PERSISTENT]

...disconnect after a short while...

<3>CTRL-EVENT-BSS-REMOVED 0 20:4e:7f:92:63:d6

<3>CTRL-EVENT-DISCONNECTED bssid=ae:22:0b:48:c9:61 reason=3

<3>CTRL-EVENT-DISCONNECTED bssid=ae:22:0b:48:c9:61 reason=3 locally_generated=1

<3>P2P-GROUP-REMOVED p2p0 client reason=GO_ENDING_SESSION

...Linux host disappears from P2P list...

^C

$ wget help

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值