Wifi direct linux mint

How to set up a Wifi-Direct connection between Android and Linux

I want to connect two devices using Wifi-Direct. One is a pc with Linux (during my test I’m using Linux Mint 17.2), the other is an Android smartphone (Samsung Galaxy S3 with Android 4.3. Not rooted and don’t want to root).

Reading a number of guides on the internet, I decided to use wpa_supplicant in Linux and to create an app for Android. This is one of the best guides I found for wpa_supplicant: https://web.archive.org/web/20210114180304/https://processors.wiki.ti.com/index.php/OMAP_Wireless_Connectivity_NLCP_WiFi_Direct_Configuration_Scripts

When I run iw list I see that the «Supported interface modes:» allows P2P_client and P2P_GO. My wpa_supplicant.conf contains:

It works as expected. When I try it with two Android devices, they can see each other and connect (it appear the Wifi-Direct icon).

Now I am trying to connect Android and Linux, but I guess I don’t really understand how wpa_supplicant works. I also saw this question that is very similar to what I asked, but it doesn’t really answer my doubts. Direct Wifi Communication between android smartphone and other devices

My problem is that I can’t understand how to do the handshake between the two devices and how to set up the network.

Wpa_supplicant is my problem. I run:

But I had a lot of problems:

  • The device_name (and other parameters) weren’t set as I specifiend in the .conf file
  • wpa_supplicant continues to try to connect to all the networks
  • p2p_find was really slow.

so I went into /usr/share/dbus-1/system-services and moved away the two files

and it really dies, disconnecting me from Wifi without reconnecting the following second. Now I can launch wpa_supplicant and the three problems are resolved.

I go into wpa_cli, launch «p2p_find» and at the same time, I enable the search from within the app.

Android and Linux can now see each other.

With «p2p_peers» I can see the cellphone MAC.

Here I can’t go ahead. I tried various possibilities, but none of them worked. My objective is to have Linux as Group Owner.

  • Question 1.1: Which is the correct way to handshake the two devices?
  • Question 1.2: When I try p2p_connect I often get «Michael MIC failure detected» between the results, what does it means in this contest?
  • Question 1.3: Android currently tries to connect with PBC. There is a way to connect with PIN?

Seeing that I couldn’t connect Android/Linux, I tried to do some practice with Linux/Linux (Linux Mint as GO, Ubuntu as Client), following examples from internet like the ones in the first link. I have a number of problems even here.

in Ubuntu I try

When I write the psp_connect in Mint, it creates a new interface p2p_wlan0 _0, and it returns

then the p2p_connect launched from Ubuntu fails.

Question 2.1 Why it switches interface when creating the group?

Question 2.2 What is the correct way to handle this change? After the change I can’t p2p_find Ubuntu anymore (I have to wait some time or restart everything)

Question 2.3 Should Ubuntu change it’s interface?

Question 2.3 In the new interface I should set the IP for both Ubuntu and Mint. how should I do this with static IPs?

Question 2.4 If I want to set up for example a DHCP server and client?

Question 1.4 And with Android(client) / Linux(GO)?

3 Answers 3

I worked a lot on this problem and here is the answers that I found:

  • Answer 1.1 There are a lot of possibilities and the correct one depends on what you are trying to achieve. You can find the various possibilities here: http://processors.wiki.ti.com/index.php/OMAP_Wireless_Connectivity_NLCP_WiFi_Direct_Configuration_Scripts
Читайте также:  Сброс триала для windows

I wanted Linux as a GO and Android as a client, so what worked for me in Linux is:

N.B. To destroy P2P connection and restart the normal one I use this script:

Here the server listens for a connection and the android client connects to it. I used a very easy TCP server found on the first website and it worked like a charm. It’s important to start the udhcpd or you won’t get the «connected» icon in Android. For the Android side, I followed what I saw on http://developer.android.com/training/connect-devices-wirelessly/wifi-direct.html and it worked perfectly.

Answer 1.2 From wpa_cli you can get a lot of different warnings and errors. I saw that simply calling the function (like I did in the previous snippet) made everything work despite the warnings. I ignored them.

Answer 1.3 The connection using PIN works, when I tried it I wasn’t starting the udhcpd and that crashed my connection every time. It was not due to PIN or PBC.

Answer 2.1 Both the server and the client are switching interface. It is a very similar behaviour to what you usually do with sockets. You create a listening socket, somebody connects, you create a new socket to handle that client in a separate thread while the listening socket is still there, waiting for other users. You do the same with interfaces. Starting a wpa_cli that monitors the wlan0 interface and one that monitors the p2p-wlan0-0 interface gives a good idea of what is happening during the change.

Answer 2.2 The client «went» to the other interface and is now ready to receive an IP. Start the DHCP and TCP servers!

Answer 2.3 Don’t use static IP. Only only for the server is ok, the client should use a DHCP IP. Maybe there is a way to handle static IPs, but it was not useful for my objectives.

Answer 2.4 Done. That was the problem all along

Answer 1.4 This works perfectly even with Android/linux.

