Прямое соединение Wi-Fi отключается автоматически через несколько секунд в Raspberry Pi

Я использую эту конфигурацию для прямого подключения Wi-Fi в Raspberry PI 2 B+

ctrl_interface=DIR=/var/run/wpa_supplicant
driver_param=use_p2p_group_interface=1
update_config=1
device_name=Raspberry_pi
device_type=1-0050F204-1
p2p_go_intent=1
p2p_go_ht40=1
country=IN

а затем начал wpa соискателя, используя

sudo wpa_supplicant -Dnl80211 -iwlan0 -c/etc/wpa_supplicant/p2p.conf -B

а затем добавить новую группу, используя

sudo wpa_cli -iwlan0 p2p_group_add

а затем установить IP с помощью

ifconfig p2p-wlan0-0 192.168.1.20

а затем установить штифт, используя

sudo wpa_cli -ip2p-wlan0-0 wps_pin any 0000

до этого все работает нормально, и я могу подключиться к Raspberry Pi через Wi-Fi напрямую с устройства Android. Теперь я сталкиваюсь с двумя проблемами,

  1. Соединение автоматически отключается через несколько секунд
  2. Когда я пытался переподключить устройство Android, оно показывает приглашение навсегда (но отключение и подключение n раз между двумя устройствами Android работает нормально, и соединения не разрываются). Я могу подключиться к Raspberry Pi только после завершения запроса wpa и запускает процесс заново. Что не так с этой конфигурацией? Какие изменения должны быть сделаны, чтобы сделать соединение постоянным?

Изменить 1:

Когда я перезапускаю соискатель wpa и подключаюсь в первый раз, это то, что я получаю в журнале

CTRL-EVENT-EAP-STARTED 2a:3f:69:1d:ed:c5
<3>CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=1
<3>CTRL-EVENT-EAP-PROPOSED-METHOD vendor=14122 method=254
<3>WPS-REG-SUCCESS 2a:3f:69:1d:ed:c5 884efa75-0a98-52c6-85aa-07527f4a9c35
<3>WPS-SUCCESS 
<3>CTRL-EVENT-EAP-FAILURE 2a:3f:69:1d:ed:c5
<3>AP-STA-CONNECTED 2a:3f:69:1d:ed:c5 p2p_dev_addr=2a:3f:69:1d:ed:c5

и после автоматического отключения

AP-STA-DISCONNECTED 2a:3f:69:1d:ed:c5 p2p_dev_addr=2a:3f:69:1d:ed:c5

если я пытаюсь восстановить соединение без перезапуска, это напечатано в консоли

CTRL-EVENT-EAP-STARTED 2a:3f:69:1d:ed:c5
<3>CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=1
<3>CTRL-EVENT-EAP-PROPOSED-METHOD vendor=14122 method=254
<3>WPS-PIN-NEEDED 884efa75-0a98-52c6-85aa-07527f4a9c35 2a:3f:69:1d:ed:c5 [Xperia XA |MediaTek Inc.|MTK Wireless Model|1.0|2.0|10-0050F204-5]
<3>CTRL-EVENT-EAP-FAILURE 2a:3f:69:1d:ed:c5

2 ответа

Решение

Ваш Raspberry Pi, вероятно, в роли владельца группы P2P (GO), так как вы вручную создаете группу с p2p_group_add команда (автономный GO) вместо того, чтобы позволить устройствам согласовывать на основе их значений намерений GO. p2p_go_intent=1 в вашем конфиге, скорее всего, не будет иметь никакого эффекта в этом случае.

Устройство в роли GO должно запустить DHCP-сервер для назначения IP-адресов подключающимся P2P-клиентам. Соответственно, каждый клиент должен запустить DHCP-клиент для получения IP-адреса.

Выдержка из Раздела 3.2.6.1 Технической спецификации Wi-Fi P2P:

Услуги передачи данных более высокого уровня могут использовать IP. Владелец P2P-группы должен выступать в качестве DHCP-сервера для предоставления IP-адресов подключенным P2P-клиентам, которые используют IP. DHCP-сервер должен как минимум поддерживать интернет-протокол версии 4 (IPv4) и назначать IP-адрес, маску подсети...

... P2P-клиент, который использует IP, должен быть способен выступать в качестве DHCP-клиента.

Примечание. Хотя P2P-устройство может выбирать отдельные IP-подсети для каждой P2P-группы, для которой оно является владельцем P2P-группы, возможно, что P2P-устройство, подключенное к более чем одной P2P-группе, может в конечном итоге столкнуться с подсетями. Использование случайного компонента при выборе подсети IP может снизить вероятность (но не исключить) возникновения такой ситуации

Я думаю, вы обнаружите, что устройство Android ожидает получения конфигурации IP через DHCP, прежде чем перейти к подключенному состоянию, с превышением времени ожидания, если этого не произойдет.

Чтобы сделать соединение постоянным, необходимо создать группу как постоянную группу. Вы должны быть в состоянии сделать это в автономном сценарии GO с p2p_group_add persistent, В согласованном сценарии GO вы должны быть в состоянии сделать что-то вроде p2p_connect <peer device address> <pbc|pin|PIN#|p2ps> [display|keypad|p2ps] persistent go_intent=15, См. Wpa_supplicant README-P2P для получения дополнительной информации: https://w1.fi/cgit/hostap/plain/wpa_supplicant/README-P2P.

Наконец, команда wps_pin any <PIN> позволяет любому устройству подключаться с использованием предоставленного ПИН-кода, но ограничивает его однократным использованием. Либо использовать wps_pin <address> <PIN> сформировать или установить новый PIN-код, запустив wps_pin any <PIN> снова.

У меня сейчас почти такой же сценарий, следуйте первому разделу

Настройка Raspberry Pi в качестве точки доступа в автономной сети (NAT)

по этой ссылке для установки / настройки службы DHCP на Pi:

https://www.raspberrypi.org/documentation/configuration/wireless/access-point.md

Кстати, если это работает для вас, не могли бы вы поделиться порядком запуска dhcp и включения Wi-Fi p2p, так как у меня возникли проблемы с p2p после включения dhcp.

Другие вопросы по тегам