Прямое соединение 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. Теперь я сталкиваюсь с двумя проблемами,
- Соединение автоматически отключается через несколько секунд
- Когда я пытался переподключить устройство 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.