Sorry if I made some mistake in my answer, I still don’t get the whole picture of WiFi-Direct connections, I simply hope that this can help someone else.

Источник

Как настроить Wifi-Direct соединение между Android и Linux

Я хочу подключить два устройства с помощью Wifi-Direct. Один из них – компьютер с Linux (во время моего теста я использую Linux Mint 17.2), другой – Android-смартфон (Samsung Galaxy S3 с Android 4.3, не укорененный и не требующий root).

Читая несколько руководств в Интернете, я решил использовать wpa_supplicant в Linux и создать приложение для Android. Это один из лучших руководств, которые я нашел для wpa_supplicant: http://processors.wiki.ti.com/index.php/OMAP_Wireless_Connectivity_NLCP_WiFi_Direct_Configuration_Scripts#p2p_group_add

Когда я запускаю список iw, я вижу, что «Поддерживаемые режимы интерфейса:» позволяет P2P_client и P2P_GO. Мой wpa_supplicant.conf содержит:

Приложение очень похоже на этот пример (это из книги) http://kurser.iha.dk/eit/itsmap/basic/MEIER/Professional%20Android%204%20All%20downloads/9781118102275%20PA4AD/Code%20Snippets/ Глава% 2016 / PA4AD_Ch16_WiFiDirect / src / com / paad / wifidirect / WiFiDirectActivity.java (я удалил всю «часть сокета»).

Он работает так, как ожидалось. Когда я пытаюсь использовать два устройства Android, они могут видеть друг друга и подключаться (он отображается значок Wifi-Direct).

Теперь я пытаюсь подключиться к Android и Linux, но, я думаю, я действительно не понимаю, как работает wpa_supplicant. Я также видел этот вопрос, который очень похож на то, о чем я просил, но на самом деле он не отвечает на мои сомнения … Прямая связь Wi-Fi между Android-смартфоном и другими устройствами

Моя проблема заключается в том, что я не могу понять, как выполнить рукопожатие между двумя устройствами и как настроить сеть.

Читайте также:  Windows on mac apple support

Wpa_supplicant – моя проблема. Я бегу:

Но у меня было много проблем: – Device_name (и другие параметры) не были установлены как указано в файле .conf – wpa_supplicant продолжает пытаться подключиться ко всем сетям – p2p_find был очень медленным …

Поэтому я зашел в / usr / share / dbus-1 / system-services и удалил два файла

И он действительно умирает, отключая меня от Wifi, не пересобирая следующую секунду. Теперь я могу запустить wpa_supplicant и решить три проблемы.

Я зашел в wpa_cli, запустил «p2p_find» и в то же время включил поиск из приложения.

Android и Linux теперь могут видеть друг друга.

С «p2p_peers» я вижу MAC-адрес мобильного телефона.

Здесь я не могу идти вперед. Я пробовал разные возможности, но никто из них не работал. Моя цель – иметь Linux как владельца группы.

  • Вопрос 1.1. Каков правильный способ рукоположения двух устройств?
  • Вопрос 1.2: Когда я пытаюсь p2p_connect, я часто получаю «отказ Майкла МИК» от результатов, что это означает в этом конкурсе?
  • Вопрос 1.3: Android в настоящее время пытается подключиться к PBC. Существует способ подключения с PIN-кодом?

Увидев, что я не могу подключиться к Android / Linux, я попытался сделать некоторую практику с Linux / Linux (Linux Mint как GO, Ubuntu как клиент), следуя примерам из Интернета, как и в первой ссылке. У меня есть ряд проблем даже здесь.

В Монетном дворе я стараюсь

В Ubuntu я пытаюсь

Когда я пишу psp_connect в Mint, он создает новый интерфейс p2p_wlan0 _0, и он возвращает

То p2p_connect, запущенный из Ubuntu, терпит неудачу.

  • Вопрос 2.1 Почему он переключает интерфейс при создании группы?
  • Вопрос 2.2 Каков правильный способ справиться с этим изменением? После изменения я больше не могу p2p_find Ubuntu (мне нужно подождать некоторое время или перезапустить все)
  • Вопрос 2.3 Должен ли Ubuntu изменить его интерфейс?
  • Вопрос 2.3 В новом интерфейсе я должен установить IP для Ubuntu и Mint … как мне это сделать со статическими IP-адресами?

Вопрос 2.4 Если я хочу настроить, например, DHCP-сервер и клиент?

Вопрос 1.4 И с Android (клиент) / Linux (GO)?

Я много работал над этой проблемой, и вот ответы, которые я нашел:

  • Ответ 1.1 Есть много возможностей, и правильный зависит от того, чего вы пытаетесь достичь. Здесь вы можете найти различные возможности: http://processors.wiki.ti.com/index.php/OMAP_Wireless_Connectivity_NLCP_WiFi_Direct_Configuration_Scripts

Я хотел, чтобы Linux был как GO, так и Android в качестве клиента, поэтому то, что работало для меня в Linux, – это:

NB Чтобы уничтожить соединение P2P и перезапустить обычный, я использую этот скрипт:

Здесь сервер прослушивает соединение, и к нему подключается клиент android. Я использовал очень простой TCP-сервер, найденный на первом веб-сайте, и он работал как шарм. Важно запустить udhcpd, иначе вы не получите значок «подключен» в Android. Для Android-сторон я следил за тем, что я видел на http://developer.android.com/training/connect-devices-wirelessly/wifi-direct.html, и он отлично работал.

Ответ 1.2. Из wpa_cli вы можете получить множество различных предупреждений и ошибок. Я видел, что просто вызов функции (как и в предыдущем фрагменте) заставил все работать, несмотря на предупреждения. Я проигнорировал их.

Ответ 1.3 Соединение с использованием PIN-кода работает, когда я его пробовал, я не запускал udhcpd и каждый раз разбивал мое соединение. Это произошло не из-за PIN-кода или PBC.

Ответ 2.1 Оба сервера и клиент – это интерфейс переключения. Это очень похоже на то, что вы обычно делаете с сокетами. Вы создаете прослушивающий сокет, кто-то подключается, вы создаете новый сокет для обработки этого клиента в отдельном потоке, пока слушающий сокет все еще там, ожидая других пользователей. Вы делаете то же самое с интерфейсами. Запуск wpa_cli, который контролирует интерфейс wlan0, и тот, который контролирует интерфейс p2p-wlan0-0, дает хорошее представление о том, что происходит во время изменения.

Ответ 2.2 Клиент «перешел» на другой интерфейс и теперь готов к получению IP-адреса. Запустите серверы DHCP и TCP!

Ответ 2.3 Не используйте статический IP-адрес. Только для сервера все в порядке, клиент должен использовать IP-адрес DHCP. Возможно, есть способ справиться с статическими IP-адресами, но это не было полезно для моих целей.

Ответ 2.4 Готово. Это была проблема все время

Ответ 1.4 Это прекрасно работает даже с Android / linux.

Извините, если я допустил ошибку в своем ответе, я до сих пор не получаю полную картину подключений WiFi-Direct, я просто надеюсь, что это может помочь кому-то другому. Когда у меня будет отлично работающее соединение, я отправлю код для TCP-сервера и клиента.

(Может быть, не полный ответ, а правильное направление)

Проблема на стороне Linux. Я сталкиваюсь с аналогичными проблемами между Cyanogenmod (Android 5) и Fedora 22, пытаясь использовать Wifi Direct (Wifi P2P) для программного обеспечения Intel Wireless Display для ОС Linux (WDS).

В частности, партнер компании Intel расходился (написанный с нуля) еще в 2009 году из того, что было стандартным в Linux, NetworkManager. Connman, кажется, единственная реализация Wifi Direct (Wifi P2P) для Linux и была написана для встроенного (мобильного) рынка.

Из-за проблемы с RPM, connman остается непроверенным в моей системе, но программное обеспечение должно обеспечить коммуникационные потребности Linux в Linux.

Вы просто пытались активировать свою опцию hotspot на Android? Затем подключитесь к устройству Ubuntu, проверьте подключенный IP-адрес в настройках хот-спота Android и передайте его в свое приложение. Он работает для меня для удаленного управления моей системой Ubuntu.

Источник

Настраиваем WiFi в Linux Mint

Структура Linux Mint сделана таким образом, чтобы свести на нет все трудности, которые могут возникнуть с настройками системы и, в частности, с настройкой WiFi. Все необходимые драйвера скорее всего будут загружены при установке системы, так что вам остается сделать только несколько движений для окончательной настройки беспроводной сети.

В правом нижнем углу панели инструментов располагается значок сетевого подключения. Переместите на него курсор мыши и кликните. Откроется окно со списком всех доступных в настоящее время сетей.

Вы видите все доступные сети, среди которых есть и ваша. Кликните по названию своей сети. Появится запрос на ввод пароля. Введите свой пароль и кликните ОК . Настройка сети закончена.

Бывают случаи, когда ваша сеть не видна. Чем это может быть вызвано? Ну, банально, отсутствием в настоящее время сетевого трафика. У поставщика услуг могут быть какие-либо технические неполадки. Также, нужно проверить сам роутер, его настройки и корректную установку драйверов. В последнем случае можно прибегнуть к помощи терминала. Для этой цели открываем терминал, вводим команду sudo -i . Затем нажимаем Enter , и вводим свой пароль. После чего можно ввести одну из двух команд: sudo iwconfig , или sudo lspci . Окно терминала выдаст следующее:

В данном случае все опознано и работает как часы. В случае некорректной установки драйверов, нужно обратиться на сайт производителя оборудования, или погуглить в сети, чтобы найти свой драйвер. Но обычно такого не происходит.

Вы также можете настроить скрытую сеть WiFi. Для этого переместите снова указатель мыши на значок сетевого подключения, и кликните на него. Откроется знакомое вам окно, в котором нужно выбрать Параметры сети .

Источник

Читайте также:  Disable windows update exe
Оцените статью